type
status
date
summary
slug
tags
category
password
icon
CDH 6.3.2 升级 Hive 2.3.9
CDH
6.3.2 初始的 Hive
版本为2.1.1,在不对开源版souce
源码包进行重新编译的前提下试着去升级Hive
3(3.1.2、3.1.3),结果均失败,最终选择先升级Hive
2(2.3.9),这种升级方式的好处是不需要对source
源码tar
包进行重新编译。由于
CDH
6.3.2版本中默认的Spark
组件版本为2.4.0,参考Compatibility with Apache Hive - Spark 2.4.0 Documentation官网,Spark
2.4.0版本支持的Hive Metastore
版本最高至2.3.3,也就是说理论上如果想获得CDH
6.3.2中的默认Spark
支持,升级的Hive
版本最高为2.3.3。尝试将
CDH
6.3.2中的Hive
升级至2.3.9版本后,暂未出现问题。1、下载 Hive 2.3.9
- 下载
Hive
2.3.9 ,选择国内清华镜像
2、停止 CDH 集群的 Hive 服务
- 注意,停止
Hive
前需要先依次停止Hue
、Oozie
、Impala
、Spark
3、备份 Mysql 中的 Hive 元数据
- 123456 为当前集群的
mysql
密码
4、替换 CDH 中的 lib 和 scripts 文件夹
- 修改
lib
文件夹名备份,方便升级失败回滚
- 创建新的文件夹,复制
Hive
2.3.9 的lib
- 修改
scripts
文件夹名备份,方便升级失败回滚
- 创建新的文件夹,复制
Hive
2.3.9 的scripts
5、升级 Hive 元数据
mysql
升级脚本在hive
的scripts/metastore/upgrade/mysql
下
- 根据当前版本和目标升级版本选择脚本(不可跳级升级)
- 打开脚本的文件目录
- 进入
mysql
,执行升级脚本
- 以下是登录
mysql
后执行的语句
Query OK
后quit
6、替换 Spark 的jar包
- 替换
Spark
中hive-exec-2.1.1-cdh6.3.2.jar
包为hive-exec-2.3.9.jar
包
这里需要注意,
Impala
也需要这么做,但目前自身集群未使用Impala
,没有对Impala
做操作- 打开
Spark
目录
- 备份
Hive
原有所有jar
包
- 删除
Spark
的Hive
目录下hive-exec-2.1.1-cdh6.3.2.jar
包
- 拷贝
hive-exec-2.3.9.jar
包至Spark
的Hive
目录下
- 测试
spark-shell
是否可以使用 #这里的queue是自己指定的,如果没有设置队列则默认为default队列,不需要输入queue参数
/opt/cloudera/parcels/CDH/lib/spark/bin/spark-shell --queue spark
- 显示如下结果:
7、查看 Hive 更新后的版本
- 可以看到版本已经更新为新的版本
8、启动Hive服务并验证
- 作者:PH3C
- 链接:https://notion.966699.xyz//article/CDH-Hive-2.3.9
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章