最近把集群升级了,升级同时把官方文档翻译了一下。初始文档整理在pages中,怎么转换过来格式都不太好看,先发图片的吧,格式不太好的文字部分在后面。
----------------------------------------------我是格式不好的文字的分割线-----------------------------------------------------------------------
Cloudera升级
tips:如果是基于小版本的升级(5.4.x到5.8.x等),CDH的软件用parcels方式安装,并且启用了HDFS的HA的话,可以用rolling updrade来进行不停机升级。
- Cloudera Manager升级(以下简称CM)
升级文档地址:
http://www.cloudera.com/documentation/enterprise/latest/topics/cm_ag_ug_cm5.html
升级内容:
- 升级数据库schema,匹配最新版本
- Cloudera Manager Server 和所有支持的服务升级
- Cloudera Manager agent 升级
升级步骤:
- 收集升级信息(有些信息在升级过程中不再可获取,需要提前收集)
- 主机认证信息(各个主机root账号)
- 已存
- 当前CM版本号
- Version: Cloudera Express 5.2.0 (#60 built by jenkins on 20141012-2239 git: 179000584849e68f98ad2a7fe710723bd6c29c98)
- 当前CDH版本号
- CDH 5.0.0, Packages
- cluster启用的服务
- HBase
- HDFS
- Hive
- Hue
- Cloudera Management Service
- Oozie
- Spark
- YARN (MR2 Included)
- ZooKeeper
- cluster用parcels还是packages安装的
- CDH 5.0.0, Packages
- JDK版本
- java version "1.7.0_67"
- 是否打开了Cloudera Navigator的审计
- 5.4.x以下的版本没有?
- 用到的database访问信息
- 已存
- 操作系统版本号
- CentOS release 6.5 (Final)
- cluster是否使用了AES-256加密
- krb_enc_types
- 完成升级之前的部分步骤,包括一些特殊warning提示
- 确认升级后版本的系统需求
- 准备database
- 在关闭涉及database的服务之后,强烈建议备份所有database,Activity Monitor的database的备份是可选的。详细地址:
- http://www.cloudera.com/documentation/enterprise/latest/topics/cm_ag_backup_dbs.html#xd_583c10bfdbd326ba--6eed2fb8-14349d04bee--7e98
- CM的数据库
- Oozie Server的数据库
- Sqoop Server的数据库
- Activity Monitor的数据库
- Reports Manager的数据库
- Hive Metastore Server的数据库
- Sentry Server的数据库
- Cloudera Navigator Audit Server 的数据库
- Cloudera Navigator Metadata Server 的数据库
- 如果升级之后的服务需要新的database的话,提前完成安装和配置这些database的准备。服务和database对应关系:
- 修改database支持UTF-8
- 修改database来支持合适的最大连接数(对于mysql来说最好是=100*database数量+50)
- 在关闭涉及database的服务之后,强烈建议备份所有database,Activity Monitor的database的备份是可选的。详细地址:
- 如果从5.4.x升级到5.5或者以上版本时候,需要做以下操作来辅助Cloudera Navigator的升级:
- 停止Navigator Metadata Server角色
- 备份Navigator Metadata Server的存储目录
- 确保Navigator Metadata Server拥有充足的内存来完成升级
- 一些需要注意的:
- Cloudera Management Service TLS/SSL configuration
- Navigator
- JDK upgrade
- 如果安装了Kafka 1.2,并且从CM5.4或更低版本升级上来的话,需要删除Kafka CSD(操作步骤见原文档)
- 在所有cluster hosts上升级JDK版本(如果需要的话)
- 为CM创建一个Package Repository
- 创建一个临时或者永久的远程资料库,将文件下载进去:
- http://archive.cloudera.com/cm5/repo-as-tarball/5.8.2/cm5.8.2-centos6.tar.gz
- 修改本地客户端yum源地址来访问该资料库
- 升级CM相关组件
- Cloudera Navigator 的升级(如果装了的话)
- 升级CM Server
- 停止CM上所有的service,包括HDFS
- 停止CM Server,Database和Agent
- 停止所有正在运行的commands(TODO)
- http://www.cloudera.com/documentation/enterprise/latest/topics/cm_dg_view_running_recent_commands.html#cmug_topic_4_7
- 停止server
- sudo service cloudera-scm-server stop
- 停止db(使用内嵌的PostgreSQL时需要)
- sudo service cloudera-scm-server-db stop
- 停止agent
- sudo service cloudera-scm-agent stop
- JDK1.6需要升级到1.7以上
- 用配置的yum源升级CM
- sudo yum clean all
- sudo yum upgrade cloudera-manager-server cloudera-manager-daemons cloudera-manager-agent
- 如果配置了/etc/cloudera-scm-agent/config.ini这个文件,原文件被添加了后缀,需要重新merge一下。
- 验证下当前CM安装版本是否匹配,$ rpm -qa ‘cloudera-manager-*':
- cloudera-manager-repository-5.8-1.noarch
- cloudera-manager-server-5.8.0-0.cm580.p0.41.el6.x86_64
- cloudera-manager-agent-5.8.0-0.cm580.p0.41.el6.x86_64
- cloudera-manager-daemons-5.8.0-0.cm580.p0.41.el6.x86_64
- 开启服务
- sudo service cloudera-scm-server-db start
- sudo service cloudera-scm-server start
- 登陆CM Admin命令行
- 手动或者通过CM来升级集群上各个机器的CM Agent
- 略
- 略
- 略
- 略
- 向导完成,进入CM首页
- 其他服务重新start
- 升级JDK的话需要操作的步骤
- 略
- 验证和测试升级结果
- 用 Inspect Hosts in Cluster 来检测
- 升级相关的Cloudera Navigator组件
- 升级CDHCDH升级(如果之前大版本是CDH5,不论之前是用parcels还是packages安装的,CDH都建议升级时使用parcels)
- 升级之前
- 阅读CDH 5版本日志
- 阅读CM 5的版本日志
- 确保JDK1.7或1.8已安装
- 如果使用了kafka,需要:
- 确保CM的minor version等于或者大于CDH的minor version
- CM 5.0.X —》CDH 5.0.5
- CM 5.1.X —》CDH 5.1.4
- 从CDH5.2开始(Hive version 13),Hive支持日期格式的分区列。如果从老版本升级上来的数据在日期格式的分区列中存在错误数据的话,则升级后该条数据既不能被使用也不能被丢弃,为避免此类情况,请做如下操作:
- Fix any invalid dates before you upgrade. Hive expects dates in partition columns to be in the form YYYY-MM-DD.
- Store dates in partition columns as strings or integers.
- 可使用查询SQL查找是否有此类DDL:
- http://www.cloudera.com/documentation/enterprise/latest/topics/install_upgrade_to_cdh58.html#xd_583c10bfdbd326ba-590cb1d1-149e9ca9886--7a4e
- 若升级Impala时,略
- 运行 Host Inspector,修复所有问题
- 如果用了security,则运行Security Inspector
- Run hdfs fsck / and hdfs dfsadmin -report and fix every issue.
- Run hbase hbck.
- 略
- 为避免一些提醒,可在升级期间开启maintenance mode
- Hue应用CA验证和需要一个受信的存储,为Hue配置TLS/SSL:
- 升级不由CDH管理的组件
- 停止集群各个服务
- 备份NameNode上的HDFS Metadata
- HDFS的配置页面查找NameNode Data Directories配置项的值
- 如果多于一个目录,则每个目录创建一个备份
# cd /data/dfs/nn
# tar -cvf /root/nn_backup_data.tar .
- 备份Hive的Metadata Database
- 如果之前升级CM的时候没备份的话
- 升级CM管理的组件
- 之前配置的yum源,yum update
- 重启agent来更新版本链接
- service cloudera-scm-agent restart
- 运行CM升级向导
- http://www.cloudera.com/documentation/enterprise/latest/topics/install_upgrade_to_cdh58_packages.html#xd_583c10bfdbd326ba-590cb1d1-149e9ca9886--7a4c__section_acf_1cx_jq
- 手工处理升级失败的步骤
- 最终化HDFS的Metadata的升级
- 升级向导的操作
- 升级HDFS Metadata
- 升级Hive Metadata Database
- 升级Oozie ShareLib
- 升级Sqoop
- 升级Sentry Database
- 升级Spark
- 开启集群所有服务直到全部健康成功start
- Deploy Client Configuration
升级完成