简介
因为CDH5和6架构使用组件间紧耦合架构,不提供组件的独立升级,如果在使用CDH过程中,有需要独立升级组件的需求,就需要尝试和Apache的社区版本进行结合部署,本文以独立升级hive为例进行展示。
环境说明
操作系统:centos 7.8
CDH 版本6.3.2
hive 版本 2.1.1 升级hive2.3.8
前置工作
(1)下载hive 2.3.8版本,并解压
wget https://downloads.apache.org/hive/hive-2.3.8/apache-hive-2.3.8-bin.tar.gz tar xf apache-hive-2.3.8-bin.tar.gz
(2)备份MySQL元数据库
升级hive版本过程
注意:运行升级前,在cloudera后台,停止掉hive和hive依赖的应用
(1)复制hive 2.3.8 lib包到原来的hive中
cp -r apache-hive-2.3.8-bin/lib/ /opt/cloudera/parcels/CDH/lib/hive/lib238/
(2)修改hive 启动文件,调用hive 2.3.8 jar包
# vim /opt/cloudera/parcels/CDH/lib/hive/bin/hive #HIVE_LIB=${HIVE_HOME}/lib HIVE_LIB=${HIVE_HOME}/lib238
(3)替换spark中hive 包(hive on spark运行)
mv /opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/spark/hive/hive-exec-2.1.1-cdh6.3.2.jar /root/ cp /opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/hive/lib238/hive-exec-2.3.8.jar /opt/cloudera/parcels/CDH-6.3.2-1.cdh6.3.2.p0.1605554/lib/spark/hive/
注意:如上三个操作在所有安装了hive的节点执行
(4)升级hive 2.1.1 MySQL数据库
mysql> source /opt/cloudera/hive/scripts/metastore/upgrade/mysql/upgrade-2.1.0-to-2.2.0.mysql.sql; mysql> source /opt/cloudera/hive/scripts/metastore/upgrade/mysql/upgrade-2.2.0-to-2.3.0.mysql.sql;
启动hive,查看hive版本
踩坑记录
hive 升级后,所有部署在hive中的应用,如果在编译中填写了hive版本,需要重新编译部署,比如hive自定义函数,比如血缘关系atlas程序
Cloudera 公司给的结论是CDH 版本和Apache版本混合使用不能保证兼容性(不排除忽悠花钱买CDP的可能),所以hive升级前所有功能最好在demo环境验证全面,在进行测试环境和线上环境变更,否则贸然升级出现低版本不兼容高本版的数据格式问题,回滚就要丢失数据了
转载请注明:西门飞冰的博客 » CDH hive 2.1.1 升级hive2.3.8