运维实战100:CDH5.16.2升级至CDH6.3.2
Posted 涤生大数据
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运维实战100:CDH5.16.2升级至CDH6.3.2相关的知识,希望对你有一定的参考价值。
本期来分享一个cdh企业运维实战案例
背景
为适应公司业务发展需求,提高相关大数据组件版本,解决开发中的一些技术问题和代码优化,需要将现有集群CDH版本由5.x版本升级为6.3.x版本,也是为了适配如Flink、Doris等一些计算引擎。由于生产迁移风险巨大,我们现在测试集群进行验证。
迁移前的准备工作还是非常重要且细致的,要考虑到各个细节的部分的,大致流程一般如下:
1.Cloudera官网调研迁移可行性,包括操作系统,mysql,JDK版本等细节内容确认是否影响升级; 2.Cloudera官网已经给出非常详细的升级方案及回滚步骤,一定要多注意; 3.CM版本先升级,备份核心库表数据; 4.CDH版本再升级,备份各种组件核心库表如hive元数据库等。 5.做好升级失败回滚的方案。 # 官网:https://docs.cloudera.com/documentation/enterprise/upgrade/topics/ug_cm_upgrade_backup.html
1.Cloudera Manager升级
1.1 备份工作
1.1.1 备份Cloudera Manager Agent
# 查看CM库详细信息 cat /etc/cloudera-scm-server/db.properties
# 所有agent主机执行备份命令 export CM_BACKUP_DIR="`date +%F`-CM5.16" echo $CM_BACKUP_DIR mkdir -p $CM_BACKUP_DIR # 开始打包cm-agent和yum源包 tar -cf $CM_BACKUP_DIR/cloudera-scm-agent.tar --exclude=*.sock /etc/cloudera-scm-agent /etc/default/cloudera-scm-agent /var/run/cloudera-scm-agent /var/lib/cloudera-scm-agent tar -cf $CM_BACKUP_DIR/repository.tar /etc/yum.repos.d #批量执行可以用ansible ansible -i host cloudera_test -m shell -a "export CM_BACKUP_DIR="`date +%F`-CM5.16""
1.1.2 备份Cloudera Manager Service
# Service Monitor执行 cp -rp /var/lib/cloudera-service-monitor /var/lib/cloudera-service-monitor-`date +%F`-CM5.16 # Host Monitor 执行 cp -rp /var/lib/cloudera-host-monitor /var/lib/cloudera-host-monitor-`date +%F`-CM5.16 # Event Server 执行 cp -rp /var/lib/cloudera-scm-eventserver /var/lib/cloudera-scm-eventserver-`date +%F`-CM5.16
1.1.3 备份 Cloudera Manager Databases
# mysql机器上执行 mysqldump --databases database_name --host=database_hostname --port=database_port -u user_name -p > $HOME/database_name-backup-`date +%F`-CM5.16.sql
CM界面开始停止集群服务和Cloudera监控服务,服务器上批量停止
systemctl stop cloudera-scm-agent systemctl stop cloudera-scm-server
2 升级Cloudera Server&&Cloudera Agent
2.1 升级Cloudera Server
#1. 修改yum源 # 注释掉旧的安装源换成新版本即可 #2. 刷新 yum clean all && yum makecache #3. 升级安装 yum upgrade cloudera-manager-server cloudera-manager-daemons cloudera-manager-agent #4. CM主机启动cloudera-scm-server && cloudera-scm-agent
Cloudera-scm-server重启部分日志如下:
2.2 升级Cloudera Agent
点击刷新后可以看到CM主节点已经得到升级,但是其余从节点未做修改,下一步我们开始批量升级Agent节点的版本,只需要修改对应yum源,执行更新命令&&启动即可
#1. 修改yum源 yum clean all && yum makecache #2. 更新 yum upgrade cloudera-manager-daemons cloudera-manager-agent -y #3. 启动agent systemctl start cloudera-scm-agent #4. 刷新cm界面后升级成功
开始启动服务 Cloudera Management Service
#这部分出问题可参考官网 https://docs.cloudera.com/documentation/enterprise/upgrade/topics/ug_cm_downgrade.html
3 升级CDH版本
CDH升级前看下升级后的CM界面,CDH依旧是5.16.2的。下面开始升级CDH版本
看了下来自官网的警告,瑟瑟发抖呀,升级之前还得对各种组件做好处理呀兄弟们!!!
下图中,官网告诉我们MR、Yarn等一些组件不需要单独处理,但是ZK,HDFS,Hbase都需要单独进行备份。
3.1 Zookeeper备份
#备份每台ZK服务 cp -rp /var/lib/zookeeper/ /var/lib/zookeeper-backup-`date +%F`CM6.3.1-CDH5.16
3.2 HDFS备份
#1.备份每台Journal服务,这里一定要是自己jn数据的目录哈 cp -rp /hadoop1/dfs/jns /hadoop1/dfs/jn-CM6.3.1-CDH5.16 #2.备份每台namenode,也一定注意自己的安装路径 mkdir -p /etc/hadoop/conf.rollback.namenode cd /var/run/cloudera-scm-agent/process/ && cd `ls -t1 | grep -e "-NAMENODE\\$" | head -1` cp -rp /etc/hadoop/conf.cloudera.hdfs/log4j.properties /etc/hadoop/conf.rollback.namenode/ #3.备份每台datanode运行目录 mkdir -p /etc/hadoop/conf.rollback.datanode/ cd /var/run/cloudera-scm-agent/process/ && cd `ls -t1 | grep -e "-DATANODE\\$" | head -1` rm -rf /etc/hadoop/conf.rollback.datanode/log4j.properties cp -rp /etc/hadoop/conf.cloudera.hdfs/log4j.properties /etc/hadoop/conf.rollback.datanode/
3.3 Hue备份
#hue服务的主机上 mkdir -p /opt/cloudera/parcels_backup cp -rp /opt/cloudera/parcels/CDH/lib/hue/app.reg /opt/cloudera/parcels_backup/app.reg-CM6.3.1-CDH5.16
3.4 升级CDH版本
准备好hhtpd远程配置的CDH parcel安装包,CM界面点击主机中的parcel,配置新的parcel安装源,如下图:
配置完成后出现如上截图,我们开始下载 -> 分配 -> 解压 -> 激活,然后开始升级。
感觉还是很顺利的哈哈哈哈!!!
升级成功!不过有一说一,升级的情况还是比较适用于大数据组件不多且集群规模不大的情况,如果条件允许的话直接重建会更快一些!
以上是关于运维实战100:CDH5.16.2升级至CDH6.3.2的主要内容,如果未能解决你的问题,请参考以下文章