如何降级Cloudera Manager和CDH

时间:2022-05-06
本文章向大家介绍如何降级Cloudera Manager和CDH,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢

1.文档编写目的


在前面的文章中,Fayson介绍过《如何升级Cloudera Manager和CDH》,在实际使用过程中,我们往往会碰到将集群升级到一个较新的版本后,会出现一些莫名其妙的问题,为了保证生产系统的稳定运行,在无法快速定位问题的情况下,这时需要对集群进行降级。本文主要介绍如何对集群进行Cloudera Manager和CDH的降级。

在《如何升级Cloudera Manager和CDH》文章中,Fayson详细介绍了CDH版本的一些说明和代表的意义,这里我们先回顾一个重要的概念:

"CDH和Cloudera Manager不用同时升级,但是需要保证Cloudera Manager和CDH版本的兼容。Cloudera Manager可以管理当前或以前的major版本的CDH,或相同minor版本的CDH,或较低minor版本的CDH。比如,Cloudear Manager 5.7.1可以管理CDH5.7.2,CDH5.6.1和CDH4.8.6,但是不能管理CDH5.8.1. Cloudera Manager5.x不能管理CDH3.x。"

对于降级其实也是一样的,你不用同时对CDH和Cloudera Manager进行降级,在版本跨度不大的情况下,实际你只降级CDH即达到了目的,因为Cloudera Manager的版本并不影响你集群上的任何作业的运行。而高版本的Cloudera Manager是可以管理低版本的CDH的。

如果你是使用Parcel方式安装CDH,无论是升级CDH还是降级CDH,差别都不大。我们回顾《如何升级Cloudera Manager和CDH》这篇文章可以发现对于Cloudera Manager的升级可以通过yum upgrade的命令来实现,比较方便,Cloudera Manager元数据库schema的升级,其实Cloudera Manager在升级时后台也自动帮你做了。但降级不一样,Cloudera Manager没有提供自动降级元数据库schema的功能,如果降级过程中有兼容性问题,你可能需要自己处理schema。实际过程中,往往一般降级CDH就够了。因为最终你会将Cloudera Manager和CDH升级到一个稳定的相同版本。

更多降级建议请参考文末Fayson的总结。

  • 内容概述

1.降级CDH

2.降级Cloudera Manager

3.降级后集群功能验证

4.常见问题

  • 测试环境

1.CM和CDH初始版本为5.14

2.CM和CDH的降级版本为5.13.1

3.OS为Redhat7.3

  • 前置条件

1.Cloudera Manager使用rpm方式安装

2.CDH使用Parcel方式安装

2.降级CDH


1.CDH5.13.1的Pacel下载地址

http://archive.cloudera.com/cdh5/parcels/5.13.1/CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel
http://archive.cloudera.com/cdh5/parcels/5.13.1/CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel.sha1
http://archive.cloudera.com/cdh5/parcels/5.13.1/manifest.json

(可左右滑动)

2.部署parcel包至HTTP服务的/var/www/html/cdh5.13.1目录下

[root@ip-172-31-16-68 cdh5.13.1]# pwd
/var/www/html/cdh5.13.1
[root@ip-172-31-16-68 cdh5.13.1]# ll
total 1888980
-rw-r--r-- 1 root root 1934231261 Dec  5 12:30 CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel
-rw-r--r-- 1 root root         41 Dec  5 12:30 CDH-5.13.1-1.cdh5.13.1.p0.2-el7.parcel.sha1
-rw-r--r-- 1 root root      73766 Dec  5 12:32 manifest.json
[root@ip-172-31-16-68 cdh5.13.1]#

(可左右滑动)

3.验证parcel部署是否成功

在浏览器访问如下地址,验证是否部署成功

http://ip-172-31-16-68.ap-southeast-1.compute.internal/cdh5.13.1/

(可左右滑动)

如上截图则表示CDH5.13.1的Parcel包部署成功

4.登录CM的WEB界面,配置parcel库地址

点击“保存更改”

如上图所示则表示配置成功

5.点击“下载”

等待下载成功,如下图显示下载成功

6.点击“分配”

等待分配成功,如下图显示分配成功

7.点击“激活”

8.点击“确定”,进行服务重启

重启成功

查看显示CDH5.13.1版本已激活

9.降级CDH版本后,会导致Oozie的共享库版本与CDH版本不匹配问题,需要降级Oozie的共享库

“Oozie Server 内部版本 (4.1.0-cdh5.13.1) 与 Oozie Server 共享库版本 (4.1.0-cdh5.14.0) 不匹配。”

停止Oozie服务

点击“安装Oozie共享库”

安装完成

重启Oozie服务

重启成功

10.至此完成CDH降级

3.降级Cloudera Manager


1.CM5.13.1的RPM下载地址

http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.13.1/RPMS/x86_64/cloudera-manager-agent-5.13.1-1.cm5131.p0.2.el7.x86_64.rpm
http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.13.1/RPMS/x86_64/cloudera-manager-daemons-5.13.1-1.cm5131.p0.2.el7.x86_64.rpm
http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.13.1/RPMS/x86_64/cloudera-manager-server-5.13.1-1.cm5131.p0.2.el7.x86_64.rpm
http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.13.1/RPMS/x86_64/cloudera-manager-server-db-2-5.13.1-1.cm5131.p0.2.el7.x86_64.rpm
http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.13.1/RPMS/x86_64/enterprise-debuginfo-5.13.1-1.cm5131.p0.2.el7.x86_64.rpm
http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.13.1/RPMS/x86_64/jdk-6u31-linux-amd64.rpm
http://archive.cloudera.com/cm5/redhat/7/x86_64/cm/5.13.1/RPMS/x86_64/oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm

(可左右滑动)

2.将下载的7个rpm包部署至HTTP服务所在服务器的/var/www/html/cm5.13.1目录下

[root@ip-172-31-16-68 ~]# cd /var/www/html/cm5.13.1/
[root@ip-172-31-16-68 cm5.13.1]# ll
total 931388
-rw-r--r-- 1 root root   9787964 Dec  5 13:02 cloudera-manager-agent-5.13.1-1.cm5131.p0.2.el7.x86_64.rpm
-rw-r--r-- 1 root root 700074360 Dec  5 13:02 cloudera-manager-daemons-5.13.1-1.cm5131.p0.2.el7.x86_64.rpm
-rw-r--r-- 1 root root      8708 Dec  5 13:02 cloudera-manager-server-5.13.1-1.cm5131.p0.2.el7.x86_64.rpm
-rw-r--r-- 1 root root     10608 Dec  5 13:02 cloudera-manager-server-db-2-5.13.1-1.cm5131.p0.2.el7.x86_64.rpm
-rw-r--r-- 1 root root  30604104 Dec  5 13:02 enterprise-debuginfo-5.13.1-1.cm5131.p0.2.el7.x86_64.rpm
-rw-r--r-- 1 root root  71204325 Dec  5 13:02 jdk-6u31-linux-amd64.rpm
-rw-r--r-- 1 root root 142039186 Dec  5 13:02 oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm
[root@ip-172-31-16-68 cm5.13.1]# 

(可左右滑动)

3.在该目录下执行如下命令

[root@ip-172-31-16-68 cm5.13.1]# createrepo .

(可左右滑动)

4.验证是否部署成功

在浏览器输入

http://ip-172-31-16-68.ap-southeast-1.compute.internal/cm5.13.1

(可左右滑动)

5.配置CM的yum源,删除多余CM的yum源配置

[root@ip-172-31-16-68 cm5.13.1]# cd /etc/yum.repos.d/
[root@ip-172-31-16-68 yum.repos.d]# vim cm.repo 
[cmrepo]
name = cm_repo
baseurl = http://172.31.16.68/cm5.13.1
enable = true
gpgcheck = false

(可左右滑动)

6.验证CM的yum源是否正常

7.停止CM及Cloudera Managent Service等服务

停止成功

使用批处理脚本停止所有节点的cloudera-scm-agent服务

[root@ip-172-31-16-68 shell]# sh ssh_do_all.sh node.list "systemctl stop cloudera-scm-agent"

(可左右滑动)

停止cloudera-scm-server服务

[root@ip-172-31-16-68 shell]# systemctl stop cloudera-scm-server

(可左右滑动)

8.备份CM的元数据库信息

[root@ip-172-31-16-68 cmdb_bak]# pwd
/root/cmdb_bak
[root@ip-172-31-16-68 cmdb_bak]# mysqldump -u cm -p --databases cm >cm.dump
Enter password: 
[root@ip-172-31-16-68 cmdb_bak]# mysqldump -u am -p --databases am >am.dump
Enter password: 
[root@ip-172-31-16-68 cmdb_bak]# mysqldump -u rm -p --databases rm >rm.dump
Enter password: 
[root@ip-172-31-16-68 cmdb_bak]# ll

(可左右滑动)

9.卸载所有节点的cloudera-manager-server及相关服务

[root@ip-172-31-16-68 shell]# yum -y remove cloudera-manager*

(可左右滑动)

注意:这里需要卸载所有节点的cloudera-manager*相关服务,否则在后面升级cloudera-manager-agent服务会失败。

10.安装CM5.13.1版本的Cloudera-manager-server服务

[root@ip-172-31-16-68 shell]# yum -y install cloudera-manager-server

(可左右滑动)

11.初始化数据库连接

[root@ip-172-31-16-68 cloudera-scm-server]# /usr/share/cmf/schema/scm_prepare_database.sh mysql cm cm password

(可左右滑动)

注意:如果没有备份/etc/cloudera-scm-server目录下的db.properties数据库配置文件则要执行该操作初始化数据库配置信息。

12.启动Cloudera-scm-server服务

[root@ip-172-31-16-68 shell]# systemctl start cloudera-scm-server

(可左右滑动)

13.登录Cloudera Manager的WEB界面,进入升级向导界面

14.填写CM的存储库地址,点击“继续”

15.安装JDK,点击“继续”

16.输入登录主机密码,点击“继续”

17.升级Cloudera Manager Agent服务,点击“继续”

18.检查主机正确性,点击“继续”

19.完成Cloudera Manager Agent升级

20.点击“完成”,进入升级向导

21.点击“继续”重启Cloudera Management Service服务

22.点击“继续”,重启Cloudera Management Service 服务

点击完成,进入CM主页,至此已完成CM的降级操作。

查看CM已降至5.13.1版本

4.降级后集群功能验证


1.运行一个MapReduce作业

[root@ip-172-31-16-68 ~]# hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 10 100

(可左右滑动)

作业执行成功

2.使用Hue测试,Hue登录成功

使用Hive引擎执行SQL操作

使用Impala引擎执行SQL操作

3.向集群提交一个Spark作业

spark-submit --class org.apache.spark.examples.SparkPi
  --master yarn-client --num-executors 4 --driver-memory 2g
  --driver-cores 1 --executor-memory 2g --executor-cores 1
  /opt/cloudera/parcels/CDH/lib/spark/lib/spark-examples.jar 10

(可左右滑动)

作业执行成功

5.总结


1.Cloudera实际不提供官方或者正式的降级方式。通过前面章节可以看出CDH降级其实是停用5.14的Parcel,然后启用5.13.1的Parcel。而Cloudera Manager则是直接重装。

2.Cloudera Manager的降级其实是有风险的一件事,因为Cloudera Manager的元数据库的schema对于版本之间的变动,降级后如果有问题你需要自己处理。Fayson这次实操选的从5.14降级到5.13,没有什么问题,说明元数据库变化不大。但如果你是真实的生产系统,而且版本跨度较大,建议还是需要谨慎对待。

3.如果你按照Fayson之前的文章《如何升级Cloudera Manager和CDH》,备份了所有元数据库信息,建议你如果降级可以直接选择旧版本的元数据库信息来还原。

4.为了减少处理降级过程中元数据的schema变动问题,可以考虑只降CDH,CM依旧使用新的,因为最终你会将Cloudera Manager和CDH升级到一个稳定的相同版本。

5.对于CDH的降级,如果你版本跨度较大,尤其是HDFS的版本。当你在升级时做了“最终化元数据升级”,HDFS将不能再回滚,即无法降级。HDFS作为存储比较重要,其他的上层的都是计算引擎,如果降级有问题还好处理一些。这里大家也需要注意。Fayson本次实操的5.14和5.13,HDFS版本其实是没变化的,所以问题不大。否则你最好将HDFS的数据备份,或者关键数据备份。

6.如果升级有问题,最好就地解决,不到万不得已最好还是不要轻易选择降级,尤其是生产系统。

提示:代码块部分可以左右滑动查看噢 为天地立心,为生民立命,为往圣继绝学,为万世开太平。 温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。

推荐关注Hadoop实操,第一时间,分享更多Hadoop干货,欢迎转发和分享。

原创文章,欢迎转载,转载请注明:转载自微信公众号Hadoop实操