数仓4.0笔记——数仓环境搭建——Hive on Spark

1  Hive环境搭建---Hive on Spark配置

注意:官网下载的Hive3.1.2和Spark3.0.0默认是不兼容的。因为Hive3.1.2支持的Spark版本是2.4.5,所以需要我们重新编译Hive3.1.2版本。

[zhang@hadoop102 ~]$ cd /opt/module/hive/lib/
[zhang@hadoop102 lib]$ ls -al | grep spark

 

 

 现在就可以正式部署Hive on Spark的环境了。

1.1 在Hive所在节点部署Spark

上传压缩包到/opt/software/spark

[zhang@hadoop102 software]$ mkdir spark

 [zhang@hadoop102 spark]$ tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz -C /opt/module/

[zhang@hadoop102 module]$ mv spark-3.0.0-bin-hadoop3.2/ spark

配置SPARK_HOME环境变量

[zhang@hadoop102 software]$ sudo vim /etc/profile.d/my_env.sh

添加如下内容

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

source 使其生效

[zhang@hadoop102 software]$ source /etc/profile.d/my_env.sh

1.2 在hive中创建spark配置文件

[zhang@hadoop102 software]$ vim /opt/module/hive/conf/spark-defaults.conf

添加如下内容

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

在HDFS创建如下路径,用于存储历史日志

[zhang@hadoop102 software]$ hadoop fs -mkdir /spark-history

1.3 向HDFS上传Spark纯净版jar包

由于Spark3.0.0非纯净版默认支持的是hive2.3.7版本,直接使用会和安装的Hive3.1.2出现兼容性问题。所以采用Spark纯净版jar包,不包含hadoop和hive相关依赖,避免冲突。

[zhang@hadoop102 module]$ hadoop fs -mkdir /spark-jars
[zhang@hadoop102 module]$ cd /opt/software/spark/
[zhang@hadoop102 spark]$ ll

 [zhang@hadoop102 spark]$ tar -zxvf spark-3.0.0-bin-without-hadoop.tgz

 

[zhang@hadoop102 spark]$ cd spark-3.0.0-bin-without-hadoop/
[zhang@hadoop102 spark-3.0.0-bin-without-hadoop]$ ll

[zhang@hadoop102 spark-3.0.0-bin-without-hadoop]$ cd jars/

[zhang@hadoop102 jars]$ hadoop fs -put ./* /spark-jars

 1.4 修改hive-site.xml文件

[zhang@hadoop102 ~]$ vim /opt/module/hive/conf/hive-site.xml

添加如下内容

<!--Spark依赖位置(注意:端口号8020必须和namenode的端口号一致)-->
<property>
    <name>spark.yarn.jars</name>
    <value>hdfs://hadoop102:8020/spark-jars/*</value>
</property>
  
<!--Hive执行引擎-->
<property>
    <name>hive.execution.engine</name>
    <value>spark</value>
</property>

2  Hive环境搭建---Hive on Spark测试

启动hive客户端

[zhang@hadoop102 ~]$ hive

 

创建一张测试表

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

通过insert测试效果

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

在执行Hive on Spark应用的时候,尤其是第一次执行任务的时候,会初始化一个spark会话,这个会话只有第一次执行任务的时候需要被启动,启动之后只要不退出hive的客户端,这个会话就不会被关闭,资源就不会释放。退出客户端时,才会释放资源。(所以第一次执行比较慢)

若结果如下,则说明配置成功

 查一下这个数据

hive (default)> select * from student;

 在web端看一下,http://hadoop103:8088

退出hive

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值