离线数仓—数据仓库环境准备
前言
前面完成了数仓的设计,现在进行数据仓库的环境准备,包括运行环境、开发环境和模拟数据的准备。
一、数据仓库运行环境
数仓运行环境是指Hive全流程调度在什么样的一个环境下去跑。
1.Hive环境搭建
1.1 Hive引擎简介
Hive引擎包括:默认MR、tez、spark
Hive on Spark:Hive既作为存储元数据又负责SQL的解析优化,语法是HQL语法,执行引擎变成了Spark,Spark负责采用RDD执行。
Spark on Hive : Hive只作为存储元数据,Spark负责SQL解析优化,语法是Spark SQL语法,Spark负责采用RDD执行。
为什么选择Hive on Spark:从性能上面来说Spark on Hive的性能更好一些,从生态上来说Hive on Spark的生态更丰富一些,比如数据安全、质量管理、权限管理等等。
1.2 Hive on Spark配置
1)兼容性说明
注意:官网下载的Hive3.1.2和Spark3.0.0默认是不兼容的。因为Hive3.1.2支持的Spark版本是2.4.5,所以需要我们重新编译Hive3.1.2版本。
编译步骤:官网下载Hive3.1.2源码,修改pom文件中引用的Spark版本为3.0.0,如果编译通过,直接打包获取jar包。如果报错,就根据提示,修改相关方法,直到不报错,打包获取jar包。
提示:某个类未定义或某个方法找不到,一般都是兼容性问题
2)在Hive所在节点部署Spark
Spark官网下载jar包地址:http://spark.apache.org/downloads.html
上传并解压:
tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz -C /opt/module/
mv /opt/module/spark-3.0.0-bin-hadoop3.2 /opt/module/spark
3)配置Spark_HOME环境变量
执行命令: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
4)在hive中创建spark配置文件
创建配置文件:vim /opt/module/hive/conf/spark-defaults.conf
添加如下内容(在执行任务时,会根据如下参数执行):
spark.master