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源码包进行重新编译的前提下试着去升级Hive3(3.1.2、3.1.3),结果均失败,最终选择先升级Hive2(2.3.9),这种升级方式的好处是不需要对source源码tar包进行重新编译。由于
CDH6.3.2版本中默认的Spark组件版本为2.4.0,参考Compatibility with Apache Hive - Spark 2.4.0 Documentation官网,Spark2.4.0版本支持的Hive Metastore版本最高至2.3.3,也就是说理论上如果想获得CDH6.3.2中的默认Spark支持,升级的Hive版本最高为2.3.3。
尝试将
CDH6.3.2中的Hive升级至2.3.9版本后,暂未出现问题。1、下载 Hive 2.3.9
- 下载
Hive2.3.9 ,选择国内清华镜像
2、停止 CDH 集群的 Hive 服务
- 注意,停止
Hive前需要先依次停止Hue、Oozie、Impala、Spark


3、备份 Mysql 中的 Hive 元数据
- 123456 为当前集群的
mysql密码
4、替换 CDH 中的 lib 和 scripts 文件夹
- 修改
lib文件夹名备份,方便升级失败回滚
- 创建新的文件夹,复制
Hive2.3.9 的lib
- 修改
scripts文件夹名备份,方便升级失败回滚
- 创建新的文件夹,复制
Hive2.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 许可协议,转载请注明出处。
相关文章













