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。
notion image
尝试将CDH6.3.2中的Hive升级至2.3.9版本后,暂未出现问题。

1、下载 Hive 2.3.9

  • 下载Hive2.3.9 ,选择国内清华镜像

2、停止 CDH 集群的 Hive 服务

  • 注意,停止Hive前需要先依次停止HueOozieImpalaSpark
notion image
notion image

3、备份 Mysql 中的 Hive 元数据

  • 123456 为当前集群的mysql密码

4、替换 CDH 中的 lib 和 scripts 文件夹

  • 修改lib文件夹名备份,方便升级失败回滚
  • 创建新的文件夹,复制Hive 2.3.9 的lib
  • 修改scripts文件夹名备份,方便升级失败回滚
  • 创建新的文件夹,复制Hive 2.3.9 的scripts

5、升级 Hive 元数据

  • mysql升级脚本在hivescripts/metastore/upgrade/mysql
  • 根据当前版本和目标升级版本选择脚本(不可跳级升级)
notion image
  • 打开脚本的文件目录
  • 进入mysql,执行升级脚本
  • 以下是登录mysql后执行的语句
  • Query OKquit

6、替换 Spark 的jar包

  • 替换Sparkhive-exec-2.1.1-cdh6.3.2.jar包为hive-exec-2.3.9.jar
这里需要注意,Impala也需要这么做,但目前自身集群未使用Impala,没有对Impala做操作
  • 打开Spark目录
  • 备份Hive原有所有jar
  • 删除SparkHive目录下hive-exec-2.1.1-cdh6.3.2.jar
  • 拷贝hive-exec-2.3.9.jar包至SparkHive目录下
  • 测试spark-shell是否可以使用
    • #这里的queue是自己指定的,如果没有设置队列则默认为default队列,不需要输入queue参数/opt/cloudera/parcels/CDH/lib/spark/bin/spark-shell --queue spark
    • 显示如下结果:
        • notion image

7、查看 Hive 更新后的版本

  • 可以看到版本已经更新为新的版本

8、启动Hive服务并验证

notion image
notion image
CDH 6.3.2 升级 Spark 3CentOS_7 安装Python3
Loading...