1. 概念
Hive on Spark:Hive既作为存储元数据又负责SQL的解析优化,语法是HQL语法,执行引擎变成了Spark,Spark负责采用RDD执行。
Spark on Hive : Hive只作为存储元数据,Spark负责SQL解析优化,语法是Spark SQL语法,Spark负责采用RDD执行。
2. 准备工作
hadoop-3.3.0
spark-3.4.3-bin-hadoop3
apache-hive-3.1.3
apache-zookeeper-3.5.9
3. 配置
3.1. 兼容性说明
注意:官网下载的Hive3.1.3和Spark3.4.3默认是不兼容的。因为Hive3.1.3支持的Spark版本是2.3.0,所以需要我们重新编译Hive3.1.3版本。
编译步骤:官网下载Hive3.1.3源码,修改pom文件中引用的Spark版本为3.4.3,如果编译通过,直接打包获取jar包。如果报错,就根据提示,修改相关方法,直到不报错,打包获取jar包。
3.1.1. 下载Hive源码
下载地址:Index of /dist/hive/hive-3.1.3
- 将包上传到虚拟机
将下载好的Linux版本的Hive包上传到 /opt/software
目录下。
- 解压文件
tar -zxvf apache-hive-3.1.3-src.tar.gz
3.1.2. 下载Maven
下载地址:Download Apache Maven – Maven
- 将包上传到虚拟机
将下载好的Linux版本的Hive包上传到 /opt/software
目录下,我这里下载的是3.8.8版本
。
- 解压包