免费推广seo策略方法/seo外包如何
Hive 安装 Spark
- 兼容性说明
- 在 Hive 所在节点部署 Spark
- 配置 SPARK_HOME 环境变量
- 在 hive 中创建 spark 配置文件
- 向 HDFS 上传 Spark 纯净版 jar 包
- 修改 `hive-site.xml` 文件
- 配置 HA :
- 未配置 HA :
兼容性说明
官网下载的 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 包
在 Hive 所在节点部署 Spark
Spark 官网下载 jar 包地址:
http://spark.apache.org/downloads.html
上传并解压解压 spark-3.0.0-bin-hadoop3.2.tgz
tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz -C /opt/module/
重名 :
mv spark-3.0.0-bin-hadoop3.2/ spark-3.0.0/
配置 SPARK_HOME 环境变量
sudo vim /etc/profile.d/my_env.sh
添加内容 :
# SPARK_HOME
export SPARK_HOME=/opt/module/spark-3.0.0
export PATH=$PATH:$SPARK_HOME/bin
source 使其生效
source /etc/profile.d/my_env.sh
在 hive 中创建 spark 配置文件
vim spark-defaults.conf
添加内容(执行任务时,会根据参数执行) :
spark.master yarn
spark.eventLog.enabled true
spark.eventLog.dir hdfs://cpu101:8020/spark-history
spark.executor.memory 1g
spark.driver.memory 1g
在 HDFS 创建如下路径,用于存储历史日志
hadoop fs -mkdir /spark-history
向 HDFS 上传 Spark 纯净版 jar 包
由于 Spark3.0.0 非纯净版默认支持的是 Hive2.3.7 版本,直接使用会和安装的 Hive3.1.2 出现兼容性问题。所以采用 Spark 纯净版 jar 包,不包含hadoop 和 hive 相关依赖,避免冲突
Hive 任务最终由 Spark 来执行,Spark 任务资源分配由 Yarn 来调度,该任务有可能被分配到集群的任何一个节点。所以需要将 Spark 的依赖上传到HDFS 集群路径,让集群中任何一个节点都能获取到
上传并解压 spark-3.0.0-bin-without-hadoop.tgz
tar -zxvf /opt/software/spark-3.0.0-bin-without-hadoop.tgz
上传 Spark 纯净版 jar 包到 HDFS
hadoop fs -mkdir /spark-jars
hadoop fs -put spark-3.0.0-bin-without-hadoop/jars/* /spark-jars
修改 hive-site.xml
文件
vim hive-site.xml
配置 HA :
<!--Spark依赖位置(注意:端口号8020必须和 namenode 的端口号一致)--><property><name>spark.yarn.jars</name><value>hdfs://mycluster/spark-jars/*</value></property><!--Hive执行引擎--><property><name>hive.execution.engine</name><value>spark</value></property>
未配置 HA :
<!--Spark依赖位置(注意:端口号8020必须和 namenode 的端口号一致)--><property><name>spark.yarn.jars</name><value>hdfs://cpu101:8020/spark-jars/*</value></property><!--Hive执行引擎--><property><name>hive.execution.engine</name><value>spark</value></property>