运维实战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的主要内容,如果未能解决你的问题,请参考以下文章

运维实战100:CDH5.16.2升级至CDH6.3.2

推荐升级四部曲之 CM 升级,收藏了!

推荐升级四部曲之 CM 升级,收藏了!

大数据平台CDH5.16.2 安装配置

centos7.2上安装CDH5.16.2及Spark2原创

tez 安装教程