1Hive环境搭建---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.masteryarn
spark.eventLog.enabledtrue
spark.eventLog.dirhdfs://hadoop102:8020/spark-history
spark.executor.memory1g
spark.driver.memory1g
文章图片
在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.yarn.jars
hdfs://hadoop102:8020/spark-jars/*
hive.execution.engine
spark
文章图片
2Hive环境搭建---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
文章图片
文章图片
【hive|数仓4.0笔记——数仓环境搭建——Hive on Spark】
推荐阅读
- 干货分享|需求文档中的“项目前景与范围”
- 笔记|浅谈数据湖的探究与调研!
- 数据仓库|20000字详解数据湖(概念、特征、架构与案例)
- 数据库|2w字详解数据湖(概念、特征、架构与案例)
- 大数据|如何挖掘银行外部数据价值(零编码接入,分钟级服务化)
- 大数据|程序员该如何构建面向未来的前端架构!
- elasticsearch|es(Elasticsearch)客户端Kibana安装使用(02Kibana安装篇)
- 计算机专业技术|大数据编程技术——期末复习
- spark|6. 从ods(贴源层)到 dwd(数据明细层)的两种处理方式(spark)-dsl