摘要:本篇教程探讨了大数据技术之如何升级Cloudera Manager和CDH,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。
本篇教程探讨了大数据技术之如何升级Cloudera Manager和CDH,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。
<
本文档讲述如何升级Cloudera Manager和CDH,通过本文档,您将学习到以下知识:
1.如何对Cloudera Manager进行停机升级
2.如何对CDH进行停机升级
3.如何在不影响集群作业的情况下进行CDH滚动升级
文档主要分为以下几步:
1.Cloudera升级概述
2.Minor版本Cloudera Manager和CDH升级
3.Maintenance版本滚动升级CDH
4.滚动升级时进行任务验证
5.集群升级完成后功能验证
这篇文档将重点介绍CDH升级,并基于以下假设:
1.CDH5.4.3环境已搭建并正常运行
2.集群服务(CM、HBase、HDFS、Hive、Hue、Oozie、Spark、Yarn、Zookeeper)
3.Cloudera Manager使用rpm安装
4.CDH使用parcels安装
5.集群未配置Kerberos
以下是本次测试环境,但不是本操作手册的硬限制:
1.操作系统:Redhat6.5
2.旧CM/CDH版本:CM5.4.3/ CDH5.4.3
3.CM/CDH的目标升级版本:CM5.11.1/ CDH5.11.1
4.采用sudo权限的ec2-user用户进行操作
升级建议:
1.针对CDH的Maintenance Version升级,可以使用滚动升级,比如:5.4.x升级到5.4.y,这种版本升级主要修复bug,不改动API,也不涉及新的功能。
2.针对CDH的Minor Version升级,建议停机升级或者滚动升级(如果跨度不大),比如5.x.x升级到5.y.y,这种版本升级主要是增加新的功能和新的API。
3.针对CDH的Major Version升级,建议必须停机升级,而且在升级前需要对已有应用和作业的改造和升级进行完备的测试验证,相应升级时停机时间会较长,这种版本升级一般是Hadoop相关组件的大版本升级,可能会改动API。
2.Cloudera升级概述
下面描述的流程适用于由Cloudera Manager管理的集群,对于不是由Cloudera Manager管理的集群升级,请参考:https://www.cloudera.com/documentation/enterprise/latest/topics/cdh\_ig\_upgrade\_command\_line.html#xd\_583c10bfdbd326ba--5a52cca-1476e7473cd--7f99
你可以使用tarballs或operating system packages来升级Cloudera Manager,然后使用packages或parcels来升级CDH。同时有可能还需要安装一个新版JDK。升级Cloudera Manager的同时Cloudera Navigator也会被升级。
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。
升级时具体有如下几种选择:
2.1评估升级影响
一般需要规划一个足够长的维护窗口(停机时间)进行升级。根据需要升级的组件,集群的节点数,以及不同的硬件情况,你可能需要一整天来进行升级。开始升级之前,你需要做好一些前置条件准备以及关键数据备份,这篇文档在讲述升级步骤时也会说明。
升级之前,需要查阅Cloudera Manager的https://www.cloudera.com/documentation/enterprise/release-notes/topics/rg\_release\_notes.html,了解API更改,不推荐的功能,新的功能以及不兼容的更改。同时需要检查https://www.cloudera.com/documentation/enterprise/release-notes/topics/rn\_consolidated\_pcm.html来确认支持的操作系统,JDK,数据库和其他组件。
一共有三种版本的升级:major,minor和maintenance。
Major升级
Major版本的升级通常有以下特征:
Hadoop的大版本变化,涉及很多更新内容
不兼容的数据格式
Cloudera Manager界面的重大变化
Cloudera Manager的数据库schema变动,不过可以在升级过程中自动被处理
需要较长的停机时间
需要重新部署客户端
你也可以只升级major版本,而保持minor版本不变,比如你可以从4.8.1升级到5.8.0. 为了方便下一个major版本的升级(CDH6),我们建议您现在可以将集群升级到5.x
Minor版本升级
Minor版本升级是指基于同样的major版本将minor版本进行升级,比如从5.4.x升级到5.8.x,一般有以下特征:
新的功能
Bug修复
可能存在的数据库schema更改会在Cloudera Manager升级时自动被处理
一般来说,minor版本的升级不包括不兼容的更改或者数据格式的变化。客户端配置(https://www.cloudera.com/documentation/enterprise/latest/topics/cm\_mc\_client\_config.html#cmug\_topic\_5\_9)会被重置。
Maintenance版本升级
Maintenance版本升级主要是重大bug修复或者解决一些安全问题。不会有兼容性修改和新功能。
2.2Cloudera Manager升级概述
升级Cloudera Manager包括以下步骤:
1.在CM节点上升级Cloudera Manager Server,使用操作系统的命令,比如Redhat的yum。也可以手动通过tarballs来升级。tarballs升级比较适合集群中已经有一些可以同时操作多台机器的脚本,程序或工具。
2.在所有主机上升级Cloudera Manager agent,Cloudera Manager的升级向导可以帮助你升级agent(JDK升级可选),同时也可以手动的通过tarballs升级JDK和agent。在这个过程中,CDH并不会被升级。
Cloudera Manager升级,可以参考官网文档:https://www.cloudera.com/documentation/enterprise/latest/topics/cm\_upgrade.html#concept\_q1q\_mbs\_wx
2.3CDH升级概述
CDH升级包含Hadoop相关组件的升级,你可以使用Cloudera Manager来升级CDH,采用parcel或package的方式都可以。
2.3.1使用Parcel升级(同时适用于滚动升级)
我们建议使用parcels来升级CDH,因为Cloudera Manager管理这些parcels自动下载,分发和激活。有两种方式的升级:
Parcels:需要重启集群才能完成升级。
滚动升级:如果HDFS启用了高可用HA,可以在不重启集群的情况下进行滚动升级。为了简化升级步骤,可以考虑从package切换到parcels,这样Cloudera Manager可以大大简化升级步骤。在升级CDH5的时候你从package切换到parcels也可以。
2.3.2使用Packages升级
使用packages升级需要你提前下载好需要升级的packages,然后手动的运行package更新命令来升级,注意所有主机都需要进行相同的操作。
从Cloudera Manager5.3开始,CDH提供向导式的升级包括major版本升级(CDH5到CDH5),minor版本升级(CDH5.x到5.y)和maintenance版本升级(CDHa.b.x到CDHa.b.y)。无论你是使用parcels安装还是package都支持,但是package需要你手动安装和升级,但是parcels可以被Cloudera Manager自动安装和升级。
2.4Cloudera Navigator升级概述
当升级Cloudera Manager的时候,Cloudera Navigator Metadata和Audit servers会被自动升级。你还可以升级其他的Navigator组件比如Cloudera Navigator Key Trustee Server, Cloudera Navigator Key HSM和Cloudera Navigator Encrypt。当然也可以选择不升级。
2.5JDK升级
在升级Cloudera Manager和CDH之前,请确保集群内的所有主机都是使用受支持的Oracle JDK,参考:https://www.cloudera.com/documentation/enterprise/release-notes/topics/rn\_consolidated\_pcm.html。同时,所有主机必须使用相同版本的JDK:参考:https://www.cloudera.com/documentation/enterprise/latest/topics/cdh\_cm\_upgrading\_to\_jdk8.html#xd\_583c10bfdbd326ba-590cb1d1-149e9ca9886--7c46
3.Minor版本升级
升级前置条件:
1.确保当前系统版本支持您要升级到的新版本CDH5和Cloudera Manager5
2.原Cloudera Manager和CDH的版本为5.4.3
3.Cloudera Manager和CDH的目标升级版本为5.11.1
3.1Cloudera Manager升级
本章节主要讲述如何使用RPM包升级Cloudera Manager。
3.1.1升级前准备
3.1.1.1Cloudera Manager的yum源配置
1.准备待升级rpm包
wget //archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.11.1/RPMS/x86_64/cloudera-manager-agent-5.11.1-1.cm5111.p0.9.el6.x86_64.rpmwget //archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.11.1/RPMS/x86_64/cloudera-manager-daemons-5.11.1-1.cm5111.p0.9.el6.x86_64.rpmwget //archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.11.1/RPMS/x86_64/cloudera-manager-server-5.11.1-1.cm5111.p0.9.el6.x86_64.rpmwget //archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.11.1/RPMS/x86_64/cloudera-manager-server-db-2-5.11.1-1.cm5111.p0.9.el6.x86_64.rpmwget //archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.11.1/RPMS/x86_64/enterprise-debuginfo-5.11.1-1.cm5111.p0.9.el6.x86_64.rpmwget //archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.11.1/RPMS/x86_64/jdk-6u31-linux-amd64.rpmwget //archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.11.1/RPMS/x86_64/oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm
2.将下载的安装包放在/var/www/html/cm5.11.1目录下
进入cm5.11.1目录,运行命令:
[ec2-user@ip-172-31-8-141 cm5.11.1]$ sudo createrepo .
3.验证是否能通过浏览器访问
4.配置/etc/yum.repos.d/cloudera-manager.repo文件,内容如下
[cloudera-manager]name = Cloudera Manager, Version 5.11.1baseurl = //archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.11.1/gpgcheck = 0
5.测试yum源是否正常
[ec2-user@ip-172-31-8-141 yum.repos.d]$ sudo yum clean all[ec2-user@ip-172-31-8-141 yum.repos.d]$ sudo yum repolist
3.1.1.2备份Cloudera Manager数据库
1.停止Cloudera Management Service服务
2.备份Cloudera Manager数据库,在命令行执行如下命令
l Cloudera Manager Server
l Cloudera Navigator Audit Server
l Cloudera Navigator Metadata Server
l Activity Monitor
l Reports Manager
[ec2-user@ip-172-31-8-141 cmdb_bak]$ mysqldump -u cm -p --databases cm >cm.dump[ec2-user@ip-172-31-8-141 cmdb_bak]$ mysqldump -u nas -p --databases nas >nas.dump[ec2-user@ip-172-31-8-141 cmdb_bak]$ mysqldump -u nms -p --databases nms >nms.dump[ec2-user@ip-172-31-8-141 cmdb_bak]$ mysqldump -u am -p --databases am >am.dump[ec2-user@ip-172-31-8-141 cmdb_bak]$ mysqldump -u rm -p --databases rm >rm.dump
查找数据库相关的信息,可从如下文件中查找
ClouderaManager Server的数据库信息,通过配置文件/etc/cloudera-scm-server/db.properties获取
其它服务的数据库信息,可以通过CM管理界面获取
3.1.2升级步骤
1.停止Cloudera Management Service服务
2.停止Cloudera Manager Server和agent
停止所有服务器的cloudera-scm-agent服务
[ec2-user@ip-172-31-8-141 ~]$ sudo service cloudera-scm-agent stop
在运行Cloudera Manager服务器的主机上,停止cloudera-scm-server服务
[ec2-user@ip-172-31-8-141 cdh-shell-master]$ sudo service cloudera-scm-server stop
3.在Cloudera Manager上备份以下目录
[ec2-user@ip-172-31-8-141 cm_bak]$ sudo scp -r /etc/cloudera-scm-server/ /home/ec2-user/upgrade/cm_bak/[ec2-user@ip-172-31-8-141 cm_bak]$ sudo scp -r /etc/cloudera-scm-agent/ /home/ec2-user/upgrade/cm_bak/
注意文件目录权限与原数据目录权限一致。
4.运行以下命令进行Cloudera Manager Server升级
[ec2-user@ip-172-31-8-141 cm_bak]$ sudo yum -y upgrade cloudera-manager-server cloudera-manager-daemons cloudera-manager-agent
检查是否安装成功
[ec2-user@ip-172-31-8-141 cm_bak]$ rpm -qa |grep cloudera-
5.启动Cloudera Manager Server服务
[ec2-user@ip-172-31-8-141 cloudera-scm-agent]$ sudo service cloudera-scm-server start
6.登录Cloudera Manager管理控制台,显示升级向导
7.选择升级Cloudera Manager Agent软件包,继续
8.选择“自定义存储库”,配置2.1.2章节的地址,点击“继续”
9.选择JDK选择,点击“继续”
10.根据要求输入SSH登录凭证,点击“继续”
11.等待安装完成,点击“继续”
12.检查完成,点击“完成”
13.进入审核更改向导界面,点击“继续”
14.选择重启Cloudera Management Service,点击“继续”
15.服务重启成功,点击“完成”
集群服务任在正常运行
Cloudera Manager在升级后报告过时的配置,请重新启动集群服务并重新部署客户端配置
3.1.3Cloudera Manager升级验证
1.查看Cloudera Manager版本
版本显示为升级后版本
2.验证Agent是否向Cloudera Manager发送心跳
默认情况下,该心跳为15s一次;
3.检查所有主机
4.集群历史监控数据
3.2CDH升级
3.2.1升级前准备
3.2.1.1准备CDH的parcels包
1.选择cdh5.11.1版本下载对应的parcels
wget //archive.cloudera.com/cdh5/parcels/5.11.1/CDH-5.11.1-1.cdh5.11.1.p0.4-el6.parcelwget //archive.cloudera.com/cdh5/parcels/5.11.1/CDH-5.11.1-1.cdh5.11.1.p0.4-el6.parcel.sha1wget //archive.cloudera.com/cdh5/parcels/5.11.1/manifest.json
2.将下载下来的3个文件,放在/var/www/html/cdh5.11.1目录下
3.测试通过http是否能正常访问
配置完成后,供后面升级CDH使用
3.2.2升级流程
1.停止集群服务
2.备份NameNode上的HDFS Metastore
在NameNode节点上备份该目录到指定目录下
[ec2-user@ip-172-31-8-141 dfs]$ cd /dfs/[ec2-user@ip-172-31-8-141 dfs]$ sudo tar -czvf /home/ec2-user/upgrade/nn_bak/nn_backup.tar.gz nn/
3.备份数据库
l Cloudera Manager Server
[ec2-user@ip-172-31-8-141 hadoopdb_bak]$ mysqldump -u hue -p --database hue >hue.dump[ec2-user@ip-172-31-8-141 hadoopdb_bak]$ mysqldump -u hive -p --database metastore >metastore.dump[ec2-user@ip-172-31-8-141 hadoopdb_bak]$ mysqldump -u oozie -p --database oozie >oozie.dump[ec2-user@ip-172-31-8-141 hadoopdb_bak]$ mysqldump -u sentry -p --database sentry >sentry.dump[ec2-user@ip-172-31-8-141 cmdb_bak]$ mysqldump -u cm -p --databases cm >cm.dump[ec2-user@ip-172-31-8-141 cmdb_bak]$ mysqldump -u nas -p --databases nas >nas.dump[ec2-user@ip-172-31-8-141 cmdb_bak]$ mysqldump -u nms -p --databases nms >nms.dump[ec2-user@ip-172-31-8-141 cmdb_bak]$ mysqldump -u am -p --databases am >am.dump[ec2-user@ip-172-31-8-141 cmdb_bak]$ mysqldump -u rm -p --databases rm >rm.dump
4.向集群中添加新版的CDH存储库
5.运行升级向导
6.进入升级向导界面
7.确认CDH版本是否正确,点击“继续”
8.选择“是”,点击“继续”
9.点击“继续”
10.等待安装完成后,点击“继续”
11.检查主机完成后,点击“继续”
12.选择完整集群升级,点击“继续”
13.等待升级集群命令完成,点击“继续”
14.集群升级成功
15.最终化元数据升级
在最终化元数据之前,进行几天甚至几周的运行观察集群是否正常,在发现所有任务都没有任何异常情况后,再进行最终化元数据操作。一旦进行最终化元数据之后,就不能回滚到老的版本了,除非有数据备份。对NameNode的主备节点都执行最终化元数据升级操作:
3.2.3功能验证
1.运行一个MapReduce作业
登录集群服务器,操作如下指令
sudo -u hdfs hadoop jar /opt/cloudera/parcels/CDH/lib/hadoop-mapreduce/hadoop-mapreduce-examples.jar pi 10 100
2.用Hue测试
Hue正常登录,通过Hue操作HBase,向HBase中新建一个test表
向test表中添加一条数据
数据添加成功
通过hbase-shell查看该表是否存在
3.测试hive
beeline登录hive进行测试
Hue测试hive
能正常查询test表数据
4.CDH的Maintenance版本滚动升级
升级前置条件:
确保当前系统版本支持您要升级到的新版本CDH5和Cloudera Manager5
原Cloudera Manager和CDH的版本为5.10.0
Cloudera Manager和CDH的目标升级版本为5.10.2
集群已开启NameNode高可用
集群已开启Resource Manager高可用
4.1Cloudera Manager升级
4.1.1升级前准备
4.1.1.1Cloudera Manager 的yum源配置
1.下载Cloudera Manager的RPM安装包
sudo wget //archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.10.2/RPMS/x86_64/cloudera-manager-agent-5.10.2-1.cm5102.p0.9.el6.x86_64.rpmsudo wget //archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.10.2/RPMS/x86_64/cloudera-manager-daemons-5.10.2-1.cm5102.p0.9.el6.x86_64.rpmsudo wget //archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.10.2/RPMS/x86_64/cloudera-manager-server-5.10.2-1.cm5102.p0.9.el6.x86_64.rpmsudo wget //archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.10.2/RPMS/x86_64/cloudera-manager-server-db-2-5.10.2-1.cm5102.p0.9.el6.x86_64.rpmsudo wget //archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.10.2/RPMS/x86_64/enterprise-debuginfo-5.10.2-1.cm5102.p0.9.el6.x86_64.rpmsudo wget //archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.10.2/RPMS/x86_64/jdk-6u31-linux-amd64.rpmsudo wget //archive.cloudera.com/cm5/redhat/6/x86_64/cm/5.10.2/RPMS/x86_64/oracle-j2sdk1.7-1.7.0+update67-1.x86_64.rpm
2.将下载的的7个RPM安装包,放在/var/www/html/cm5.10.2目录下
3.在该目录下执行如下命令
[ec2-user@ip-172-31-8-141 cm5.10.2]$ sudo createrepo .
4.通过浏览器测试是否能正常访问
5.修改/etc/yum.repos.d/cloudera-manager.repo配置
[ec2-user@ip-172-31-8-141 cm5.10.2]$ sudo vim /etc/yum.repos.d/cloudera-manager.repo[cloudera-manager]name = Cloudera Manager, Version 5.10.2baseurl = //ip-172-31-8-141.ap-southeast-1.compute.internal/cm5.10.2gpgcheck = 0
6.测试Cloudera Manager的yum源是否配置好
<pre
本文由职坐标整理发布,学习更多的相关知识,请关注职坐标IT知识库!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号