栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Hive3.1.2整合Spark3.0.0-HiveOnSpark

Hive3.1.2整合Spark3.0.0-HiveOnSpark

一,整合原理 1,HiveonSpark

Hive是一个Sql解析引擎,其不具备计算能力,Hive将Sql解析为物理执行计划,将物理执行计划转换为计算任务,交由计算引擎执行,默认的引擎是MapReduce,但MapReduce执行速度慢,随着Spark的崛起,Hive支持Spark作为计算引擎,这就是HiveOnSpark

2,SparkonHive

比较容易混淆,二者差距还是很大的,SparkOnHive只是使用了Hive的元数据服务,Sql解析由Spark完成、计算也由Spark完成。

二,整合步骤

1,安装hadoop,主要是yarn和hdfs,配置环境变量2,安装spark,配置spark环境变量3,安装hive,配置环境变量 三,安装hadoop

1,将Hadoop的压缩包上传到服务器,解压
2,配置core-site.xml,其中最重要的两个配置如下


   
    fs.defaultFS
    hdfs://node1:8080
  
  
  
  
    hadoop.tmp.dir
    /export/atguigu/soft/hadoop-3.1.3/data
  

3,配置hdfs-site.xml文件

配置hdfs web服务的服务器和访问端口
配置副本数


    dfs.namenode.http-address
    node1:9870
  
  
    dfs.replication
    3
  
  
    dfs.namenode.secondary.http-address
    node3:9686
  

4,配置yarn-site.xml

配置ResourceManager的位置
配置日志聚合


   yarn.resourcemanager.hostname
   node2
 
 
   yarn.log.server.url
   http://node2:19888/jobhistory/logs
 
 
   mapreduce.log-aggregation.retain-seconds
   604800
 

5,/etc/profile中配置Hadoop的环境变量

export HADOOP_HOME=/export/soft/hadoop-3.1.3
export PATH=:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HADOOP_CLASSPATH=`hadoop classpath`

6,将hadoop根目录和环境变量在hadoop集群所有节点上按如上步骤配置,可以通过scp分发的方式快速完成。

四,Spark安装

1,上传、解压Spark3.0.0安装包
2,配置spark环境变量

export SPARK_HOME=/export/soft/spark-3.0.0-bin-hadoop3.2/
export PATH=:$PATH:$SPARK_HOME/bin

PS:spark的作用是提供spark任务的执行环境,Hive会通过spark-submit提交spark任务,spark将任务分发到spark集群各个节点。

3,在集群所有节点上安装spark,配置环境变量。

五,安装Hive

1,上传、解压Hive安装包
2,配置环境变量:

export SPARK_HOME=/opt/module/spark
export PATH=$PATH:$SPARK_HOME/bin

3,hive安装目录下,创建如下文件

hive/conf/spark-defaults.conf

内容如下,指定提交spark任务的各种参数:

spark.master                               yarn
spark.eventLog.enabled                   true
spark.eventLog.dir                        hdfs://node1:8080/spark-history
spark.executor.memory                    1g
spark.driver.memory					   1g

4,创建上一步配置中的hdfs文件夹,存储历史日志

hadoop fs -mkdir /spark-history

5,将纯净版的spark3.0.0的jar上传到hdfs,所谓纯净版,就是没有掺杂hadoop和hive的jar包。主要原因是spark3.0.0默认支持的hadoop和hive都是2.x.x,hive3在将物理执行计划转换为spark任务时会使用到spark的jar包,如果这里的jar包含了hive2的jar包,会出现冲突,所以不适用集群上安装的spark自带的jar包,而是将纯净版的sparkjar包上传到hdfs上,作为hive的专用包。

先创建hdfs文件夹:

hadoop fs -mkdir /spark-jars

6,上传纯净版spark jar到hdfs

hadoop fs -put spark-3.0.0-bin-without-hadoop/jars/* /spark-jars

7,hive配置文件指定使用spark引擎和spark jar包位置

vim /opt/module/hive/conf/hive-site.xml

    spark.yarn.jars
    hdfs://hadoop102:8020/spark-jars/*

  

    hive.execution.engine
    spark

六,测试

启动hive客户端

 bin/hive

创建一张测试表

hive (default)> create table student(id int, name string);

通过insert测试效果

hive (default)> insert into table student values(1,'abc');

出现如下界面表示整合成功:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/779369.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号