1.Cloudera升级概述
CDP作为一个软件系统,安装成功后主要包含三部分:Cloudera Manager Server,Cloudera Manager Agent以及CDH Parcel,所以CDP的升级也主要是包含这三部分的升级。一般来说是先通过操作系统的Package升级Cloudera Manager,然后通过Parcel升级CDH即可以完成整个集群的升级。CDH和Cloudera Manager不用同时升级,但是需要保证Cloudera Manager和CDH版本的兼容,具体的版本兼容情况可以参考官网,一般来说高版本的Cloudera Manager可以管理低版本的CDH。
1.1.Cloudera Manager升级概述
升级Cloudera Manager包括以下步骤:
1.在CM节点上升级Cloudera Manager Server,使用操作系统的命令,比如Redhat的yum upgrade。
2.在所有主机上升级Cloudera Manager agent,Cloudera Manager的升级向导可以帮助你升级agent(JDK升级可选),同时也可以选择手动升级JDK和agent。在这个过程中,CDH并不会被升级。
1.2.CDH升级概述
CDH升级包含Hadoop相关组件的升级,你可以使用Cloudera Manager来升级CDH,通过Parcel的方式来进行升级,因为Cloudera Manager管理这些Parcel自动下载,分发和激活。具体还可以分为以下两种方式:
- 直接升级,需要重启整个集群才能完成升级,但是需要规划停机窗口,整个升级过程较短;
- 滚动升级,如果主要服务如HDFS,YARN都启用了HA,也可以在不重启集群的情况下进行滚动升级。优点是不需要单独规划停机窗口,对集群上已有的应用不产生影响,缺点是整体升级时间较长。
2.Cloudera Manager升级
2.1.升级前准备
2.2.1 Cloudera Manager的yum源配置
1.准备要升级的版本的rpm包
https://archive.cloudera.com/p/cm7/7.7.1/redhat7/yum/RPMS/x86_64/cloudera-manager-agent-7.7.1-31068812.el7.x86_64.rpmhttps://archive.cloudera.com/p/cm7/7.7.1/redhat7/yum/RPMS/x86_64/cloudera-manager-daemons-7.7.1-31068812.el7.x86_64.rpmhttps://archive.cloudera.com/p/cm7/7.7.1/redhat7/yum/RPMS/x86_64/cloudera-manager-server-7.7.1-31068812.el7.x86_64.rpmhttps://archive.cloudera.com/p/cm7/7.7.1/redhat7/yum/RPMS/x86_64/cloudera-manager-server-db-2-7.7.1-31068812.el7.x86_64.rpmhttps://archive.cloudera.com/p/cm7/7.7.1/redhat7/yum/RPMS/x86_64/openjdk8-8.0 232_9-cloudera.x86_64.rpmhttps://archive.cloudera.com/p/cm7/7.7.1/allkeys.asc
2. 将安装包放到/var/www/html/cm CM7.7.1-el7目录下
在该目录下执行命令createrepo .
3.验证能否通过浏览器访问
4.配置cm.repo文件
[root@cdh0001 yum.repos.d]# vim cm7.7.1.repo[cmrepo7.7.1]name = cm7.7.1_repobaseurl = http://cdh0001/cm7.7.1enable = truegpgcheck = false
5.测试yum源是否正常
2.1.2.备份相关元数据库
1.停止Cloudera Management Service,集群服务和Cloudera Manager Server,步骤略。
2.备份相关元数据库,如果是使用MySQL,即将相关的库全部dump保存到某个目录,需要备份的包含以下服务的数据库:
- Cloudera Manager Server
- Hue
- Hive Metastore
- Ranger
- Reports Manager
过程略。
2.2.开始升级Cloudera Manager
1.停止Cloudera Manager Server
systemctl stop cloudera-scm-server
2.停止CM Server所在主机上的Agent服务
systemctl stop cloudera-scm-agent
3.在CM Server所在主机备份以下目录
mkdir /tmp/cm_bakcp -rp /etc/cloudera-scm-server/ /tmp/cm_bakcp -rp /etc/cloudera-scm-agent/ /tmp/cm_bak
4.运行以下命令升级Cloudera Manager Server
yum -y upgrade cloudera-manager-servercloudera-manager-daemons cloudera-manager-agent
验证是否升级成功
5.启动Cloudera Manager Server服务
systemctl start cloudera-scm-server
6.登录Cloudera Manager管理界面,显示升级向导
点击“升级Cloudera Manager Agent软件包”
7.升级Cloudera Manager Agent软件包,选择自定义存储库
8.选择JDK
9.输入SSH登陆凭证
10.升级Cloudera Manager Agent软件包
11.升级完成后,进行主机检查
12.启动Cloudera Management Service
13.回到主页,重启配置过期的服务
重启整个集群
2.3.Cloudera Manager升级验证
1.查看Cloudera Manager版本,验证版本是否为升级后的版本(7.7.1)
2.验证Agent是否向Cloudera Manager发送心跳
3.查看历史监控数据
升级过程中有一些监控数据有丢失,可以看到前面的监控数据,正常。
3.CDH升级
3.1.CDH升级准备
3.1.1.准备CDH的Parcel
1.下载对应版本7.1.8的parcels
https://archive.cloudera.com/p/cdh7/7.1.8.0/parcels/CDH-7.1.8-1.cdh7.1.8.p0.30990532-el7.parcelhttps://archive.cloudera.com/p/cdh7/7.1.8.0/parcels/CDH-7.1.8-1.cdh7.1.8.p0.30990532-el7.parcel.sha1https://archive.cloudera.com/p/cdh7/7.1.8.0/parcels/CDH-7.1.8-1.cdh7.1.8.p0.30990532-el7.parcel.sha256https://archive.cloudera.com/p/cdh7/7.1.8.0/parcels/manifest.json
2.将下载下来的文件,放到/var/www/html/cdh7.1.8目录下
3.验证通过浏览器能否访问
3.2.CDH升级流程
1.停止集群服务
2.备份NameNode上的元数据
在主NameNode节点上备份该目录到指定目录下
cd /dfstar -zcvf /tmp/nn_bak/nn_bak.tar.gz nn/
3.备份数据库,参见2.1.2章节。
4.向集群中添加新版的存储库
5.运行升级向导
6.进入CDH升级向导页面
7. 选择CDH升级的版本
8.点击“Download and Distribute Parcel”,下载并分发Parcel。
9.运行主机检查
10.运行服务检查
发现Hue需要Python3.8
安装Python3.8之前运行以下命令安装相关的包
yum install gcc openssl-devel bzip2-devel libffi-devel zlib-devel -y
下载Python3.8的包
cd /optcurl -O https://www.python.org/ftp/python/3.8.12/Python-3.8.12.tg
解压
tar -zxvf Python-3.8.12.tgz
安装Python3.8
cd /opt/Python-3.8.12./configure --enable-shared
使用make命令编译文件
makemake install
拷贝共享的编译库文件(libpython3.8.so)到/lib64/目录:
cp --no-clobber ./libpython3.8.so* /lib64/
修改libpython3.8.so文件的权限
chmod 755 /lib64/libpython3.8.so*
重新运行服务检查,发现已经检查通过。
为了Hue正常启动还需要安装mysqlclient
yum install -y xmlsec1 xmlsec1-openssl mysql-develexport PATH=/usr/local/bin:$PATH/usr/local/bin/python3.8 -m pip install --upgrade pippip3.8 install mysqlclient
11.勾选“是,我已执行这些步骤。”,点击“继续”
12.停止集群。
13.开始升级集群。
14.集群升级成功
15.最终化元数据升级
在进行最终化元数据升级之前,要观察几天甚至几周的时间,观察集群的运行是否正常,在发现所有的任务都没有任何异常后,再进行最终化元数据升级操作。一旦进行升级操作后,就无法再进行回滚,除非有数据备份。执行升级操作如下:
至此,集群升级到CDP7.1.8完成。