运维实战100:CDH5.16.2升级至CDH6.3.2
创始人
2024-03-23 09:17:04
0

本期来分享一个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_backupcp -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安装源,如下图:

配置完成后出现如上截图,我们开始下载 -> 分配 -> 解压 -> 激活,然后开始升级。

感觉还是很顺利的哈哈哈哈!!!

升级成功!不过有一说一,升级的情况还是比较适用于大数据组件不多且集群规模不大的情况,如果条件允许的话直接重建会更快一些!

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...