系列文章目录
Hive3第一章:环境安装
Hive3第二章:简单交互
Hive3第三章:DML数据操作
Hive3第三章:DML数据操作(二)
Hive3第四章:分区表和分桶表
Hive3第五章:函数
Hive3第六章:更换引擎
前言
这个博客主要是作为数仓项目的一次补充,主要是更换hive引擎,传统的MR引擎在hive2之后就不推荐了,我们这次更换spark引擎,使用hive on yarn。
一、更换hive
通过官方的版本依赖,现在的hive是不支持spark3的,所以我们需要重新编译,可以使用idea打开源码,然后修改pom.xml中的spark和scala版本,考虑到各种问题,这里就不专门演示了。博主能力有限,没成功。具体文件可以去尚硅谷的线上问诊的离线数仓的项目里下载一个。
二、安装hive
先正常安装hive
hive安装
三、更换引擎
1.部署Spark纯净版
下载地址spark-3.3.1-bin-without-hadoop.tgz
上传并解压
2.修改配置文件
mv spark-env.sh.template spark-env.sh
vim /opt/module/spark/conf/spark-env.sh
最底下加一行。
export SPARK_DIST_CLASSPATH=$(hadoop classpath)
sudo vim /etc/profile.d/my_env.sh
# SPARK_HOME
export SPARK_HOME=/opt/module/spark
export PATH=$PATH:$SPARK_HOME/bin
source 一下
source /etc/profile.d/my_env.sh
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
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>
3.HDFS创建目录
hadoop fs -mkdir /spark-jars
hadoop fs -mkdir /spark-history
4.上传jar包
hadoop fs -put /opt/module/spark/jars/* /spark-jars
5.hive测试
create table student(id int, name string);
insert into table student values(1,'abc');
由于第一次调用会调用spark的jar包,所以第一次时间会长一点。
再插入一条
insert into table student values(2,‘abcd’);
到此引擎更换完成。
总结
hive更换引擎是数仓学习中很通用的,所以这里单拎出来简单说一下。