• 运维实战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安装源,如下图:

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

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

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

  • 相关阅读:
    Ioc容器加载过程-bean生命周期源码解析
    【以太网硬件十四】以太网的MAC是干什么的?
    c语言之二级指针
    运行项目报错 proxy error: could not proxy request...
    学信息系统项目管理师第4版系列14_沟通管理
    牛客月赛c(简单推理,以及对set的灵活运用)
    最高奖励5亿元,杭州出台政策,打造万亿级智能物联产业生态圈
    算法设计与分析 | 输油管道
    c++实现键盘hook
    底层驱动day8作业
  • 原文地址:https://blog.csdn.net/qq_26442553/article/details/128212644