CM和CDH升级操作手册

2018-06-30  本文已影响0人  jhonshonjs

前言

因为cdh版本更新频率较快,各个小版本之间变化可能不是很大,但是Cloudera公司的每一次更新带来的都是bug的修复,技术的革新。相较于我们公司生产上还是cdh5.9.0有点掉队了,现在急需进行一场更新变革,跟上技术的脚步,适应行业的发展。对于此次升级,主要是cm及cdh的操作,采用的是Cloudera官方给出的Tarballs方式升级,包括Cloudera Manager Server和Cloudera Manager Agent 的升级,然后再利用cm来升级cdh。

详细步骤

收集升级信息

  1. 主机信息,确保能够通过root免密码登录

  2. Cloudera Manager版本(通过cm主界面可查看)


    版本信息.png
  3. JDK版本

  4. CDH版本(通过cm主界面可查看)

  5. 确保CDH之前部署的方式是Parcels还是Packages(通过cm主界面可查看)

  6. CM service,Hue,Hive Metastore,Sentry Server的数据库信息。

升级前准备工作

  1. 阅读要升级版本的要求和系统需求:https://www.cloudera.com/documentation/enterprise/release-notes/topics/rn_consolidated_pcm.html(包括cm跟cdh的匹配规则;cm跟服务器版本的匹配规则;JDK的选择等等)
  2. 由于我们的集群未开启TLS/SSL功能,故可不关注这方面。
  3. 确保Java 1.7或Java 1.8版本
  4. 确保Cloudera Manager次要版本等于或大于CDH的次要版本
  5. 运行Host Inspector并且修复出现的问题(Cluster > Inspect Hosts)
  6. 运行Security Inspector并且修复出现的问题(Administration > Security ,然后点击Security Inspector)这个是集群若开启了kerberos认证时使用。
  7. 检查HDFS是否正常,修复检查出的问题(hdfs fsck / 和 hdfs dfsadmin -report 命令)
  8. 检查HBASE是否正常(hbase hbck命令)
  9. 通知业务,升级CM和整个CDH大数据平台需要花费较长的时间
  10. 为了避免在升级期间出现不必要的警告,可以在启动升级之前打开维护模式(当该群集处于维护模式中时,从该群集的服务和角色发出的警报将会被抑制),升级完成后记得退出维护模式。

在NameNode上备份HDFS Metadata

  1. 在Active NameNode的服务上找到配置的数据目录,如果配置了多个目录,备份其中一个目录即可(每个目录都是完全拷贝的元数据)
    [图片上传失败...(image-5389f0-1530292392783)]
    需要注意的是:如果NameNode的数据目录下面还有以.lock扩展名的文件,那么说明NameNode还在运行,需要先停止NameNode服务。

备份数据库数据

注意:备份数据库之前,需要停止对应一些组件的服务,备份期间,服务不可用。
需要备份的数据库的组件有:
Hue
Oozie
Cloudera Navigator Audit Server
Cloudera Navigator Metadata Server
Activity Monitor
Reports Manager
Sentry Server
Hive Metastore
针对我们的生产环境,数据库采用的是MariaDB,所以备份方式可以采用:
![](mysqldump -hhostname -u username -p password database > /tmp/database-backup.sql
)
测试环境的数据库有:
scm
hue
hive
sqoop
oozie
sentry

升级Cloudera Manager Server/Agent

  1. 配置需要升级的cm版本的yum源(前面讲到要安装适合本服务器对应的cm版本,此次测试集群是centos7.4的)
  1. 验证可知,新版本的yum源已配置好,接下来就是更新升级啦。

  2. web页面关闭Cloudera Management Service服务。(当然在升级cm的时候其实跟cdh是分开的,集群可关闭也可不关,建议关闭吧)

  3. 关闭cloudera-scm-server服务,备份相关数据(备份数据库的时候确保服务已关闭)

  4. 升级Cloudera相关组件:


    更新cm安装包.png
  5. 检查安装是否成功:


    cm安装成功.png
  6. 开启cloudera-scm-server服务:![]([root@slave1 init.d]# cd /etc/init.d/
    [root@slave1 init.d]# ./cloudera-scm-server start)

  7. 登录cm界面,选择升级现在升级Cloudera Manager Agent


    cm界面.png
  8. 接下来就是升级agent的操作。(可能会比较耗时,因为要下载更新的软件包,最好是都配置成公司内部的yum安装包源地址)

  1. 验证并测试升级

升级CDH

  1. 配置适合新版本的parcel包(配置好后,最好点击下载,因为待会升级也会要求下载分发并激活)


    parcel入口.png
    parcel配置入口.png
    配置parcel.png
    刷新parcel.png
  2. 点击升级群集(确保集群此时已关闭,各服务不能要数据库写数据。)


    升级群集入口.png
    cdh更新版本.png
    升级cdh_1.png
  3. 它会提示你备份数据库的相关数据,当然也备份namenode的元数据。

  4. 等待cdh更新包的下载完成,然后分发激活。(比较花费时间,最好是先自己将parcel包下载好,再分发到各个服务器的/opt/cloudera/parcel-repo/目录下,或者将远程地址配置成公司内部可用的地址。)

  5. parcel解压激活后,点击继续,检查主机(可跳过),然后重启集群。

  6. 选择“完整群集重启”后,点击“继续

  7. 如果升级过程遇到失败后,修复问题后,继续升级。

  8. 至此集群的整个升级过程都已完成,后面可通过查看hdfs文件看数据量的变化,也可向yarn提交任务验证此次升级操作的准确性。

总结

  1. 升级过程是一个严谨的操作,必须按照特定的顺序操作流程,且不容有差错。
  2. 整个过程中比较耗时的都是集群在下载cm的安装包和parcel的软件包的步骤,这个我们可通过提交配置好环境来规避这一点,另外在下载parcel包时可以提前在本地下载好放到特定的目录下面(/opt/cloudera/parcel-repo),因为集群内部的分发速度是很快的。
  3. 升级之前最好要测试一下集群自身有问题没,包括集群的重启,namenode的ha的切换等等。
  4. 升级过程中遇到问题解决问题,不能瞎操作。
上一篇 下一篇

猜你喜欢

热点阅读