最近在学习cdh6的官方文档,网上也比较难找到中文的文档。
其实官方英文文档的阅读难度其实并不是很高,所以在这里在学习官方文档的过程中,把它翻译成中文,在翻译的过程中加深学习了解,并分享出来和大家一起学习。
中文内容是本人的渣渣英文水平结合有道词典,谷歌翻译的结果,文中部分词语可能翻译的并不准确,希望大家多多提出意见,共同进步。
cdh6的官方中文文档系列长期更新,最后目标整理成gitbook,同大家交流学习。
最后,如果你觉得本文对你有用,希望点个赞给作者一点鼓励哈。
与其感慨路难行不如马上上路,诸位道友,共同学习,加油!-------天南第一剑修
以下主题来自Cloudera企业升级指南,提供了使用Cloudera Manager升级Cloudera Manager和CDH的概述和完整流程:
将Cloudera企业CDH升级为更高版本的CDH和CDP数据中心。
在开始升级之前,请查看支持升级路径列表,以确保您计划的升级得到支持。在所有版本的Cloudera管理器、CDH或运行时之间不支持升级。请参阅支持的升级路径。
升级包括两个主要步骤:升级Cloudera Manager和升级集群。您不需要同时升级Cloudera管理器和集群,但是Cloudera管理器和集群的版本必须兼容。Cloudera管理器的主+次级版本必须等于或高于CDH或Cloudera运行时的主+次级版本。
这个在线版本的Cloudera升级指南允许您创建一个定制版本的指南,其中只包含升级所需的步骤。使用本指南页面顶部的表格选择用于升级的Cloudera管理器、CDH或Cloudera运行时版本,以及操作系统版本、数据库类型和其他有关升级的信息。做出这些选择之后,指南中的页面将只包括升级所需的步骤。您输入的信息将保留在指南的每一页上
从Cloudera Manager和CDH升级到CDP数据中心包括以下高级步骤:
请参阅本指南中的主题来计划和执行升级。
计划一个足够的维护窗口来执行升级。根据要升级的组件、集群中的主机数量和硬件类型,可能需要一整天的时间来升级集群。在开始升级之前,需要收集一些信息;这些步骤在Cloudera管理器和CDH升级过程中也有详细说明。
在升级之前,请参考Cloudera Manager和CDH的发布说明,了解API的变化、废弃特性、新特性和不兼容的变化。
参见:
也检查以下页面,以确保您正在使用一个支持的操作系统,JDK,数据库,和其他组件:
重要通知:
Cloudera建议在升级生产集群之前先在非生产集群上测试升级。
有三种类型的升级:major, minor, and maintenance
小版本升级将您的软件升级到主版本的高级次要版本(例如从版本6.0.0升级到版本6.1.0),通常包括以下内容:
在小版本升级中通常不会引入不兼容的更改或对数据格式的更改。
维护升级修复关键错误或解决安全问题。没有引入新的功能或不兼容的更改。例如,当从版本6.0.0升级到6.0.1时,维护版本的版本号仅在第三位数字上有所不同。
要升级到维护版本,您只需要执行次要版本升级步骤的一个子集。遵循与小版本升级相同的步骤,但跳过标记如下的步骤:
最小所需角色:集群管理员(也由完整管理员提供)当使用Cloudera Manager管理数据Hub集群时,该特性不可用。
本主题描述了如何从任意5.x或6.x版本的CM升级到更高版本的Cloudera Manager5.x, 6.x或7.1或更高版本,包括主要、次要和维护版本。升级过程使用操作系统命令行包命令升级Cloudera Manager,然后使用Cloudera Manager完成升级。
升级Cloudera Manager时,使用基于rpm的包命令升级Cloudera Manager服务器主机上的软件,然后Cloudera Manager管理升级剩余托管主机上的Cloudera Manager代理。Cloudera管理器还可以在托管主机上自动安装所需JDK的某些版本。对于CDH集群,当您升级Cloudera管理器时,也会升级Cloudera Manager。
在所有版本的CM、CDH或Cloudera Runtime之间不支持所有的升级。请参阅支持的升级路径
当你升级CM5.x或6.x时,Navigator 也会升级。在Cloudera Runtime7.0.3时,ClouderaNavigator 已经被Apache Atlas取代。如果您使用Cloudera Manager 7.0.3或更高版本来管理CDH集群,这些集群可以继续使用Cloudera Navigator 。
如果你从Cloudera Manager 5.x升级到更高版本的Cloudera Manager 5.x。你也可以使用tarballs来升级Cloudera Manager。有关升级到最新版本的Cloudera Manager 5.x的过程,请参阅使用tar包升级Cloudera Manager 5.x。(单击其他版本以找到早期版本的文档。)
升级Cloudera管理器不会升级CDH/Cloudera Runtime集群。有关升级过程,请参阅升级集群。
当您升级Cloudera Manager时,会自动升级Cloudera导航器元数据和审计服务器。您还可以选择升级其他Cloudera导航器组件,如Cloudera导航器密钥托管服务器、Cloudera导航器密钥HSM和Cloudera导航器加密。您不需要将这些组件与Cloudera Manager或CDH升级一起升级。有关兼容性信息,参见:Cloudera Navigator加密的产品兼容性矩阵(Cloudera Manager 6.x)或Cloudera Navigator加密的产品兼容性矩阵(Cloudera Manager 5.x)。
参见升级Cloudera Navigator数据加密。
在升级Cloudera Manager之前,您需要收集一些信息,并查看其限制和发布说明。填写下面的My Environment表格来定制您的Cloudera管理器升级过程。在查找所需信息方面,请参阅下面的收集信息部分。
选择的环境:
https://docs.cloudera.com/cdp/latest/upgrade-cdh/topics/ug_cm_upgrade_before.html?cdoc-os=redhat%207&cdoc-db=mysql&cdoc-product=none&cdoc-cm-from=6.2.0&cdoc-cm-dest=6.2.1
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XEM2IaBl-1592977491367)(C:\Users\liucz\Desktop!文档\2Linux环境\CDH官方文档\cdh_pic\upgrade_version.jpg)]
要与他人共享此环境,请单击我的环境旁边的图标,将特定于此环境的链接复制到剪贴板。
登录到Cloudera Manager服务器主机
收集以下关于您的环境的信息,并填写上面的表格。您的浏览器将在本升级指南的所有页面上记住这些信息。
a. 操作系统的当前版本
lsb_release -a
Database 参数:
cat /etc/cloudera-scm-server/db.properties
...
com.cloudera.cmf.db.type=mysql
com.cloudera.cmf.db.host=database_hostname:database_port
com.cloudera.cmf.db.name=scm
com.cloudera.cmf.db.user=scm
com.cloudera.cmf.db.password=SOME_PASSWORD
b. 登录到Cloudera Manager管理控制台并找到以下内容
集群中使用的CM 版本。去支持>关于。
部署在集群中的JDK版本。去支持>关于。
您必须使用SSH访问Cloudera Manager服务器主机,并能够使用根帐户或对所有主机具有无密码sudo权限的帐户登录。
升级到Cloudera Manager 6.x时查看以下内容:
在升级Cloudera管理器之前,您应该已经升级到支持的操作系统。参见升级操作系统。
在所有主机上安装Java Development Kit (JDK)的支持版本。如果你升级到Cloudera Manager和CDH版本6.1或更高,你可以选择安装OpenJDK 1.8而不是Oracle JDK。
JDK安装有两种选择:
参见
查看发布说明
检查一下Cloudera的安全公告。
使用tarball升级Cloudera Manager只支持升级到5.x,现在已被弃用。
本主题包含备份Cloudera Manager的过程。Cloudera建议您在升级之前执行这些备份步骤。备份将允许您在需要时回滚您的Cloudera管理器升级。
选择的环境:
CM 6.2.0-6.2.1
1. 登录到Cloudera Manager服务器主机
2. 通过运行以下命令收集数据库信息
cat /etc/cloudera-scm-server/db.properties
举例
...
com.cloudera.cmf.db.type=...
com.cloudera.cmf.db.host=database_hostname:database_port
com.cloudera.cmf.db.name=scm
com.cloudera.cmf.db.user=scm
com.cloudera.cmf.db.password=SOME_PASSWORD
收集以下数据库的信息(主机名、端口号、数据库名、用户名和密码)。
您可以使用Cloudera Manager管理控制台找到数据库信息。转到集群> Cloudera管理服务>配置,并选择数据库类别。您可能需要联系数据库管理员以获得密码。
查找运行服务监视器、主机监视器和事件服务器角色的主机。转到集群> Cloudera Manager管理服务>实例,注意哪些主机正在运行这些角色。
请注意
下面提供了用于备份Cloudera Manager代理使用的各种文件和目录的命令。如果您已经为其中任何一个配置了自定义路径,请在命令中替换这些路径。这些命令还提供了存储备份的目标路径,该路径由环境变量CM_BACKUP_DIR定义,所有备份命令都使用该环境变量。您可以根据部署需要在命令中更改这些目标路径。
下面步骤中的tar命令可能返回以下消息。忽略这个信息是安全的:
tar: Removing leading `/' from member names
在所有主机上备份以下Cloudera Manager代理文件:
创建一个顶级备份目录
export CM_BACKUP_DIR="`date +%F`-CM6.2.0"
echo $CM_BACKUP_DIR
mkdir -p $CM_BACKUP_DIR
备份代理目录和运行时状态。
sudo -E tar -cf $CM_BACKUP_DIR/cloudera-scm-agent.tar --exclude=*.sock /etc/cloudera-scm-agent /etc/default/cloudera-scm-agent /var/run/cloudera-scm-agent /var/lib/cloudera-scm-agent
备份现有的存储库目录。
sudo -E tar -cf $CM_BACKUP_DIR/repository.tar /etc/yum.repos.d
注意
下面提供了用于备份Cloudera Manager代理使用的各种文件和目录的命令。如果您已经为其中任何一个配置了自定义路径,请在命令中替换这些路径。命令还提供了存储备份的目标路径。您可以根据部署需要在命令中更改这些目标路径。
sudo cp -rp /var/lib/cloudera-service-monitor /var/lib/cloudera-service-monitor-`date +%F`-CM6.2.0
sudo cp -rp /var/lib/cloudera-host-monitor /var/lib/cloudera-host-monitor-`date +%F`-CM6.2.0
sudo cp -rp /var/lib/cloudera-scm-eventserver /var/lib/cloudera-scm-eventserver-`date +%F`-CM6.2.0
sudo systemctl stop cloudera-scm-server
mysqldump --databases database_name --host=database_hostname --port=database_port -u user_name -p > $HOME/database_name-backup-`date +%F`-CM6.2.0.sql
请注意
如果db。属性文件不包含端口号,请忽略上面命令中的端口号参数。
有关备份数据库的详细信息,请参见备份数据库。
备份所有其他Cloudera Manager数据库——使用在上一步中收集的数据库信息。您可能需要联系数据库管理员以获得密码。
这些数据库可包括下列资料:
Cloudera Manager服务器——包含您配置的服务的所有信息,以及它们的角色分配、所有配置历史、命令、用户和正在运行的进程。这个相对较小的数据库(< 100 MB)是最需要备份的。
Oozie服务器——包含Oozie工作流、协调器和捆绑数据。可以增长到很大。(仅在安装cdh5或cdh6集群时可用。)
Sqoop服务器——包含连接器、驱动程序、链接和作业等实体。相对较小。(仅在安装cdh5或cdh6集群时可用。)
报告管理器-随时间跟踪磁盘利用率和处理活动。中型。
Hive元数据服务器-包含Hive元数据。相对较小。
Hue服务器-包含用户帐户信息,工作提交,和Hive查询。相对较小。
Sentry 服务器-包含授权元数据。相对较小。
Cloudera Navigator审计服务器-包含审计信息。在大型集群中,这个数据库可以增长到很大。(仅在安装cdh5或cdh6集群时可用。)
Cloudera Navigator元数据服务器——包含授权、策略和审计报告元数据。相对较小。(仅在安装cdh5或cdh6集群时可用。)
重要的
当您重新启动进程时,每个服务的配置将使用保存在Cloudera Manager数据库中的信息重新部署。如果此信息不可用,则集群无法正确启动或运行。您必须计划和维护对Cloudera Manager数据库的定期备份,以便在数据库丢失时恢复集群。
运行以下命令备份数据库。(下面显示的命令取决于您在此页顶部的表单中选择的数据库。用实际值替换占位符。)
mysqldump --databases database_name --host=database_hostname --port=database_port -u database_username -p > $HOME/database_name-backup-`date +%F`-CM6.2.0.sql
请注意
下面提供了用于备份Cloudera Manager代理使用的各种文件和目录的命令。如果您已经为其中任何一个配置了自定义路径,请在命令中替换这些路径。这些命令还提供了存储备份的目标路径,该路径由环境变量CM_BACKUP_DIR定义,所有备份命令都使用该环境变量。您可以根据部署需要在命令中更改这些目标路径。
下面步骤中的
tar
命令可能返回以下消息。忽略这个信息是安全的:tar: Removing leading `/' from member names
登录到Cloudera Manager服务器主机。
创建一个顶级备份目录。
export CM_BACKUP_DIR="`date +%F`-CM6.2.0"
echo $CM_BACKUP_DIR
mkdir -p $CM_BACKUP_DIR
备份Cloudera Manager Server目录:
sudo -E tar -cf $CM_BACKUP_DIR/cloudera-scm-server.tar /etc/cloudera-scm-server /etc/default/cloudera-scm-server
备份现有的存储库目录
sudo -E tar -cf $CM_BACKUP_DIR/repository.tar /etc/yum.repos.d
启动Cloudera Manager Server & Cloudera Management Service
如果您将立即升级Cloudera Manager,请跳过这一步,继续升级Cloudera Manager Server。
登录到Cloudera Manager服务器主机。
启动Cloudera Manager Server。
sudo systemctl start cloudera-scm-server
如果Cloudera管理器服务器在没有错误的情况下启动,则不会显示响应。
Cloudera建议您定期备份Cloudera Manager用于存储配置、监控和报告数据的数据库,以及需要数据库的托管服务:
要备份PostgreSQL数据库,无论数据库是内嵌还是外嵌,都要使用相同的过程:
登录安装Cloudera Manager服务器的主机。
从/etc/ cloudera -scm-server/db.properties
获取Cloudera管理器数据库的名称、用户和密码属性:
com.cloudera.cmf.db.name=scm
com.cloudera.cmf.db.user=scm
com.cloudera.cmf.db.password=NnYfWIjlbk
使用来自前一步的参数以root身份运行以下命令:
# pg_dump -h hostname -p 7432 -U scm > /tmp/scm_server_db_backup.$(date +%Y%m%d)
从步骤2中的com.cloudera.cmf.db.password
属性输入密码。。
备份为本地主机上的角色作为roleuser用户创建的数据库
# pg_dump -h hostname -p 7432 -U roleuser > /tmp/roledb
要备份MariaDB数据库,在MariaDB主机上运行mysqldump命令,如下所示:
mysqldump -hhostname -uusername -ppassword database > /tmp/database-backup.sql
例如,备份为Cloudera软件创建数据库时创建的活动监控数据库amon,在本地主机上作为根用户,密码为amon_password:
mysqldump -pamon_password amon > /tmp/amon-backup.sql
为了备份远程主机myhost.example.com
上的示例活动监视器数据库amon作为root用户,密码为amon_password:
mysqldump -hmyhost.example.com -uroot -pamon_password amon > /tmp/amon-backup.sql
备份MySQL数据库
为了备份MySQL数据库,在MySQL主机上运行mysqldump命令,如下所示:
mysqldump -hhostname -uusername -ppassword database > /tmp/database-backup.sql
例如,备份为Cloudera软件创建数据库时创建的活动监控数据库amon,在本地主机上作为根用户,密码为amon_password:
mysqldump -pamon_password amon > /tmp/amon-backup.sql
为了备份远程主机myhost.example.com上的示例活动监视器数据库amon作为根用户,密码为amon_password:
mysqldump -hmyhost.example.com -uroot -pamon_password amon > /tmp/amon-backup.sql
您可以备份所有数据库使用以下命令:
mysqldump --all-databases -ppassword > /tmp/all1/all.sql
对于Oracle,与数据库管理员一起确保数据库得到了正确的备份。
使用以下链接访问厂商关于备份和恢复数据库的文档。
本主题提供了备份Cloudera Manager服务器的过程。
**最小所需角色:集群管理员(也由完整管理员提供)**在使用Cloudera管理器管理数据中心集群时,他的特性是不可用的。
RedHat/CentOS7
MySQL
6.2.0-6.2.1
重要的
Cloudera Manager或CDH 6.3.3或更高版本的升级和安装过程已经改变。请注意以下内容:
- 下载和安装该软件需要一个有效的Cloudera企业许可证文件以及用户名和密码。您可以从Cloudera CDH下载页面获得用户名和密码。查看您的许可证文件必须是当前上传到Cloudera管理器。
- 上传许可证:
- 下载许可文件并将其保存在本地。
- 在Cloudera管理器中,进入主页。
- 选择Administration > License。
- 点击上传许可证。
- 浏览到下载的许可文件。
- 点击上传。
- 你目前使用的是Cloudera试用许可证,你不能升级到Cloudera Manager或CDH 6.3.3或更高版本。
- 如果您正在使用Cloudera Express,您不能升级Cloudera Manager或CDH。
- 过程中的几个步骤已经更改,现在需要输入用户名和密码。
- 下载url已经改变。
重要提示
如果遇到问题,请参阅以下内容:
- 解决Cloudera管理器升级问题
- 恢复失败的Cloudera管理器升级
Cloudera管理器需要访问包含更新的软件包的软件包存储库。你可以选择直接访问Cloudera公共存储库,也可以下载这些存储库,然后在本地设置一个存储库,以便在网络中访问。如果集群主机没有Internet连接,则必须设置本地存储库。
登录到Cloudera Manager服务器主机。
登录到Cloudera Manager服务器主机。
sudo rm /etc/yum.repos.d/clouderamanager.repo
```
把这张表格填在这页的顶部。
创建一个存储库文件,以便包管理器能够定位和下载二进制文件。根据您是否使用本地包存储库,执行以下操作之一:
提示
如果您使用的是混合操作系统环境,请针对每个操作系统调整页面顶部的操作系统过滤器。指南将在这里为您自动生成回购文件。
创建一个名为/etc/ cloud -manager.repo的文件。repo内容如下:
[cloudera-manager]
# Packages for Cloudera Manager
name=Cloudera Manager
baseurl=https://archive.cloudera.com/cm6/6.2.1/redhat7/yum/
gpgkey=https://archive.cloudera.com/cm6/6.2.1/redhat7/yum/RPM-GPG-KEY-cloudera
gpgcheck=1
升级Cloudera管理器会引入新的包依赖关系。您的组织可能对新软件包的安装有限制,或者需要事先获得批准。您可以确定哪些包可以安装或升级:
yum deplist cloudera-manager-agent
所有由Cloudera Manager 6.0.0或更高版本管理的集群主机都需要使用Oracle JDK 1.8。如果你的Cloudera管理器版本支持它,你还可以安装OpenJDK 1.8或OpenJDK 11。请参阅手动安装OpenJDK。如果您的主机上已经安装了JDK 1.8,则跳过本节中的步骤。
如果您升级到Cloudera Manager 6.0.0或更高版本,您可以在Cloudera Manager服务器主机上手动安装JDK 8,然后,作为Cloudera Manager升级过程的一部分,您可以指定Cloudera Manager在其余主机上升级JDK。
登录到Cloudera Manager服务器主机。
Stop the Cloudera Manager Server
sudo systemctl stop cloudera-scm-server
移除JDK:
在Cloudera管理器管理的所有主机上执行以下步骤
运行以下命令删除JDK,使用步骤1中的包名:(如果不删除这些文件,Cloudera Manager和其他组件可能继续使用旧版本的JDK)。
yum remove <JDK package name>
确认包裹已被移除:
安装OpenJDK
OpenJDK 8
sudo yum install java-1.8.0-openjdk-devel
Start the Cloudera Manager Server
sudo systemctl start cloudera-scm-server
如果Cloudera管理器服务器在没有错误的情况下启动,则不会显示响应。
登录到Cloudera Manager管理控制台。
停止Cloudera Cloudera Management Service。
重要提示
此时不停止Cloudera管理服务可能会导致管理角色崩溃,或者Cloudera管理器服务器可能无法重启。
确保您已经禁用了任何计划的复制或快照作业,并等待来自Cloudera Manager管理控制台的所有运行命令完成后再继续升级。
重要提示
如果在停止Cloudera Manager服务器时有复制作业、快照作业或其他命令在运行,那么在升级后Cloudera Manager服务器可能无法启动。
如果您有任何复制到云目的地的Hive复制计划,请在继续升级之前删除这些复制集群。您可以在完成Cloudera Manager升级之后重新创建这些复制计划。
登录到Cloudera Manager服务器主机。
Stop the Cloudera Manager Server
sudo systemctl stop cloudera-scm-server
Stop the Cloudera Manager Agent
sudo systemctl stop cloudera-scm-agent
升级包
sudo yum clean all
sudo yum upgrade cloudera-manager-server cloudera-manager-daemons cloudera-manager-agent
您可能会被提示您的配置文件版本:
Configuration file '/etc/cloudera-scm-agent/config.ini'
==> Modified (by you or by a script) since installation.
==> Package distributor has shipped an updated version.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions
Z : start a shell to examine the situation
The default action is to keep your current version.
您可能会收到/etc/cloudera-scm-server/db.properties
的类似提示。对两个提示都回答N。
系统可能会提示您接受GPG密钥。回答y。
Retrieving key from https://archive.cloudera.com/.../cm/RPM-GPG-KEY-cloudera
Importing GPG key ...
Userid : "Yum Maintainer "
Fingerprint: ...
From : https://archive.cloudera.com/.../RPM-GPG-KEY-cloudera
请注意
如果你在运行这些命令时收到以下错误信息:[Errno 14] HTTP error 404 - Not Found,确保URL在cloudera-manager中。repo文件是正确的,可以从Cloudera Manager服务器主机访问。
如果定制了/etc/cloudera-scm-agent/config.ini
文件,那么定制的文件将被重命名为扩展名为.rpmsave
或.dpkg-old
。将所有定制合并到包管理器安装的/etc/cloudera-scm-agent/config.ini
文件中。
验证是否安装了正确的包。
rpm -qa 'cloudera-manager-*'
cloudera-manager-server-6.2.1-..cm...
cloudera-manager-agent-6.2.1-..cm...
cloudera-manager-daemons-6.2.1-..cm...
Start the Cloudera Manager Agent.
sudo systemctl start cloudera-scm-agent
如果代理启动时没有错误,则不会显示响应。
Start the Cloudera Manager Server.
sudo systemctl start cloudera-scm-server
使用网络浏览器打开Cloudera管理控制台使用以下URL:
http://cloudera_Manager_server_hostname:7180/cmf/upgrade
Cloudera Manager服务器启动可能需要几分钟时间,并且在服务器启动完成并显示升级Cloudera Manager页面之前,Cloudera Manager管理控制台不可用。在下一页继续执行升级Cloudera Manager代理的步骤。
注意;
如果您在启动服务器或代理时遇到问题,例如数据库权限问题,您可以使用日志文件来排除问题:
服务器日志:
Server log:
tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log
Agent log:
tail -f /var/log/cloudera-scm-agent/cloudera-scm-agent.log
or
tail -f /var/log/messages
要完成Cloudera Manager升级,请继续升级Cloudera Manager代理。
**最小所需角色:集群管理员(也由完整管理员提供)**当使用Cloudera Manager管理数据Hub集群时,该特性不可用。
您可以使用下面两种选项中的一种来升级代理。
请注意
如果Cloudera管理器在此过程中显示类似如下的错误信息,你可能有一个旧版本的JDK,这是在干扰升级:
ls: cannot access '/etc/zypp/repos.d/cloudera-manager.repo.*': No such file or directory repository file /etc/zypp/repos.d/cloudera-manager.repo removed
升级前删除旧JDK将允许Cloudera管理器完成升级。
如果您在Cloudera Manager服务器主机上升级软件包后,升级Cloudera Manager页面没有显示,请在您的web浏览器中打开以下URL:
https://my_cloudera_manager_server_host:port/cmf/upgrade
代理升级的状态显示在一个或多个组中。因为您可能只升级了Cloudera Manager服务器主机上的Cloudera Manager代理,所以第一组显示该主机有一个升级的代理。如果由Cloudera Manager管理的主机具有不同的操作系统,则每个操作系统的组显示这些主机的代理升级状态。
按照升级页面上的说明升级所有代理。
启动Cloudera Manager管理服务。
如果有不止一组主机需要代理升级,请从标签为Upgrade Cloudera Manager代理包运行在:上的下拉列表中选择该组。如果只有一个组需要升级,则不会出现此下拉列表。
在Cloudera Manager 5.15或更高版本中,即使代理运行在不同的操作系统或版本上,Cloudera Manager也可以对代理进行升级(每次升级一个操作系统组)。
单击Upgrade Cloudera Manager代理包
升级Cloudera经理代理包页面显示。
如果您使用的是本地包存储库而不是https://archive.cloudera.com上的公共存储库,请选择定制存储库选项并输入定制存储库URL
单击继续
将显示接受JDK许可页面。
选择JDK屏幕显示集群中使用的JDK的可用选项。选择以下选项之一安装JDK:
如果您想在所有主机上安装JDK 8,请选择install Oracle Java SE Development Kit。
单击继续。将显示输入登录凭据页面。
指定凭据和初始化代理安装:
点击继续
Cloudera管理器代理包和JDK(如果选择的话)将被安装。
安装完成后,单击完成。
升级Cloudera管理器页面显示升级的状态。
如果还有其他主机组需要代理升级,请从正在运行的Upgrade Cloudera Manager代理包:下拉列表中选择下一组主机,并重复代理安装步骤。
单击“运行主机检查器”以运行主机检查器。检查输出并纠正任何警告。如果出现问题,您可以进行更改,然后重新运行检查器。
当您对检查结果感到满意时,单击启动Cloudera管理服务。
单击页面底部的链接返回主页。
单击完成。
Cloudera Manager主页将打开并显示集群的状态。所有服务显示其当前状态可能需要几分钟时间。您可能需要重新启动一些服务或重新部署陈旧的客户端配置。
在Cloudera管理器管理的所有主机上执行以下命令:
(还可以使用csshX、pdsh或pssh等实用工具将同一组命令复用到所有主机。)
使用ssh登录到每个主机。例如:
ssh host1.example.com
删除现有存储库目录中的任何旧文件:
sudo rm /etc/yum.repos.d/cloudera*manager.repo*
创建一个存储库文件,以便包管理器能够定位和下载二进制文件。根据您是否使用本地包存储库,执行以下操作之一:
提示
如果您使用的是混合操作系统环境,请针对每个操作系统调整页面顶部的操作系统过滤器。指南将在这里为您自动生成repo文件。
Stop the Cloudera Manager Agent.
sudo systemctl stop cloudera-scm-agent
Oracle JDK 1.8
sudo yum install oracle-j2sdk1.8.x86_64
Upgrade the agent packages.
sudo yum clean all
sudo yum repolist
sudo yum upgrade cloudera-manager-daemons cloudera-manager-agent
您可能会被提示您的配置文件版本:
Configuration file '/etc/cloudera-scm-agent/config.ini'
==> Modified (by you or by a script) since installation.
==> Package distributor has shipped an updated version.
What would you like to do about it ? Your options are:
Y or I : install the package maintainer's version
N or O : keep your currently-installed version
D : show the differences between the versions
Z : start a shell to examine the situation
The default action is to keep your current version.
您可能会收到/etc/cloudera-scm-server/db.properties的类似提示。对两个提示都回答N。
如果定制了/etc/cloudera-scm-agent/config.ini
文件,那么定制的文件将被重命名为扩展名为.rpmsave
或.dpkg-old
。将所有定制合并到包管理器安装的/etc/cloudera-scm-agent/config.ini
文件中。
验证是否安装了正确的包。
rpm -qa 'cloudera-manager-*'
cloudera-manager-agent-6.2.1-..cm...
cloudera-manager-daemons-6.2.1-..cm...
Start the Cloudera Manager Agent
sudo systemctl start cloudera-scm-agent
在Cloudera Manager 5.15或更高版本中,您可以通过https://my_cloudera_manager_server_host:port/cmf/upgrade监控进程。
升级所有代理后,运行主机检查器。
主机检查器将运行以检查托管主机的正确版本和配置。如果出现问题,您可以进行更改,然后重新运行检查器。
Cloudera Manager主页将打开并显示集群的状态。所有服务显示其当前状态可能需要几分钟时间。您可能需要重新启动一些服务或重新部署陈旧的客户端配置。
Restart the Cloudera Manager server
sudo systemctl restart cloudera-scm-server
最小所需角色:集群管理员(也由完整管理员提供)在使用Cloudera管理器管理数据中心集群时,他的特性是不可用的。
升级集群中部署的任何Cloudera Navigator加密组件:
如果您仍在使用密钥托管服务器5.4,并且正在升级到Cloudera Manager 5.10或更高版本,那么您必须将密钥托管服务器升级到更最新的版本。
您可以随时升级其他Cloudera导航器组件。在升级Cloudera Manager或CDH时,您不必执行这些升级。
参见升级Cloudera Navigator数据加密
升级后,Cloudera管理器服务器无法启动。
升级之前,有活动命令在运行。这包括用户可能已经运行的命令,以及Cloudera Manager自动触发的命令,这些命令可以用于响应状态更改,也可以用于配置为按计划运行的任务,如备份和灾难恢复复制或快照作业。
最低要求角色:完全管理员。当使用Cloudera Manager管理数据Hub集群时,该特性不可用。
在升级Cloudera Manager软件后,第一次登录到Cloudera Manager服务器时,会运行升级向导。如果您当时没有完成向导,或者您的主机当时不可用,仍然需要升级,您可以重新运行升级向导:
单机主机选项卡。
单击“重新运行升级向导”或查看升级状态。这将带您回到安装向导,根据需要升级主机上的Cloudera Manager代理。
选择要安装的Cloudera Manager代理的版本。通常,这是这个Cloudera Manager服务器的匹配版本。但是,如果您为Cloudera Manager服务器使用自定义存储库(而不是archive.cloudera.com),请选择自定义存储库并提供所需的信息。自定义存储库允许使用替代位置,但该位置必须包含匹配的代理版本。
指定凭据和初始化代理安装:
为root帐户选择root,或者选择另一个用户并为具有无密码sudo特权的帐户输入用户名。
选择身份验证方法:
如果选择密码身份验证,请输入并确认密码。
如果选择公钥身份验证,请提供所需密钥文件的口令和路径。
如果需要,可以修改默认的SSH端口。
指定一次运行的主机安装的最大数量。默认和推荐的值是10。
您可以根据您的网络容量进行调整。
单击Continue。
当您单击Continue时,Cloudera Manager代理将在所有当前管理的主机上升级。您不能通过此过程搜索新的主机。若要向集群添加主机,请单击“将新主机添加到集群”按钮。
最小所需角色:集群管理员(也由完整管理员提供)当使用Cloudera Manager管理数据Hub集群时,该特性不可用。
本主题描述如何重新安装您以前使用的相同版本的Cloudera Manager,以便您的Cloudera Manager代理的版本与服务器匹配。下面的步骤假设Cloudera Manager服务器已经停止(因为它在尝试升级后无法启动)。
重要的
下面的说明假设一次Cloudera Manager升级失败,升级后的服务器从未启动,因此升级过程的其余步骤没有执行。下面的步骤不足以从运行中的Cloudera Manager部署进行恢复。
登录到Cloudera Manager服务器主机。
停止Cloudera管理器服务器。
sudo systemctl stop cloudera-scm-server
停止Cloudera经理代理。
sudo systemctl stop cloudera-scm-agent
如果您的Cloudera Manager升级失败,您需要确定升级过程是否成功完成了对Cloudera Manager数据库模式的更新。如果模式更新已经开始,您必须使用在开始升级之前所做的备份来恢复Cloudera Manager数据库。
要确定模式是否已更新,请检查Cloudera Manager服务器日志,并查找类似于以下消息的消息:将模式版本更新到60000。(版本号可能与您的环境不同。)
运行以下命令来查找日志条目(如果日志文件在不同的位置,替换正确的路径):
grep 'Updated Schema Version to ' /var/log/cloudera-scm-server/closhelludera-scm-server.log
如果需要,恢复数据库
恢复数据库的过程取决于Cloudera管理器使用的数据库类型。
Cloudera管理器需要访问包含更新的软件包的软件包存储库。你可以选择直接访问Cloudera公共存储库,也可以下载这些存储库,然后在本地设置一个存储库,以便在网络中访问。如果集群主机没有Internet连接,则必须设置本地存储库。
登录到Cloudera Manager服务器主机。
删除现有存储库目录中的任何旧文件:
sudo rm /etc/yum.repos.d/cloudera*manager。
请填写这一页顶部的表格。
创建一个存储库文件,以便包管理器能够定位和下载二进制文件。根据是否使用本地包存储库,执行以下操作之一:
提示
如果您使用的是混合操作系统环境,请针对每个操作系统调整页面顶部的操作系统过滤器。指南将在这里为您自动生成repo文件。
创建一个名为/etc/yum.repos.d/cloudera-manager.repo的文件。内容如下:
[cloudera-manager]
# Packages for Cloudera Manager
name=Cloudera Manager
baseurl=https://archive.cloudera.com/cm6/6.2.1/redhat7/yum/
gpgkey=https://archive.cloudera.com/cm6/6.2.1/redhat7/yum/RPM-GPG-KEY-cloudera
gpgcheck=1
升级Cloudera管理器会引入新的包依赖关系。您的组织可能对新软件包的安装有限制,或者需要事先获得批准。您可以确定哪些包可以安装或升级:
yum deplist cloudera-manager-agent
请注意
在升级之前,确保上面的存储库文件与特定的维护版本匹配。
降级的包
sudo yum clean all
sudo yum repolist
sudo yum downgrade "cloudera-manager-*"
验证是否安装了正确的包。
rpm -qa 'cloudera-manager-*'
cloudera-manager-server-6.2.1-..cm...
cloudera-manager-agent-6.2.1-..cm...
cloudera-manager-daemons-6.2.1-..cm...
运行以下命令提取备份
cd $CM_BACKUP_DIR
tar -xf cloudera-scm-agent.tar
tar -xf cloudera-scm-server.tar
从升级过程中的备份中恢复Cloudera Manager服务器目录:
sudo -E cp -rp $CM_BACKUP_DIR/etc/cloudera-scm-server/* /etc/cloudera-scm-server
sudo -E cp -rp $CM_BACKUP_DIR/etc/default/cloudera-scm-server /etc/default/cloudera-scm-server
如果Cloudera Manager服务器主机安装了代理,则从升级过程中备份的Cloudera Manager代理目录中恢复:
sudo -E cp -rp $CM_BACKUP_DIR/etc/cloudera-scm-agent/* /etc/cloudera-scm-agent
sudo -E cp -rp $CM_BACKUP_DIR/etc/default/cloudera-scm-agent /etc/default/cloudera-scm-agent
sudo -E cp -rp $CM_BACKUP_DIR/var/run/cloudera-scm-agent/* /var/run/cloudera-scm-agent
sudo -E cp -rp $CM_BACKUP_DIR/var/lib/cloudera-scm-agent/* /var/lib/cloudera-scm-agent
Start the Cloudera Manager Agent.
sudo systemctl start cloudera-scm-agent
如果代理启动没有错误,则不会显示响应。
Start the Cloudera Manager Server
sudo systemctl start cloudera-scm-server
如果Cloudera管理器服务器启动没有错误,则不会显示响应。
Start the Cloudera Management Service
注意:
进行故障排除:如果您启动服务器时遇到问题,比如数据库权限问题,您可以使用服务器的日志来排除问题。
vim /var/log/cloudera-scm-server/cloudera-scm-server.log
最小所需角色:集群管理员(也由完整管理员提供)当使用Cloudera Manager管理数据Hub集群时,该特性不可用。
本主题描述如何在以下情况下升级CDH或Cloudera Runtime 集群:
升级集群时,可以使用Cloudera Manager在整个集群中升级集群软件,可以使用Cloudera包裹,也可以使用基于rpm的包命令。基于包的安装不支持Cloudera Runtime 和CDP数据中心升级。在升级到CDP数据中心之前,必须先迁移CDH集群以使用包裹。
集群升级更新Hadoop软件和其他组件。您可以使用Cloudera Manager升级集群,进行主要、次要和维护升级。过程的不同取决于您使用的Cloudera管理器版本和您升级到的CDH或Cloudera运行时版本。
完成准备步骤后,使用Cloudera Manager升级向导完成升级。如果您使用了包裹(推荐)、启用了HDFS高可用性并拥有Cloudera企业许可证,那么您可以执行滚动升级,在升级期间不需要使集群离线。
请注意
升级到CDP数据中心时不支持滚动升级。
有关集群升级步骤,请参见升级集群。
在升级集群之前,需要收集信息、检查限制和发布说明,并对集群运行一些检查。请参阅下面的收集信息部分。填写下面的My Environment表单来定制您的CDH升级过程。
CDH或Cloudera Runtime 的版本,可以根据管理集群的Cloudera管理器的版本升级。您可能需要在升级集群之前升级Cloudera Manager当使用Cloudera Manager 7.0.3时,集群不支持升级。
最小所需角色:集群管理员(也由完整管理员提供)当使用Cloudera Manager管理数据Hub集群时,该特性不可用。
警告
CDH 6.2.0中的Kafka基于Apache Kafka 2.1.0,其中包含对用于存储消费者偏移量的内部模式的更改。由于这个变化,一旦卡夫卡已经升级到CDH 6.2.0或更高,无法降级kafka到一个低于CDH 6.2.0的版本。
收集以下关于您的环境的信息,并填写上面的表格。您的浏览器将在本升级指南的所有页面上记住这些信息。
登录到Cloudera Manager服务器主机。
运行以下命令查找操作系统的当前版本
lsb_release -a
登录到Cloudera Manager管理控制台并找到以下内容:
您必须使用SSH访问Cloudera Manager服务器主机,并能够使用根帐户或对所有主机具有无密码sudo权限的帐户登录。
检查您要升级到的新版本的需求和支持版本。参见:
如果您的主机需要操作系统升级,您必须在升级集群之前执行升级。参见升级操作系统。
确保集群中的所有主机上都安装了受支持的Java版本。参见上面的链接。有关安装说明和建议,请参见升级JDK。
查看以下文档:
升级到Cloudera Manager 6.x时查看以下内容。
Cloudera Enterprise 6的需求和支持的版本
支持的升级路径。
Cloudera安全公告
检查升级过程并预留一个维护窗口,分配足够的时间来执行所有步骤。对于生产集群,Cloudera建议分配一个全天的维护窗口来执行升级,具体取决于主机数量、您对Hadoop和Linux的经验以及您使用的特定硬件。
如果集群使用Impala,请检查SQL中不兼容更改中列出的最新保留字。如果跨多个版本升级,或者出现任何问题,请检查完整的Impala保留字列表。
运行安全检查器并修复任何报告的错误。
转到管理>安全>安全检查器
作为hdfs用户登录到任何集群节点,运行以下命令,并纠正任何报告的错误:
hdfs fsck / -includeSnapshots
请注意
fsck
命令可能需要10分钟或更长时间才能完成,具体取决于集群中的文件数量。
hdfs dfsadmin -report
请参阅Apache Hadoop文档中的HDFS命令指南。
作为hdfs用户登录到任何DataNode,运行以下命令,并纠正任何报告的错误:
hbase hbck
如果集群使用Kudu,登录到任何集群主机并作为Kudu用户运行ksck
命令(sudo -u Kudu)。如果集群是Kerberized,首先以kudukinit,然后运行命令:
kudu cluster ksck <master_addresses>
有关此命令的完整语法,请参见使用ksck检查集群运行状况。
如果你升级到CDH 6.0或更高,并且Hue部署在集群中,并且使用PostgreSQL作为它的数据库,你必须手动安装psycopg2。参见安装Hue的依赖项。
如果您的集群使用Sentry和Oracle数据库,并且您正在从CDH 5.13.0或更高版本升级到CDH 5.16.0或更高版本,或者升级到CDH 6.1.0或更高版本,那么您必须手动添加AUTHZ_PATH。AUTHZ_OBJ_ID索引(如果它不存在)。手动添加索引可以减少哨兵获取完整的HDFS同步快照所需的时间。使用以下命令添加索引:
CREATE INDEX "AUTHZ_PATH_FK_IDX" ON "AUTHZ_PATH" ("AUTHZ_OBJ_ID");
从CDH 6.0.0开始,以下服务不再被支持:
在升级集群之前,必须停止并删除这些服务。
本主题描述如何在升级集群之前备份由Cloudera Manager管理的集群。这些过程不备份存储在集群中的数据。Cloudera建议您使用Cloudera管理器的备份和灾难恢复功能定期备份数据。
最低要求角色:完全管理员。当使用Cloudera Manager管理数据Hub集群时,该特性不可用。
在升级之前备份集群允许您在必要时回滚升级。请参阅回滚将cdh5到cdh6的升级。(不支持从cdh5.x升级到cdh5.x的回滚。)
以下CDH组件不需要备份:
在升级集群之前,请完成以下备份步骤:
警告
备份数据库需要您停止一些服务,这可能使它们在备份期间不可用。
收集以下信息:
打开Cloudera Manager管理控制台,查找您在集群中部署的以下服务的数据库信息:
请注意
Sqoop转移使用一个HyperSQL (HSQLDB)数据库。有关备份过程,请参阅HyperSQL文档。
备份数据库
对备份的每个数据库执行以下步骤:
如果还没有停止,停止服务。如果Cloudera管理器指出存在依赖服务,也要停止依赖服务。
在Home > Status选项卡上,单击服务名称的右侧并选择停止。
在下一个屏幕中单击停止确认。当您看到完成状态时,表示服务已停止。
备份数据库。替换数据库名、主机名、端口、用户名和备份目录路径,运行以下命令:
MySQL
mysqldump --databases
database_name
--host=database_hostname
--port=database_port -u
database_username -p >
backup_directory_path/database_name-backup-`date
+%F`-CDH6.2.0.sql
PostgreSQL/Embedded
pg_dump -h database_hostname -U database_username -W -p database_port database_name > backup_directory_path/database_name-backup-`date +%F`-CDH6.2.0.sql
Oracle
与数据库管理员一起确保数据库得到了正确的备份。
有关备份数据库的其他信息,请参见这些特定于供应商的链接:
启动服务。
在Home > Status选项卡上,单击服务名称的右侧并选择启动。
在下一个屏幕中单击Start确认。当您看到完成状态时,表示服务已经启动。
在所有ZooKeeper主机上,备份ZooKeeper配置中使用dataDir属性指定的ZooKeeper数据目录。默认位置是/var/lib/zookeeper。例如:
cp -rp /var/lib/zookeeper/ /var/lib/zookeeper-backup-`date +%F`CM6.2.0-CDH6.2.0
要识别ZooKeeper主机,打开Cloudera Manager管理控制台,转到ZooKeeper服务并单击实例选项卡。
记录文件和目录的权限;你需要这些来击退ZooKeeper。
使用以下过程备份Solr元数据。如果在升级过程中出现任何问题,此过程允许您回滚到升级前状态。
在开始升级过程之前,请查看Kudu 1.12的升级说明。
通过运行以下命令,使用Kudu -backup-tools jar将Kudu中的所有数据备份到HDFS或AWS S3中。集群升级后,您可以在新集群上恢复这些数据,并再次开始使用Kudu。
spark-submit --class org.apache.kudu.backup.KuduBackup kudu-backup2_2.11-1.12.0.jar --kuduMasterAddresses master1-host,master-2-host,master-3-host --rootPath hdfs:///kudu-backups table_name
其中
按照以下步骤备份HDFS部署。
请注意
要找到备份HDFS所需的主机名(日志节点、datanode和namenode),打开Cloudera Manager管理控制台,转到HDFS服务,然后单击实例选项卡。
如果HDFS启用了高可用性,那么在所有运行JournalNode角色的主机上运行以下命令:
cp -rp /dfs/jn /dfs/jn-CM6.2.0-CDH6.2.0
在所有NameNode主机上,备份NameNode运行时目录。运行以下命令:
mkdir -p /etc/hadoop/conf.rollback.namenode
cd /var/run/cloudera-scm-agent/process/ && cd `ls -t1 | grep -e "-NAMENODE\$" | head -1`
cp -rp * /etc/hadoop/conf.rollback.namenode/
rm -rf /etc/hadoop/conf.rollback.namenode/log4j.properties
cp -rp /etc/hadoop/conf.cloudera.HDFS_service_name/log4j.properties /etc/hadoop/conf.rollback.namenode/
这些命令创建一个临时回滚目录。如果回滚到cdh5.x,后面回滚过程需要您修改此目录中的文件。
备份所有Datanodes的目录。在所有datanode上运行以下命令:
mkdir -p /etc/hadoop/conf.rollback.datanode/
cd /var/run/cloudera-scm-agent/process/ && cd `ls -t1 | grep -e "-DATANODE\$" | head -1`
cp -rp * /etc/hadoop/conf.rollback.datanode/
rm -rf /etc/hadoop/conf.rollback.datanode/log4j.properties
cp -rp /etc/hadoop/conf.cloudera.HDFS_service_name/log4j.properties /etc/hadoop/conf.rollback.datanode/
如果HDFS没有启用高可用性,则备份辅助NameNode的目录时。在所有Secondary NameNode主机上运行以下命令:
mkdir -p /etc/hadoop/conf.rollback.secondarynamenode/
cd /var/run/cloudera-scm-agent/process/ && cd `ls -t1 | grep -e "-SECONDARYNAMENODE\$" | head -1`
cp -rp * /etc/hadoop/conf.rollback.secondarynamenode/
rm -rf /etc/hadoop/conf.rollback.secondarynamenode/log4j.properties
cp -rp /etc/hadoop/conf.cloudera.HDFS_service_name/log4j.properties /etc/hadoop/conf.rollback.secondarynamenode/
有关详细过程,请参阅备份和恢复密钥受托人服务器和客户机。
在高可用性模式下运行HSM KMS时,如果两个节点中的任何一个出现故障,则可以将一个角色实例分配给另一个节点,并由剩下的活动节点联合到服务中。换句话说,您可以将作为集群一部分但没有运行HSM KMS角色实例的节点引入到服务中,方法是将其变成一个HSM KMS角色实例(更具体地说,是一个HSM KMS代理角色实例和一个HSM KMS转移角色实例)。因此,每个节点充当另一个节点的在线(“热”备份)备份。在许多情况下,这就足够了。但是,如果需要对从头恢复服务所需的文件进行手动(“冷”备份)备份,您也可以创建该备份。
要创建备份,需要在一个或多个运行HSM KMS角色实例的节点上复制/var/lib/hsmkp
和/var/lib/hsmkp-meta
目录。
要从备份中恢复:在第一次启动HSM KMS之前,启动一个完全新的HSM KMS服务实例,并将备份中的/var/lib/hsmkp
和/var/lib/hsmkp-meta
目录复制到恢复的节点的文件系统上。
建议您在安装后备份Navigator加密配置目录,并在任何配置更新后再次备份。
手动备份导航器加密配置目录(/etc/navencrypt
):
$ zip -r --encrypt nav-encrypt-conf.zip /etc/navencrypt
--encrypt
选项提示您创建用于加密zip文件的密码。解密文件也需要此密码。确保您将密码存储在一个安全的位置以保护它。
将备份文件(nav-encrypt-conf.zip)移动到安全位置。
警告
如果无法备份配置目录,则备份的加密数据在数据丢失时将无法恢复。
因为回滚过程也回滚HDFS,所以HBase中的数据也回滚。此外,存储在ZooKeeper中的HBase元数据将作为ZooKeeper回滚过程的一部分恢复。
如果集群配置为使用HBase复制,Cloudera建议记录所有复制节点。如果需要(例如,因为HBase znode已经被删除),您可以在不使用ZooKeeper元数据的情况下,作为HDFS回滚的一部分回滚HBase。该元数据可以在新的ZooKeeper安装中重新构建,但复制对等点除外,必须将其添加回来。有关启用HBase复制、列出对等点和添加对等点的信息,请参阅cdh5文档中的HBase复制。
请注意
CDH 6.x中不支持Sqoop 2。升级到cdh6。在升级之前,必须删除Sqoop 2服务。在删除Sqoop 2服务之前执行这些步骤。
如果没有为Sqoop 2使用默认的嵌入式Derby数据库,则备份为Sqoop 2配置的数据库。否则,备份Sqoop 2 metastore目录的repository
子目录。这个位置是用Sqoop 2服务器转移目录属性指定的。默认位置是:/var/lib/sqoop2
对于这个默认位置,Derby数据库文件位于/var/lib/sqoop2/repository
中。
mkdir -p /opt/cloudera/parcels_backup
cp -rp /opt/cloudera/parcels/CDH/lib/hue/app.reg /opt/cloudera/parcels_backup/app.reg-CM6.2.0-CDH6.2.0
CDH或Cloudera Runtime的版本,可以根据管理集群的Cloudera管理器的版本升级。当使用Cloudera Manager 7.0.3时,集群不支持升级。
最小所需角色:集群管理员(也由完整管理员提供)当使用Cloudera Manager管理数据Hub集群时,该特性不可用。
注意,如果您正在升级到CDH或Cloudera运行时的维护版本,请跳过标记为[CDH维护版本升级不需要]的任何步骤。
完成CDH升级准备和备份CDH组件的步骤后,继续执行以下升级步骤:
相关信息
在CM升级向导中安装Atlas
使用定制脚本迁移导航器数据
在升级集群之前请注意以下事项:
重要提示
- 此过程仅适用于CDH集群。按照此步骤升级密钥托管服务器集群,可以独立执行。
- 如果在集群中使用Solr搜索服务,那么在升级CDH之前和之后都必须执行一些重要的手动步骤。
在升级到Cloudera运行时之前,请参阅迁移Cloudera Search配置。- 目前还不支持在CDH 6.0.0集群上运行Apache Accumulo。如果您试图升级到CDH 6.0.0,系统会要求您从集群中删除Accumulo服务。未来的版本将支持在CDH 6之上运行Accumulo。
- 仅支持从CDK 4.1.0升级到Cloudera Runtime 7.1.1或更高版本。如果您运行的是早期版本的CDK,那么在升级到Cloudera Runtime 7.1.1之前,您必须先升级到CDK 4.1.0。
用于执行升级的Cloudera Manager的次级版本必须等于或大于CDH次级版本。要升级Cloudera管理器,请参见升级Cloudera管理器。
- Supported:
- Cloudera Manager 7.1 and Cloudera Runtime 7.0
- Cloudera Manager 7.1 and CDH 5.
- Cloudera Manager 6.0.0 and CDH 5.14.0
- Cloudera Manager 5.14.0 and CDH 5.13.0
- Cloudera Manager 5.13.1 and CDH 5.13.3
- Not Supported:
- Cloudera Manager 5.14.0 and CDH 6.0.0
- Cloudera Manager 5.12 and CDH 5.13
- Cloudera Manager 6.0.0 and CDH 5.6
重要提示
Cloudera Manager或CDH 6.3.3或更高版本的升级和安装过程已经改变。请注意以下事项:
- 下载和安装该软件需要一个有效的Cloudera企业许可证文件以及用户名和密码。您可以从Cloudera CDH下载页面获得用户名和密码。查看您的许可证文件必须是当前上传到Cloudera管理器。上传许可证
- 目前使用的是Cloudera试用许可证,你不能升级到Cloudera Manager或CDH 6.3.3或更高版本。
- 如果您正在使用Cloudera Express,您不能升级Cloudera Manager或CDH。
- 过程中的几个步骤已经更改,现在需要输入用户名和密码。
- 下载url已经改变。
警告
CDH 6.2.0中的Kafka基于Apache Kafka 2.1.0,其中包含对用于存储消费者偏移量的内部模式的更改。由于这个变化,kafka已经升级到CDH 6.2.0或更高无法进行降级。
警告
当使用Cloudera Manager备份和灾难恢复(BDR)将集群从Cloudera Manager 5.13或更低的版本备份到CDH 6.0或更高版本时,使用Cloudera Manager备份和灾难恢复(BDR)的数据不起作用。
警告
不支持从CDH 6集群升级到Cloudera Runtime 7。
在升级集群之前,备份Cloudera Manager。即使您只是在升级前备份了Cloudera Manager,您现在也应该备份升级后的Cloudera Manager部署。参见备份CM。
为了避免升级过程中出现不必要的警报,在开始升级之前,请在集群上进入维护模式。进入维护模式将停止发送电子邮件警报和SNMP陷阱,但不会停止检查和配置验证。确保在完成升级后退出维护模式,重新启用Cloudera管理器警报。更多的信息。
在Home > Status选项卡上,单击集群名称旁边的actions菜单,并选择进入维护模式。
如果您的集群使用Hue,请执行以下步骤(维护版本不需要)。这些步骤清理了Hue使用的数据库表,可以帮助提高升级后的性能。
备份Hue数据库。
连接到Hue数据库。有关连接到色相数据库的信息,请参阅色相组件指南中的色相自定义数据库。
检查desktop_document、desktop_document2、oozie_job、beeswax_session、beeswax_savedquery和beeswax_queryhistory表的大小,以获得参考点。如果其中任何一个有超过100k的行,就运行清理。
select 'desktop_document' as table_name, count(*) from desktop_document
union
select 'desktop_document2' as table_name, count(*) from desktop_document2
union
select 'beeswax_session' as table_name, count(*) from beeswax_session
union
select 'beeswax_savedquery' as table_name, count(*) from beeswax_savedquery
union
select 'beeswax_queryhistory' as table_name, count(*) from beeswax_queryhistory
union
select 'oozie_job' as table_name, count(*) from oozie_job
order by 1;
选择一个运行Hue实例的节点,该脚本要求Hue运行并使用Hue的运行配置来运行。通过执行git或wget步骤,将hue_scripts repo下载到任何Hue节点。这些脚本是一组库和命令,需要整个repo。
wget -qO- -O /tmp/hue_scripts.zip https://github.com/cmconner156/hue_scripts/archive/master.zip && unzip -d /tmp /tmp/hue_scripts.zip
mv /tmp/hue_scripts-master /opt/cloudera/hue_scripts
更改脚本运行器的权限,使其能够运行
chmod 700 /opt/cloudera/hue_scripts/script_runner
在该节点上以root用户的身份运行脚本,命令都是一行,DESKTOP_DEBUG=True
是为该命令单独运行的环境设置的,所以你不必跟踪日志:
DESKTOP_DEBUG=True /opt/cloudera/hue_scripts/script_runner hue_desktop_document_cleanup --keep-days 90
如果您包含了上面的DESKTOP_DEBUG,那么日志记录将在控制台中。否则检查/var/log/hue/hue_desktop_document_cleanup.log
.
检查desktop_document、desktop_document2、oozie_job、beeswax_session、beeswax_savedquery和beeswax_queryhistory表的大小,并确认它们现在更小了。
select count(*) from desktop_document;
select count(*) from desktop_document2;
select count(*) from beeswax_session;
select count(*) from beeswax_savedquery;
select count(*) from beeswax_queryhistory;
select count(*) from oozie_job;
如果任何表的大小仍然大于100k,则再次运行该命令,保留更少的天数
--keep-days 60 or --keep-days 30
如果您的集群对任何数据库使用Oracle,在从CDH 5升级到CDH 6之前,使用以下SQL查询检查Oracle数据库中兼容的初始化参数的值:
SELECT name, value FROM v$parameter WHERE name = 'compatible'
默认值是12.2.0。如果参数有不同的值,可以将其设置为默认值,如Oracle数据库升级指南所示。
请注意
在将兼容初始化参数重置为默认值之前,请确保考虑此更改对系统的影响。
登录到Cloudera Manager管理控制台。
单击主机>包裹。将显示包裹页面。
使用以下远程包裹存储库URL更新CDH的包裹存储库:演示如何使用
如果您的集群安装了GPLEXTRAS,请使用以下远程包裹存储库URL更新GPLEXTRAS包的版本以匹配CDH版本:
https://archive.cloudera.com/gplextras6/6.2.1/parcels/
如果您正在使用packages,或者没有从包裹页面选择升级,您可以从Home>Status选项卡进入升级CDH页面。单击集群名称旁边,然后选择升级集群。
选择以前下载/分发的CDH版本。如果没有预先列出符合条件的CDH包裹,或者您想升级到不同版本的CDH:如果您以前使用包,并且想切换到使用包裹,请选择Use packages。
Cloudera Manager 5.15及以上版本:
你有一个与现有CDH版本兼容的包,升级向导可能会显示这个包与新的CDH版本冲突的消息。
显示“选择升级过程”屏幕。从以下选项中选择升级过程:
全集群重启
Cloudera Manager执行所有服务升级并重启集群。
手动升级
Cloudera Manager将集群配置为指定的CDH版本,但不执行升级或服务重启。
手动升级是困难的,而且只对高级用户。手动升级允许您选择性地停止和重新启动服务,以防止或减轻无法滚动重启的服务或集群的停机时间。
要执行手动升级:有关所需步骤,请参阅在升级失败后手动升级CDH。
单击继续。
升级集群屏幕显示向导在关闭所有服务、激活新包裹、升级服务、部署客户端配置文件和重启服务时运行的命令的结果。
如果其中任何一个步骤失败,请纠正所报告的错误并单击Resume按钮。Cloudera管理器将跳过已经成功重启的角色。或者,回到主页面>状态选项卡,然后在升级失败后手动执行升级CDH中的步骤。
通知:
如果Cloudera管理器在升级CDH时检测到一个故障,Cloudera管理器会显示一个对话框,在那里你可以创建一个诊断包发送给Cloudera支持,这样他们可以帮助你从故障中恢复。集群名称和持续时间字段是预先填充的,以捕获正确的数据。
点击继续
如果您的集群以前是使用packages安装或升级的,向导可能指示某些服务无法启动,因为它们的包不可用。下载所需parcels:
在另一个浏览器标签页,打开Cloudera Manager管理控制台。
选择主机>包裹。
找到包含丢失包裹的行,单击按钮下载、分发,然后激活包裹。
返回到升级向导并单击Resume按钮。
升级向导继续升级集群。
[CDH维护发布升级不需要。]
如果以前的CDH安装是使用packages完成的,请在安装parcels的所有主机上删除这些packages并刷新符号链接,以便客户机能够运行新的软件版本。
如果您以前安装或升级使用的parcels,请跳过此步骤。
如果您的Hue服务使用嵌入式SQLite数据库,请将/var/lib/ hueb /desktop.db
备份到一个不是/var/lib/hue
的位置,因为这个目录会在包被删除时被删除。
在每个主机上卸载CDH包:
Not including Impala and Search
RHEL / CentOS
sudo yum remove bigtop-utils bigtop-jsvc bigtop-tomcat 'hue-*' sqoop2-client
SLES
sudo zypper remove bigtop-utils bigtop-jsvc bigtop-tomcat 'hue-*' sqoop2-client
Debian / Ubuntu
sudo apt-get purge bigtop-utils bigtop-jsvc bigtop-tomcat 'hue-*' sqoop2-client
Including Impala and Search
RHEL / CentOS
sudo yum remove 'bigtop-*' 'hue-*' impala-shell solr-server sqoop2-client hbase-solr-doc avro-libs crunch-doc avro-doc solr-doc
SLES
sudo zypper remove 'bigtop-*' 'hue-*' impala-shell solr-server sqoop2-client hbase-solr-doc avro-libs crunch-doc avro-doc solr-doc
Debian / Ubuntu
sudo apt-get purge 'bigtop-*' 'hue-*' impala-shell solr-server sqoop2-client hbase-solr-doc avro-libs crunch-doc avro-doc solr-doc
重新启动所有Cloudera Manager Agents,强制更新符号链接,以指向每个主机上新安装的组件。
如果你的Hue服务使用内嵌的SQLite数据库,恢复你备份的数据库:
停止Hue服务。
将备份从临时位置复制到新创建的Hue数据库目录/var/lib/hue.
启动Hue服务。
要确定是否可以完成升级,请运行重要的工作负载并确保它们成功。在完成升级之后,不使用备份就不能回滚到HDFS的前一个版本。确认您已经准备好完成升级可能会花费很长时间。
确保你有足够的空闲磁盘空间,记住以下行为一直持续到升级完成:
如果集群使用Sentry和Oracle数据库,则必须手动在AUTHZ_PATH上添加索引。AUTHZ_OBJ_ID列(如果它不存在)。手动添加索引可以减少哨兵获取完整的HDFS同步快照所需的时间。使用以下命令添加索引:
CREATE INDEX "AUTHZ_PATH_FK_IDX" ON "AUTHZ_PATH" ("AUTHZ_OBJ_ID");
如果您在此升级期间进入了维护模式,请退出维护模式。
在Home > Status选项卡上,单击集群名称旁边的选项卡,然后选择退出维护模式。
重要提示
只有当升级向导报告失败时,或者如果您从CDH升级向导中选择了手动升级(手动升级选项仅用于较小的或维护升级),才执行本节中的步骤。手动升级允许您选择性地停止和重新启动服务,以防止或减轻无法滚动重启的服务或集群的停机时间。
下面的所有步骤都假设CDH的启动版本至少是5.13.0,或者Cloudera Runtime的启动版本至少是7.0.3,因为这些是Cloudera Manager 7.1支持的最低版本。
下面的步骤应该大致按照列出的顺序执行,并且只有在配置了服务后才应该执行。
升级的需求:
升级的需求:
升级的需求:
升级的需求:
升级的需求:
升级的需求:
升级的需求:
选择HDFS服务。
选择Actions > 升级HDFS元数据,单击升级HDFS元数据确认。
升级的需求:
升级的需求:.
升级的需求:
升级的需求:
升级的需求:.
升级的需求:
升级的需求:
SSH到运行ZooKeeper服务器的集群节点。
使用以下参数运行zk-client.sh
脚本:
/opt/cloudera/cm-agent/service/zookeeper/zk-client.sh removeYarnACLs /yarn-leader-election,/rmstore
其中zkQuorum (url:port)和zkAuth(用户名:密码)属性值来自yarn-site.xml,它位于: /etc/hadoop/conf.cloudera.YARN-1/yarn-site.xml
hadoop.registry.zk.quorum
url:port
yarn.resourcemanager.zk-auth
digest:username:password
注意只需要:yarn.resourcemanager.zk-auth 属性的username:password字符串。需要删除zk-client.sh 参数的zk-auth属性的值、身份验证方法(digest:)。
升级的需求:
升级的需求:
升级的需求:
升级的需求:
升级的需求:
升级的需求:
升级的需求:
选择SOLR服务。
选择Actions Bootstrap Solr Collections并单击Bootstrap Solr Collections进行确认
升级的需求:
转到基础设施SOLR服务。
选择Actions > Create HDFS Home Dir并单击Create HDFS Home Dir确认。
升级的需求:
升级的需求:
升级的需求:
升级的需求:
升级的需求:
升级的需求:
升级的需求:
升级的需求:
升级的需求:
升级的需求:
升级的需求:
升级的需求:
警告警告!!!
如果不完成此步骤,升级将失败。
升级的需求:
升级的需求:
升级的需求:
升级的需求:
升级的需求:
升级的需求:
升级的需求:
升级的需求:
升级的需求:
升级的需求:
升级的需求:
升级的需求:
Go to the OOZIE service.
If the OOZIE service is running, stop it:
Select Actions > Stop and click Stop to confirm.
Select Actions > Upgrade Oozie Database Schema and click Upgrade Oozie Database Schema to confirm.
升级的需求:
Go to the Oozie service.
If the OOZIE service is stopped, start it:
Select Actions > Start and click Start to confirm.
Select Actions > Install Oozie SharedLib and click Install Oozie SharedLib to confirm.
升级的需求:
升级的需求:
升级的需求:
升级的需求:
升级的需求:
升级的需求:
警告警告!!!
如果不完成此步骤,升级将失败。
升级的需求:
To determine if you can finalize the upgrade, run important workloads and ensure that they are successful. After you have finalized the upgrade, you cannot roll back to a previous version of HDFS without using backups. Verifying that you are ready to finalize the upgrade can take a long time.
When you are ready to finalize the upgrade, do the following:
Go to the HDFS service.
Click the Instances tab.
Click the link for the NameNode instance.If you have enabled high availability for HDFS, click the link labeled NameNode (Active).
The NameNode instance page displays.
Select Actions > 最终化元数据升级 and click 最终化元数据升级 to confirm.
在为活动监视器或报告管理器配置数据库期间,安装或更新向导中的“访问被拒绝”。
没有正确设置主机名映射或权限。
有关主机名配置,请参见配置网络名。
对于权限,请确保在向导中输入的值与配置数据库时使用的值匹配。您在向导中输入的作为数据库主机名的值必须与您在配置数据库时为主机名(如果有的话)输入的值匹配。
例如,如果您在创建数据库时输入了以下内容
grant all on activity_monitor.* TO 'amon_user'@'myhost1.myco.com' IDENTIFIED BY 'amon_password';
在这里输入的数据库主机名的值必须是myhost1.myco.com。如果没有指定主机,或使用通配符允许从任何主机访问,则可以输入完全限定域名(FQDN)或本地主机。例如,如果您输入
grant all on activity_monitor.* TO 'amon_user'@'%' IDENTIFIED BY 'amon_password';
为数据库主机名输入的值可以是FQDN或本地主机。
在安装或更新向导中单击查找主机时,一些集群主机不会出现。
您可能有网络连接问题
您升级了Cloudera管理器服务器,但现在无法启动服务。
您可能有不匹配的Cloudera Manager服务器和代理版本。
确保您已经升级了所有主机上的Cloudera Manager代理。(代理的前一个版本会随着服务器的新版本而心跳,但是不能用这个组合启动HDFS和MapReduce。)
升级后,HDFS DN启动失败,异常:
Exception in secureMainjava.lang.RuntimeException: Cannot start datanode because the configured max locked memory size (dfs.datanode.max.locked.memory) of 4294967296 bytes is more than the datanode's available RLIMIT_MEMLOCK ulimit of 65536 bytes.
HDFS缓存在cdh5或更高版本中是默认启用的,需要Cloudera Manager代理提供新的memlock功能。
执行以下操作:
RHEL 7, SLES 12, Debian 8, Ubuntu 16.04 and higher
sudo systemctl stop supervisord
sudo systemctl start cloudera-scm-agent
RHEL 5 or 6, SLES 11, Debian 6 or 7, Ubuntu 12.04 or 14.04
sudo service cloudera-scm-agent hard_restart
cloudera服务无法启动。
Java可能没有安装,也可能安装在自定义位置。
有关解决此问题的更多信息,请参见配置自定义Java主位置。
由于CDH 5.8 Flume Kafka客户端从ZooKeeper更改为Kafka的偏移存储,在升级到CDH 5.8.0或CDH 5.8.1期间,数据可能不会被Flume代理使用,或者可能被复制(如果Kafka .auto.offset.reset=smallest
)。要防止这种情况发生,请在升级系统之前执行以下步骤。
重要的
这个问题已经在CDH 5.8.2及更高版本中得到修复。如果您正在升级到CDH 5.8.2或更高版本,则不需要执行此过程。有关更多信息,请参见CDK已知问题。
升级过程基于这个配置示例:
tier1.sources = source1
tier1.channels = channel1
tier1.sinks = sink1
tier1.sources.source1.type = org.apache.flume.source.kafka.KafkaSource
tier1.sources.source1.zookeeperConnect = zkhost:2181
tier1.sources.source1.topic = flumetopic
tier1.sources.source1.groupId = flume
tier1.sources.source1.channels = channel1
tier1.sources.source1.interceptors = i1 i2
tier1.sources.source1.interceptors.i1.type = timestamp
tier1.sources.source1.interceptors.i2.type = host
tier1.sources.source1.kafka.consumer.timeout.ms = 100
tier1.channels.channel1.type = org.apache.flume.channel.kafka.KafkaChannel
tier1.channels.channel1.brokerList=broker1:9092,broker2:9092
tier1.channels.channel1.zookeeperConnect=zkhost:2181
tier1.channels.channel1.topic=flumechannel1
tier1.channels.channel1.groupId = flumechannel
tier1.channels.channel1.capacity = 10000
tier1.channels.channel1.transactionCapacity = 1000
tier1.sinks.sink1.type = hdfs
tier1.sinks.sink1.hdfs.path = /tmp/kafka/%{topic}/
tier1.sinks.sink1.hdfs.filePrefix = %{host}-
tier1.sinks.sink1.hdfs.rollInterval = 60
tier1.sinks.sink1.hdfs.rollSize = 0
tier1.sinks.sink1.hdfs.rollCount = 0
tier1.sinks.sink1.hdfs.fileType = DataStream
tier1.sinks.sink1.channel = channel1
tier1.sinks.sink1.hdfs.kerberosKeytab = $KERBEROS_KEYTAB
tier1.sinks.sink1.hdfs.kerberosPrincipal = $KERBEROS_PRINCIPAL
执行以下步骤升级CDH。
如果您使用的版本低于CDH 5.7,请首先升级到CDH 5.7。如果由于某些原因您不能升级到CDH 5.7,请联系您的Cloudera销售工程师以获得帮助,或提交一个支持案例,说明您正在升级的特定版本。
将以下部分添加到Flume 配置的源和通道中
# Added for source upgrade compatibility
tier1.sources.source1.kafka.bootstrap.servers = broker1:9092,broker2:9092
tier1.sources.source1.kafka.offsets.storage = kafka
tier1.sources.source1.kafka.dual.commit.enabled = true
tier1.sources.source1.kafka.consumer.group.id = flume
tier1.sources.source1.kafka.topics = flumetopic
# Added for channel upgrade compatability
tier1.channels.channel1.kafka.topic = flumechannel1
tier1.channels.channel1.kafka.bootstrap.servers = broker1:9092,broker2:9092
tier1.channels.channel1.kafka.consumer.group.id = flumechannel
tier1.channels.channel1.kafka.offsets.storage = kafka
tier1.channels.channel1.kafka.dual.commit.enabled = true
重新启动(或滚动重新启动)Flume 代理。这个开关offsets.storage到kafka。但是会不断更新Kafka和ZooKeeper偏移量,因为dul .commit.enabled属性被设置为true。确认Kafka消息正在通过Flume服务器。只有在使用新消息时才会更新偏移量,因此Flume代理至少需要使用一条Kafka消息,或者通过Flume通道传递一个事件。使用以下命令来验证Flume是否正确地更新了Kafka中的偏移量(使用egrep命令匹配正确的主题名称:在这个例子中,flumetopic和flumechannel)
echo "exclude.internal.topics=false" > /tmp/consumer.config
kafka-console-consumer --consumer.config /tmp/consumer.config
--formatter "kafka.coordinator.GroupMetadataManager\$OffsetsMessageFormatter"
--zookeeper zkhost:2181 --topic __consumer_offsets |egrep -e "flumetopic|flumechannel1"
输出应该类似如下,并显示flume源和/或channel主题偏移量正在增加:
[flume,flumetopic,0]::[OffsetMetadata[70,cf9e5630-214e-4689-9869-5e077c936ffb],CommitTime 1469827951129,ExpirationTime 1469914351129]
[flumechannel,flumechannel1,0]::[OffsetMetadata[61,875e7a82-1c22-43be-acaa-eb4d63e7f71e],CommitTime 1469827951128,ExpirationTime 1469914351128]
[flumechannel,flumechannel1,0]::[OffsetMetadata[62,66bda888-0a70-4a02-a286-7e2e7d14050d],CommitTime 1469827951131,ExpirationTime 1469914351131]
4.执行到CDH 5.8.0或CDH 5.8.1的升级。在此过程中,Flume 代理将重新启动。Flume继续消耗它停止的源主题,而sink继续消耗它们停止的Kafka通道。升级后,从Flume .conf
中删除以下不推荐的属性,因为它们不再在CDH 5.8.0或更高版本中使用:
tier1.sources.source1.zookeeperConnect = zkhost:2181
tier1.sources.source1.topic = flumetopic
tier1.sources.source1.groupId = flume
tier1.channels.channel1.zookeeperConnect=zkhost:2181
tier1.channels.channel1.topic=flumechannel1
tier1.channels.channel1.groupId = flumechannel
您可以回滚从cdh5到cdh6的升级。回滚将CDH集群恢复到升级之前的状态,包括Kerberos和TLS/SSL配置。
重要的
升级后创建的任何数据都会丢失。
在典型的升级中,首先要从版本5升级Cloudera Manager到版本6.x,然后使用Cloudera Manager 6的升级版本将cdh5升级到cdh6。(请参阅升级集群。)如果希望回滚此升级,请按照以下步骤将集群回滚到升级之前的状态。
只有在HDFS升级尚未完成时,才可以在升级到cdh6后回滚到cdh5。回滚将CDH集群恢复到升级之前的状态,包括Kerberos和TLS/SSL配置。
重要提示
按照本主题中给出的顺序执行所有步骤。Cloudera建议在开始备份过程之前阅读备份和回滚步骤。您可能需要创建一个详细的计划来帮助您预测潜在的问题。
重要提示
这些回滚步骤依赖于在升级Cloudera Manager和CDH之前执行的完整备份。参见备份Cloudera管理器和备份集群。
对于需要还原目录内容的步骤,请在将备份的文件复制到该目录之前清除该目录的内容。如果您未能做到这一点,那么如果您在回滚之后再次尝试升级,来自原始升级的工件可能会导致问题。
回滚过程有以下限制:
inter.broker.protocol.version
和log.message.format.version
属性)设置为新版本(或留空,这意味着使用最新的版本),Kafka回滚是不可能的。仅当您的集群使用Cloudera包裹升级时,请遵循这些步骤。
登录到Cloudera Manager管理控制台。
选择主机>包裹。
一个包裹列表显示。
找到CDH 5包裹并单击Activate。(这将自动使CDH 6包裹失效。)有关更多信息,请参见激活包裹。如果包裹不可用,使用下载按钮下载包裹。
如果在集群中包含任何其他组件,如Search或Impala,请单击这些包裹的Activate
重要的
不要启动任何服务。(选择“只激活”选项)
如果意外重启服务,请在继续之前停止集群。
停止Cloudera管理服务
停止Cloudera管理器服务器
RHEL 7, SLES 12, Debian 8, Ubuntu 16.04 and higher
sudo systemctl stop cloudera-scm-server
RHEL 5 or 6, SLES 11, Debian 6 or 7, Ubuntu 12.04 or 14.04
sudo service cloudera-scm-server stop
硬阻止CM代理。在所有主机上运行以下命令:
RHEL 7, SLES 12, Debian 8, Ubuntu 16.04 and higher
sudo systemctl stop cloudera-scm-supervisord.service
RHEL 5 or 6, SLES 11, Debian 6 or 7, Ubuntu 12.04 or 14.04
sudo service cloudera-scm-agent hard_stop
仅当您的集群使用包升级时,请遵循这些步骤。
运行Package命令
作为集群中所有主机的特权用户登录。
备份存储库目录。您可以使用以下命令创建一个顶级备份目录和一个环境变量来引用该目录。您还可以在以下备份命令中替换另一个目录路径:
export CM_BACKUP_DIR="`date +%F`-CM"
mkdir -p $CM_BACKUP_DIR
RHEL / CentOS
sudo -E tar -cf $CM_BACKUP_DIR/repository.tar /etc/yum.repos.d
SLES
sudo -E tar -cf $CM_BACKUP_DIR/repository.tar /etc/zypp/repos.d
Debian / Ubuntu
sudo -E tar -cf $CM_BACKUP_DIR/repository.tar /etc/apt/sources.list.d
tar -xf CM6CDH5/repository.tar -C CM6CDH5/
RHEL
rm -rf /etc/yum.repos.d/*
cp -rp CM6CDH5/etc/yum.repos.d/* /etc/yum.repos.d/
SLES
rm -rf /etc/zypp/repos.d
cp -rp CM6CDH5/etc/zypp/repos.d/* /etc/zypp/repos.d/
Debian / Ubuntu
rm -rf /etc/apt/sources.list.d/*
cp -rp CM6CDH5/etc/apt/sources.list.d/* /etc/apt/sources.list.d/
运行以下命令卸载cdh6并重新安装cdh5包
RHEL / CentOS
sudo yum clean
sudo yum remove avro-tools flume-ng avro-libs hadoop-hdfs-fuse hadoop-hdfs-nfs3 hadoop-httpfs hadoop-kms hbase-solr hive-hbase hive-webhcat hue impala impala-shell kafka kite kudu oozie pig search sentry sentry-hdfs-plugin solr-crunch solr-mapreduce spark-core spark-python sqoop zookeeper parquet hbase solr
sudo yum -y install --setopt=timeout=180 bigtop-utils solr-doc oozie-client hue-spark kite crunch-doc sqoop hue-rdbms hbase-solr hue-plugins pig spark-python oozie hadoop-kms bigtop-tomcat hbase hue-sqoop sqoop2 spark-core hadoop-mapreduce avro-tools hadoop-hdfs avro-libs hadoop sqoop2-client mahout avro-doc hue-impala hbase-solr-doc hive-jdbc crunch zookeeper hadoop-hdfs-nfs3 bigtop-jsvc hue-common hue-hbase hadoop-client hive-webhcat parquet-format hue-beeswax keytrustee-keyprovider hue-pig llama hive-hcatalog kudu kafka solr hue-search hive-hbase search solr-crunch flume-ng hadoop-httpfs hue-security sentry hive sentry-hdfs-plugin hadoop-yarn hadoop-hdfs-fuse parquet hadoop-0.20-mapreduce impala-shell impala hue-zookeeper solr-mapreduce
SLES
sudo zypper clean --all
sudo zypper remove avro-tools flume-ng avro-libs hadoop-hdfs-fuse hadoop-hdfs-nfs3 hadoop-httpfs hadoop-kms hbase-solr hive-hbase hive-webhcat hue impala impala-shell kafka kite kudu oozie pig search sentry sentry-hdfs-plugin solr-crunch solr-mapreduce spark-core spark-python sqoop zookeeper parquet hbase solr
sudo zypper install solr-doc oozie-client hue-spark kite crunch-doc sqoop hue-rdbms hbase-solr hue-plugins pig spark-python oozie hadoop-kms bigtop-tomcat hbase hue-sqoop sqoop2 spark-core hadoop-mapreduce avro-tools hadoop-hdfs avro-libs hadoop sqoop2-client mahout avro-doc hue-impala hbase-solr-doc hive-jdbc crunch zookeeper hadoop-hdfs-nfs3 bigtop-jsvc hue-common hue-hbase hadoop-client hive-webhcat parquet-format hue-beeswax keytrustee-keyprovider hue-pig llama hive-hcatalog kudu kafka solr hue-search hive-hbase search solr-crunch flume-ng hadoop-httpfs hue-security sentry hive sentry-hdfs-plugin hadoop-yarn hadoop-hdfs-fuse parquet hadoop-0.20-mapreduce impala-shell impala hue-zookeeper solr-mapreduce
Debian / Ubuntu
sudo apt-get update
sudo apt-get remove avro-tools flume-ng avro-libs hadoop-hdfs-fuse hadoop-hdfs-nfs3 hadoop-httpfs hadoop-kms hbase-solr hive-hbase hive-webhcat hue impala impala-shell kafka kite kudu oozie pig search sentry sentry-hdfs-plugin solr-crunch solr-mapreduce spark-core spark-python sqoop zookeeper parquet hbase solr
sudo apt-get update
sudo apt-get install solr-doc oozie-client hue-spark kite crunch-doc sqoop hue-rdbms hbase-solr hue-plugins pig spark-python oozie hadoop-kms bigtop-tomcat hbase hue-sqoop sqoop2 spark-core hadoop-mapreduce avro-tools hadoop-hdfs avro-libs hadoop sqoop2-client mahout avro-doc hue-impala hbase-solr-doc hive-jdbc crunch zookeeper hadoop-hdfs-nfs3 bigtop-jsvc hue-common hue-hbase hadoop-client hive-webhcat parquet-format hue-beeswax keytrustee-keyprovider hue-pig llama hive-hcatalog kudu kafka solr hue-search hive-hbase search solr-crunch flume-ng hadoop-httpfs hue-security sentry hive sentry-hdfs-plugin hadoop-yarn hadoop-hdfs-fuse parquet hadoop-0.20-mapreduce impala-shell impala hue-zookeeper solr-mapreduce
从集群升级到CDH 6之前的Cloudera Manager备份中恢复Cloudera Manager数据库。请参阅数据库供应商提供的过程。
使用升级前的CDH备份来恢复Cloudera Manager服务器的文件和目录。按照以下步骤替换cm6_cdh5备份目录的路径:
在配置运行事件服务器角色的主机上,从CM 6/CDH 5备份恢复事件服务器目录。
rm -rf /var/lib/cloudera-scm-eventserver/*
cp -rp /var/lib/cloudera-scm-eventserver_cm6_cdh5/* /var/lib/cloudera-scm-eventserver/
删除代理运行时状态。在所有主机上运行以下命令:
rm -rf /var/run/cloudera-scm-agent /var/lib/cloudera-scm-agent/response.avro
这个命令可能会返回类似于: rm: cannot remove ‘/var/run/cloudera-scm-agent/process’: Device or resource busy
. 您可以忽略此消息。
在运行服务监视器的主机上,恢复服务监视器目录
rm -rf /var/lib/cloudera-service-monitor/*
cp -rp /var/lib/cloudera-service-monitor_cm6_cdh5/* /var/lib/cloudera-service-monitor/
在运行主机监视器的主机上,恢复主机监视器目录:
rm -rf /var/lib/cloudera-host-monitor/*
cp -rp /var/lib/cloudera-host-monitor_cm6_cdh5/* /var/lib/cloudera-host-monitor/
从CM 6/CDH 5备份中恢复Cloudera导航器存储目录。
rm -rf /var/lib/cloudera-scm-navigator/*
cp -rp /var/lib/cloudera-scm-navigator_cm6_cdh5/* /var/lib/cloudera-scm-navigator/
启动Cloudera Manager Server
RHEL 7, SLES 12, Debian 8, Ubuntu 16.04 and higher
sudo systemctl start cloudera-scm-server
如果Cloudera管理器服务器在没有错误的情况下启动,则不会显示响应。
RHEL 5 or 6, SLES 11, Debian 6 or 7, Ubuntu 12.04 or 14.04
sudo service cloudera-scm-server start
You should see the following:
Starting cloudera-scm-server: [ OK ]
启动Cloudera Manager Agent
在所有集群主机上运行以下命令:
RHEL 7, SLES 12, Debian 8, Ubuntu 16.04 and higher
sudo systemctl start cloudera-scm-agent
如果代理启动时没有错误,则不会显示响应。
RHEL 5 or 6, SLES 11, Debian 6 or 7, Ubuntu 12.04 or 14.04
sudo service cloudera-scm-agent start
You should see the following:
Starting cloudera-scm-agent: [ OK ]
启动 Cloudera Management Service.
使用您在备份cdh5时创建的Zookeeper备份。在每个ZooKeeper服务器上恢复dataDir的内容。这些文件位于ZooKeeper配置中由dataDir属性指定的目录中。默认位置是/var/lib/zookeeper
。例如:
rm -rf /var/lib/zookeeper/*
cp -rp /var/lib/zookeeper_cm6_cdh5/* /var/lib/zookeeper/
确保所有目录和文件的权限与升级前相同。
使用Cloudera管理器启动ZooKeeper。
在启用高可用性时,不能回滚HDFS。本主题中的回滚过程创建一个没有高可用性的临时配置。无论是否启用了高可用性,请遵循本节中的步骤。
回滚所有日志节点。(仅适用于启用HDFS高可用性的集群)。使用在升级到CDH 6之前备份HDFS时创建的JournalNode备份。
登录到每个Journal Node主机并运行以下命令:
rm -rf /dfs/jn/ns1/current/*
cp -rp /dfs/jn/ns1/previous/* /dfs/jn/ns1/current/
使用Cloudera管理器启动JournalNodes:
回滚所有的namenode。使用升级CDH之前创建的NameNode备份目录(/etc/hadoop/conf.rollback.namenode
)在所有NameNode主机上执行以下步骤:
(仅启用TLS的集群)在所有NameNode主机(位于临时回滚目录中)上编辑/etc/hadoop/conf.rollback.NameNode/ssl-server.xml
文件,并用实际的明文密码更新密钥存储库密码。
密码的值如下:
<property>
<name>ssl.server.keystore.password</name>
<value>********</value>
</property>
<property>
<name>ssl.server.keystore.keypassword</name>
<value>********</value>
</property>
(仅适用于TLS)编辑/etc/hadoop/conf.rollback.namenode/ssl-server.xml
文件并删除hadoop.security.credential.provider.path
属性。
在所有的NameNode主机上编辑/etc/hadoop/conf.rollback.NameNode/hdfs-site.xml
文件,并进行以下更改:
删除cloudera.navigator.client.config
属性。
删除dfs.namenode.audit.loggers属性。
更改dfs中的路径。将属性设置为下面示例中所示的值。文件名dfs_all_hosts.txt
,可能已经被用户更改。如果是,则替换正确的文件名。
# Original version of the dfs.hosts property:
<property>
<name>dfs.hosts</name>
<value>/var/run/cloudera-scm-agent/process/63-hdfs-NAMENODE/dfs_all_hosts.txt</value>
</property>
# New version of the dfs.hosts property:
<property>
<name>dfs.hosts</name>
<value>/etc/hadoop/conf.rollback.namenode/dfs_all_hosts.txt</value>
</property>
编辑/etc/hadoop/conf.rollback.namenode/core-site.xml
,并将net.topology.script.file.name
属性的值更改为/etc/hadoop/conf.rollback.namenode
。例如:
# Original property
<property>
<name>net.topology.script.file.name</name>
<value>/var/run/cloudera-scm-agent/process/63-hdfs-NAMENODE/topology.py</value>
</property>
# New property
<property>
<name>net.topology.script.file.name</name>
<value>/etc/hadoop/conf.rollback.namenode/topology.py</value>
</property>
编辑/etc/hadoop/conf.rollback.namenode/topology.py
文件,并将MAP_FILE
的值更改为/etc/hadoop/conf.rollback.namenode
。例如:
MAP_FILE = '/etc/hadoop/conf.rollback.namenode/topology.map'
(仅在支持tls的集群)运行以下命令:
sudo -u hdfs kinit hdfs/<NameNode Host name> -l 7d -kt /etc/hadoop/conf.rollback.namenode/hdfs.keytab
运行以下命令:
sudo -u hdfs hdfs --config /etc/hadoop/conf.rollback.namenode namenode -rollback
使用Cloudera管理器重新启动namenode和JournalNodes:
回滚的datanode
使用升级CDH之前创建的DataNode回滚目录(/etc/hadoop/conf.rollback.datanode
)在所有DataNode主机上执行以下步骤:
(仅启用了TLS的集群)编辑所有DataNode主机(位于临时回滚目录中)上的/etc/hadoop/conf.rollback.dataNode /ssl-server.xml
文件,并更新密钥库密码(ssl.server.keystore.password
和实际密码的ssl.server.keystore.keypassword
)。
密码的值如下:
<property>
<name>ssl.server.keystore.password</name>
<value>********</value>
</property>
<property>
<name>ssl.server.keystore.keypassword</name>
<value>********</value>
</property>
(TLS only)编辑/etc ./hadoop.conf.rollback.datanode/ssl-server.xml
文件并删除hadoop.security.credential.provider.path
属性。
编辑/etc/hadoop/conf.rollback.datanode/hdfs-site.xml
文件并删除dfs.datanode.max.locked.memory
属性。
运行以下命令:
cd /etc/hadoop/conf.rollback.datanode
sudo -u hdfs hdfs --config /etc/hadoop/conf.rollback.datanode datanode -rollback
回滚datanode之后,通过键入Control-C终止控制台会话。
如果启用了HDFS的高可用性,则重新启动HDFS服务。在Cloudera Manager管理控制台,转到HDFS服务并选择Actions > Restart
如果HDFS没有启用高可用性,使用Cloudera Manager管理控制台重新启动所有的namenode和datanode。
如果HDFS没有启用高可用性,则回滚Secondary NameNode
(Clusters with TLS enabled only) 在所有secondary NameNode主机(位于临时回滚目录中)上编辑/etc.hadoop/ conf.rollback.secondarynamenode/ssl-server.xml
文件,并用实际的明文密码更新密钥存储库密码。
密码的值如下:
<property>
<name>ssl.server.keystore.password</name>
<value>********</value>
</property>
<property>
<name>ssl.server.keystore.keypassword</name>
<value>********</value>
</property>
(TLS only) 编辑/etc/hadoop/conf.rollback.secondarynamenode/ssl-server.xml
文件,并删除hadoop.security.credential.provider.path
属性。
登录到secondary NameNode主机并运行以下命令:
rm -rf /dfs/snn/*
cd /etc/hadoop/conf.rollback.secondarynamenode/
sudo -u hdfs hdfs --config /etc/hadoop/conf.rollback.secondarynamenode secondarynamenode -format
重新启动HDFS服务。打开Cloudera Manager管理控制台,转到HDFS服务页面,选择Actions > Restart。
Restart命令页显示重启的进程。在继续之前,等待页面显示成功重启的服务消息。
重新启动密钥管理服务器。打开Cloudera Manager管理控制台,进入KMS service页面,选择Actions > Start。
重启HBase服务。打开Cloudera Manager管理控制台,转到HBase服务页面,选择Actions > Start。
如果您在启动HBase时遇到错误,请删除ZooKeeper中的znode,然后再次启动HBase:
在Cloudera管理器中,查找zookeper.znode.parent的值。默认值是/hbase。
在任何HBase网关主机上运行以下命令,连接到ZooKeeper集合:
zookeeper-client -server zookeeper_ensemble
要找到zookeeper_ensemble使用的值,请打开HBase网关主机上的d的/etc/hbase/conf.cloudera.
使用hbase.zookeeper.quorum
的值。
请注意
如果已经部署了安全集群,则必须使用客户机
jaas.conf
文件连接到ZooKeeper。您可以在HBase进程目录(/var/run/cloudera-scm-agent/process/
)中找到这样的文件。通过在ZooKeeper客户端运行以下命令,使用JVM标志指定jaas.conf
:CLIENT_JVMFLAGS= "-Djava.security.auth.login.config=/var/run/cloudera-scm- agent/process/HBase_process_directory/jaas.conf" zookeeper-client -server <zookeeper_ensemble>
将打开ZooKeeper命令行界面。
输入以下命令:
rmr /hbase
从cdh5备份中恢复以下数据库:
备份和恢复数据库的步骤取决于您为集群选择的数据库供应商和版本,这超出了本文的范围。
重要的
将数据库恢复到您进行备份时的确切状态。不要合并在后续升级过程中可能发生的任何更改。
有关更多信息,请参阅以下供应商资源:
启动HDFS, Zookeeper和Sentry服务。
通过运行以下命令在Zookeeper中重新初始化配置元数据:
export ZKCLI_JVM_FLAGS=“-Djava.security.auth.login.config=~/solr-jaas.conf -DzkACLProvider=org.apache.solr.common.cloud.ConfigAwareSaslZkACLProvider”
sudo -u solr mkdir /tmp/c5-config-backup
sudo -u solr chmod 755 /tmp/c5-config-backup
sudo -u solr hdfs dfs -copyToLocal /user/solr/upgrade_backup/zk_backup/* /tmp/c5-config-backup
/opt/cloudera/cm/solr-upgrade/solr-rollback.sh zk-meta -c /tmp/c5-config-backup
在本地文件系统中重新初始化配置元数据:
在每个配置了SOLR_SERVER角色的主机上,运行以下命令:
rm -rf /*
的值是通过名为“Solr数据目录”的CM参数配置的(默认为/var/lib/solr
)。
检查
目录中的子目录(其中
是CM中Solr的“升级备份目录”配置参数中配置的值)。每个子目录:
子目录名指的是在Cloudera Manager中特定主机上的Solr服务器的内部role_id
。通过查询Cloudera管理器数据库来识别相应的主机名。要找到role_id
:
solr/upgrade_backup/localfs_backup
文件。role_id在这个文件中。将此子目录的内容复制到CM中的“Solr Data Directory”参数指定的位置。这个参数的默认值是/var/lib/solr
登录到主机H1。
运行以下命令:
sudo -u solr hdfs dfs -copyToLocal /user/solr/upgrade_backup/localfs_backup/<role_id> /var/lib/solr
启动Solr服务。
从备份中恢复app.reg文件:
Parcel installations
rm -rf /opt/cloudera/parcels/CDH/lib/hue/app.reg
cp -rp app.reg_cm5_cdh5_backup /opt/cloudera/parcels/CDH/lib/hue/app.reg
Package Installations
rm -rf /usr/lib/hue/app.reg
cp -rp app.reg_cm5_cdh5_backup /usr/lib/hue/app.reg
运行Kafka的CDH 6集群可以回滚到以前的CDH5/CDK版本,只要inter.broker.protocol.version
和log.message.format.version
属性未设置为新版本或未从配置中删除。
使用Cloudera管理器执行回滚:
升级到cdh6。x要求您在升级之前删除Sqoop 2服务。回滚Sqoop 2服务:
使用Cloudera管理器添加Sqoop 2服务。
从备份中恢复Sqoop 2数据库。有关详细信息,请参阅数据库文档。
如果您没有为Sqoop 2使用默认的嵌入式Derby数据库,那么恢复为Sqoop 2配置的数据库。否则,从备份中恢复Sqoop 2 metastore目录的repository子目录。这个位置是用Sqoop 2服务器转移目录属性指定的。默认位置是/var/lib/sqoop2
对于这个默认位置,Derby数据库文件位于/var/lib/sqoop2/repository
中。
在Home > Status选项卡上,单击集群名称的右侧,并选择Restart。
单击下一个屏幕中出现的Restart进行确认。如果您启用了HDFS的高可用性,那么可以选择滚动重启,而不是最小化集群停机时间。命令详细信息窗口显示停止服务的进度。
当所有服务都成功启动时,任务就完成了,您可以关闭命令详细信息窗口。
如果您正在回滚任何加密组件(密钥托管服务器、密钥托管KMS、HSM KMS、密钥HSM或导航器加密),请首先参考:
请注意
如果回滚多个加密产品组件,建议从密钥受托人服务器开始。
要回滚密钥受托人服务器,将当前使用的包(例如,版本6.0.0的包)替换为您希望回滚到的版本的包(例如,版本5.14.0)。有关使用包裹的详细说明,请参阅包裹。
回滚秘钥HSM:
安装您希望回滚到的Navigator密钥HSM版本
使用yum安装导航键HSM包:
sudo yum downgrade keytrustee-keyhsm
默认情况下,Cloudera Navigator密钥HSM安装在/usr/share/keytrustee-server-keyhsm
目录中。
重命名之前创建的配置文件
对于密钥HSM主版本回滚,之前创建的配置文件不使用HSM和密钥托管服务器进行身份验证,因此必须通过重新执行设置和信任命令重新创建这些文件。首先,导航到关键的HSM安装目录并重命名applications.properties
, keystore
, h和truststore
文件:
cd /usr/share/keytrustee-server-keyhsm/
mv application.properties application.properties.bak
mv keystore keystore.bak
mv truststore truststore.bak
初始化秘钥HSM
与目标HSM分布名称一起运行service keyhsm setup
命令:
sudo service keyhsm setup [keysecure|thales|luna]
更多细节,参考初始化HSM
在关键HSM和关键受托服务器之间建立信任
完成回滚步骤后,您的集群将使用Cloudera Manager 6来管理CDH 5集群。你可以继续使用Cloudera Manager 6来管理你的CDH 5集群,或者你可以通过以下步骤降级到Cloudera Manager 5:
停止Cloudera管理服务。
停止Cloudera管理器服务器。
RHEL 7, SLES 12, Debian 8, Ubuntu 16.04 and higher
sudo systemctl stop cloudera-scm-server
RHEL 5 or 6, SLES 11, Debian 6 or 7, Ubuntu 12.04 or 14.04
sudo service cloudera-scm-server stop
硬阻止Cloudera经理代理。在所有主机上运行以下命令
RHEL 7, SLES 12, Debian 8, Ubuntu 16.04 and higher
sudo systemctl stop cloudera-scm-supervisord.service
RHEL 5 or 6, SLES 11, Debian 6 or 7, Ubuntu 12.04 or 14.04
sudo service cloudera-scm-agent hard_stop
备份存储库目录。您可以使用以下命令创建一个顶级备份目录和一个环境变量来引用该目录。您还可以在以下备份命令中替换另一个目录路径:
export CM_BACKUP_DIR="`date +%F`-CM"
mkdir -p $CM_BACKUP_DIR
备份现有的存储库目录
RHEL / CentOS
sudo -E tar -cf $CM_BACKUP_DIR/repository.tar /etc/yum.repos.d
SLES
sudo -E tar -cf $CM_BACKUP_DIR/repository.tar /etc/zypp/repos.d
Debian / Ubuntu
sudo -E tar -cf $CM_BACKUP_DIR/repository.tar /etc/apt/sources.list.d
从升级到Cloudera Manager 6.x之前的备份中复制存储库目录。
rm -rf /etc/yum.repos.d/*
cp -rp /etc/yum.repos.d_cm5cdh5/* /etc/yum.repos.d/
在所有主机上运行以下命令:
Operating System | Command |
---|---|
RHEL | sudo yum remove cloudera-manager-daemons cloudera-manager-agent``sudo yum clean all sudo yum install cloudera-manager-agent |
SLES | sudo zypper remove cloudera-manager-daemons cloudera-manager-agent``sudo zypper refresh -s sudo zypper install cloudera-manager-agent |
Ubuntu or Debian | sudo apt-get purge cloudera-manager-daemons cloudera-manager-agent``sudo apt-get update sudo apt-get install cloudera-manager-agent |
在Cloudera Manager服务器主机上运行以下命令
Operating System | Command |
---|---|
RHEL | sudo yum remove cloudera-manager-server``sudo yum install cloudera-manager-server |
SLES | sudo zypper remove cloudera-manager-server``sudo zypper install cloudera-manager-server |
Ubuntu or Debian | sudo apt-get purge cloudera-manager-server``sudo apt-get install cloudera-manager-server |
从升级到Cloudera Manager 6之前的备份中恢复Cloudera Manager数据库。请参阅数据库供应商提供的过程。
这些数据库包括:
下面是一个示例命令来恢复MySQL数据库:
mysql -u username -ppassword --host=hostname cm < backup.sql
使用Cloudera Manager 5的备份。x升级到Cloudera Manager之前拍的照片x表示以下步骤:
如果您使用备份命令提供的备份Cloudera管理器,提取您创建的Cloudera管理器5备份档案:
tar -xf CM5CDH5/cloudera-scm-agent.tar -C CM5CDH5/
tar -xf CM5CDH5/cloudera-scm-server.tar -C CM5CDH5/
在配置运行事件服务器角色的主机上,从Cloudera Manager 5备份恢复事件服务器目录。
rm -rf /var/lib/cloudera-scm-eventserver/*
cp -rp /var/lib/cloudera-scm-eventserver_cm5cdh5/* /var/lib/cloudera-scm-eventserver/
删除代理运行时状态。在所有主机上运行以下命令
rm -rf /var/run/cloudera-scm-agent /var/lib/cloudera-scm-agent/response.avro
在运行服务监视器的主机上,恢复服务监视器目录
rm -rf /var/lib/cloudera-service-monitor/*
cp -rp /var/lib/cloudera-service-monitor_cm5cdh5/* /var/lib/cloudera-service-monitor/
在运行主机监视器的主机上,恢复主机监视器目录:
rm -rf /var/lib/cloudera-host-monitor/*
cp -rp /var/lib/cloudera-host-monitor_cm5cdh5/* /var/lib/cloudera-host-monitor/
从CM5/CDH 5备份中恢复Cloudera Navigator Solr存储目录。
rm -rf /var/lib/cloudera-scm-navigator/*
cp -rp /var/lib/cloudera-scm-navigator_cm5cdh5/* /var/lib/cloudera-scm-navigator/
在Cloudera Manager服务器上,恢复/etc/ Cloudera -scm- Server /db.properties
文件
rm -rf /etc/cloudera-scm-server/db.properties
cp -rp cm5cdh5/etc/cloudera-scm-server/db.properties /etc/cloudera-scm-server/db.properties
集群中的每个主机上,从备份中恢复/etc/cloudera-scm-agent/config.ini文件。
rm -rf /etc/cloudera-scm-agent/config.ini
cp -rp cm5cdh5/etc/cloudera-scm-agent/config.ini /etc/cloudera-scm-agent/config.ini
启动Cloudera管理器服务
RHEL 7, SLES 12, Debian 8, Ubuntu 16.04 and higher
sudo systemctl start cloudera-scm-server
If the Cloudera Manager Server starts without errors, no response displays.
RHEL 5 or 6, SLES 11, Debian 6 or 7, Ubuntu 12.04 or 14.04
sudo service cloudera-scm-server start
You should see the following:Starting cloudera-scm-server: [ OK ]
硬重启Cloudera管理器代理
RHEL 7, SLES 12, Debian 8, Ubuntu 16.04 and higher
sudo /etc/init.d/cloudera-scm-agent next_stop_hard
sudo systemctl stop cloudera-scm-agent
RHEL 5 or 6, SLES 11, Debian 6 or 7, Ubuntu 12.04 or 14.04
sudo service cloudera-scm-agent hard_restart
```
如果你已经在你想要升级到CDH6的CDH5.x的集群中部署了Sentry,Hbase,Cloudera Search 或者Spark服务,查看下面的主题已获得额外的升级步骤。
Cloudera数据科学工作台:如果您正在使用clouderan数据科学工作台,请注意,clouderan数据科学工作台并没有自动检测CDH集群的配置更改。对Cloudera数据科学工作台进行完整的重置,这样它就可以通过升级来获取任何更改。对于指令,请参阅Cloudera数据科学工作台文档中的相关已知问题。
重要通知
在升级之前,您应该审查发布notes(CDH 5发布notes或CDH 6发布说明)和您将要安装的Kudu版本的平台需求。
当升级Kudu是,推荐先停止集群中所有的kudu程序,然后再升级所有的软件,最后重启集群中的所有kudu服务。
为了提高安全性,所有人都可读的kerberos的keytab文件将默认不再接受。配置–allow_world_readable_credentials=true 来覆盖这个特性。
Kudu1.10与Kudu之前的版本是兼容的:
在Kudu1.3版本引入的安全认证特性,在Kudu1.10与1.3之前的版本之间的兼容性中产生了如下的限制:
Kudu 1.10 Java客户端库是API,与Kudu 1.9的ABI-兼容。写在Kudu 1.9上的应用程序将编译并运行到Kudu 1.10客户端库,反之亦然。
Kudu 1.10 c++客户端是API,与Kudu 1.9兼容。在Kudu 1.9客户库中编写和编译的应用程序将在不修改Kudu 1.10客户端库的情况下运行。在Kudu 1.9客户库中编写和编译的应用程序将在不修改Kudu 1.10客户端库的情况下运行。
Kudu 1.10 Python客户机与Kudu 1.9兼容。写在Kudu 1.9上的应用程序将继续与Kudu 1.10客户端运行,反之亦然。
在升级到CDH 6.2 / Kudu 1.9或更高时,如果分配了机架位置,您应该运行kudu cluster rebalance
工具,以确保您现有的表符合机架注意位置策略。
默认的Table保留时间被设置为15min到7天来灵活的支持接触较少的备份
Kudu有一个可选的特性,允许将自己的目录和Hive元数据融合(HMS)。在启用现有集群的HMS集成之前,升级Kudu或HMS目录中可能存在的任何表。参见Kudu使用Hive元数据库。
CM、Cloudera Runtime 和CDH需要在集群所有主机上安装一个支持的JDK版本,更多细节,参见下面文档:
本文的环境选择为:CentOS7
警告:
如果你从一个更低的major版本的JDK升级到JDK1.8.0或者从JDK1.6到1.7,并且你已经使用AES-256字节加密,你必须安装新的加密文件;(在一个CM部署中,你会自动安装加密文件;对于没有管理的部署,手动安装他们)。在你使用JDK1.8.0-162或更高版本的JDK中,不需要这一步。JDK1.8.0_162版本默认开启了无限制安全认证。
您还必须确保在升级期间保留Java信任存储。
对于Cloudera管理器集群的密钥库和信任库,Cloudera建议如下:
- 为每个主机创建单独的密钥存储库。每个密钥存储库都应该有一个名称,以帮助识别主机-服务器或代理的类型。密钥存储库包含私钥,应该进行密码保护。
- 创建可由整个集群使用的单个信任存储。此信任存储库包含根CA和中间CA,它们用于对TLS/SSL握手期间提供的证书进行身份验证。信任存储不需要密码保护。(有关TLS/SSL和Cloudera的信任库的更多信息,请参见理解密钥库和信任库到信任库
有几个步骤,你可以使用升级JDK:
在升级期间安装Java
如果你升级到Cloudera Manager 6.0.0或更高版本,你可以在Cloudera Manager服务器主机上手动安装JDK 1.8,然后,作为Cloudera Manager升级过程的一部分,你可以指定Cloudera Manager在其余主机上升级JDK。
请注意
Cloudera管理器只安装Oracle JDK。您可以使用以下步骤升级到OpenJDK。
手动安装Oracle JDK 1.8
您可以在所有托管主机上手动安装JDK 1.8。如果你升级到任何版本的Cloudera Manager 5.x,你必须使用这个程序。继续下一节中的步骤。
手动迁移到OpenJDK
Using AES-256 Encryption
Configuring a Custom Java Home Location
Tuning JVM Garbage Collection
重要的
手动升级Oracle JDK 1.8需要停机时间来停止和重新启动集群。
您可以在所有托管主机上手动安装Oracle JDK 1.8。如果你升级到任何版本的Cloudera Manager 5.x,您必须使用以下程序:
必须安装一个受支持的OpenJDK版本。如果您的部署使用的OpenJDK版本低于1.8.0_181,请参阅这个发布说明。
在使用OpenJDK 11时,Cloudera Manager和大多数CDH服务默认使用G1GC作为垃圾收集的方法。(Java 8使用“ConcurrentMarkSweep”(CMS)进行垃圾收集。)在使用G1GC时,垃圾收集的暂停时间更短,因此组件通常响应更快,但它们对过度使用内存更敏感。您应该监视内存使用情况,以确定内存是否过度使用。
请注意
OpenJDK 11只支持Cloudera管理器和CDH 6.3及以上版本。
当集群主机上的内存过度使用时,Cloudera管理器会提醒您。查看这些警报和调整拨款:
将显示角色实例及其内存分配的列表。描述列显示可以设置内存分配的配置属性名称。
要调整内存分配,搜索configuration属性并调整该值以减少内存的过度使用。如果主机上运行的角色没有足够的内存,则可能需要将某些角色移动到其他主机上。
在进行任何更改之后,Cloudera Manager会指出服务的配置已经失效,并提示您重新启动服务。
您可能还需要调整用于启动Java进程的Java选项。您可以使用对所有服务角色可用的Cloudera Manager配置属性添加Java启动选项。Cloudera已经为一些需要的服务提供了默认参数。您可以添加这些选项,或者完全覆盖提供的所有Java选项。有关配置G1GC的更多信息。请参阅OpenJDK文档。
如果提供默认选项,则角色配置指定单个值{JAVA_GC_ARGS}。这个值是一个占位符,用于Cloudera Manager和CDH提供的默认Java垃圾收集选项。
要修改Java选项:
登录到Cloudera Manager管理控制台。
转到您想要修改选项的服务。
选择配置选项卡。
在搜索框中输入“Java”。
找到为要修改的角色命名的Java配置选项属性。例如,在HDFS服务中,您将看到DataNode的Java配置选项和JournalNode的Java配置选项等参数。
要添加到Java选项,请在{JAVA_GC_ARGS}
占位符之前或之后输入其他选项,用空格分隔。例如:
{JAVA_GC_ARGS} -XX:MaxPermSize=512M
要替换默认的Java选项,请删除{JAVA_GC_ARGS}占位符,并用一个或多个Java选项替换它,用空格分隔。
服务现在将拥有一个过时的配置,必须重新启动。参见重新启动服务
表1 默认的Java选项
Service and Role | Default Java 8 Options | Default Java 11 Options |
---|---|---|
HDFS DataNodeHDFS NameNodeHDFS Secondary NameNode | -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled |
-XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled |
Hive Metastore ServerHiveServer 2WebHCat Server | -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled |
None, G1GC is enabled by default. |
HBase REST ServerHBase Thrift ServerHBase MasterHBase RegionServer | -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled |
None, G1GC is enabled by default. |
HBase Region Server | -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps |
-verbose:gc -Xlog:gc |
MapReduce JobTrackerMapReduce TaskTracker | -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled |
None, G1GC is enabled by default. |
Solr Server | -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled |
None, G1GC is enabled by default. |
YARN JobHistory ServerYARN NodeManagerYARN Resource Manager | -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+CMSParallelRemarkEnabled -Dlibrary.leveldbjni.path={{CMF_CONF_DIR}} |
-Dlibrary.leveldbjni.path={{CMF_CONF_DIR}} |
本主题描述将Cloudera Manager管理的主机的操作系统升级到更高版本(包括主版本和小版本)所需的额外步骤。
将操作系统升级到一个更高的版本,但在同一主要版本中,这种升级称为次要版本升级。例如,从Redhat 6.8升级到6.9。这是一个相对简单的过程,包括正确地关闭所有组件、执行操作系统升级,然后以相反的顺序重新启动所有组件。
将操作系统升级到不同的主版本称为主版本升级。例如,从Redhat 6.8升级到7.4。这是一个更为复杂的过程,而一些操作系统不支持这些升级。因此,本主题不讨论升级特定操作系统的过程。
本主题主要描述所有其他步骤,比如备份必要的文件、删除和重新安装所有必要的Cloudera企业包和包裹。
确保Cloudera管理器和CDH或Cloudera运行时的版本支持您的新操作系统。
如果您使用的是不支持的版本,请参阅升级Cloudera Manager或升级集群。
通过访问https://archive.cloudera.com或本地包存储库,确保主机能够访问新操作系统支持的Cloudera Manager服务器、守护程序包和代理包。
如果你安装了一个补丁包,确保你有相同的包或包用于新的操作系统,并已提供给Cloudera管理器。
要知道,为操作系统执行一个重大的版本升级可能是非常棘手和危险的。
本主题描述在升级操作系统之前如何备份主机上的重要文件。
创建一个备份目录.
export CM_BACKUP_DIR="`date +%F`-CM6.2.0"
echo $CM_BACKUP_DIR
mkdir -p $CM_BACKUP_DIR
备份agent目录和运行状态
sudo -E tar -cf $CM_BACKUP_DIR/cloudera-scm-agent.tar --exclude=*.sock /etc/cloudera-scm-agent /etc/default/cloudera-scm-agent /var/run/cloudera-scm-agent /var/lib/cloudera-scm-agent
备份CM服务的目录:
sudo -E tar -cf $CM_BACKUP_DIR/cloudera-scm-server.tar /etc/cloudera-scm-server /etc/default/cloudera-scm-server
请注意
建议进行备份,但对于较小的版本升级并不总是必需的。
本主题描述在Cloudera管理器管理的主机上升级操作系统之前必须执行的步骤。
登录到Cloudera Manager管理控制台。
从“所有主机”页,选择要升级的主机。Cloudera建议每次只升级一台主机。
从“操作”菜单中选择Begin Maintenance (Suppress Alerts/Decommission) 。
如果每个节点的操作系统升级过程花费的时间少于30分钟,则不需要使DataNode decommission 。
如果Cloudera Manager和CDH版本都是5.14或更高版本,你还可以选择Take DataNode Offline功能。
如果有疑问,decommission 角色。
当一个DataNode退役时,NameNode确保DataNode的每个块仍然在整个集群中可用,这是由复制因子指定的。这个过程包括小批量地复制DataNode上的块。在DataNode有几千个块的情况下,退役需要几个小时。
当一个DataNode被关闭而没有退役时:
dfs.heartbeat.interval
和dfs.heartbeat.recheck.interval
配置属性控制)。你也可以通过增加这些属性的值来加速DataNode的decommissioning :
dfs.max- reply -streams
:用于复制数据的同时流的数量。
dfs.balance.bandwidthPerSec
:每个DataNode可以用于平衡的最大带宽量,单位是字节/秒。
dfs.namenode.replication.work.multiplier.per.iteration
:需要重新启动的NameNode配置,默认为2,但可以提高到10或更高。
当NameNode通过DataNode心跳发送这样的命令列表时,这决定了在DataNode上并行开始复制的块传输总量。实际数量是通过将该值乘以集群中活动节点的总数来获得的。结果号是每个DataNode心跳要立即传输的块数。
警告
如果没有启用HDFS、HBase、MapReduce、YARN、Oozie或Sentry的高可用性,停止运行单主角色将导致该服务中断。具体来说,其他主机上的从属角色会突然停止。Cloudera建议在主机升级之前停止这些服务。
重要的
当升级属于ZooKeeper quorum一部分的主机时,请确保大多数quorum仍然可用。
硬停止Cloudera经理代理
sudo systemctl stop cloudera-scm-supervisord.service
重要的
这将要求您使用
hard_stop_confirmed
进行确认,因为这将无条件终止主机上的所有Hadoop服务(如果有的话)。
停止Cloudera管理服务。
停止Cloudera管理器服务器。
sudo systemctl stop cloudera-scm-server
如果在此主机上运行其他数据库服务器,也必须停止它们。
重要的
当此主机上没有运行Hadoop服务或Cloudera Manager角色时,您可以继续升级此主机的操作系统,请确保保持数据分区(例如,dfs.data.dir)不变。
使用你的操作系统供应商提供的操作系统升级程序(例如:RedHat或Ubuntu)下载他们的软件并执行操作系统升级。
最小所需角色:集群管理员(也由完整管理员提供)在使用Cloudera管理器管理数据中心集群时,他的特性是不可用的。
本主题描述如何在Cloudera Manager管理的主机上升级操作系统。
如果数据库服务器已停止,则必须重新启动它们。
适当的服务通常会在重新启动时自动启动。否则,根据需要启动Cloudera管理服务器和代理。
1.如果rpcbind服务没有自动启动,则启动它。
sudo service rpcbind start
2.启动Cloudera管理器代理。
sudo systemctl start cloudera-scm-agent
3.启动Cloudera管理器服务器。
sudo systemctl start cloudera-scm-server
如果您使用的是不支持的版本,请参阅升级Cloudera Manager或升级集群。
通过访问https://archive.cloudera.com或本地包存储库,确保主机能够访问新操作系统支持的Cloudera Manager服务器、守护程序包和代理包。
如果你安装了一个补丁包,确保你有相同的包或包用于新的操作系统,并已提供给Cloudera管理器。
要知道,为操作系统执行一个重大的版本升级可能是非常棘手和危险的。
本主题描述在升级操作系统之前如何备份主机上的重要文件。
创建一个备份目录.
export CM_BACKUP_DIR="`date +%F`-CM6.2.0"
echo $CM_BACKUP_DIR
mkdir -p $CM_BACKUP_DIR
备份agent目录和运行状态
sudo -E tar -cf $CM_BACKUP_DIR/cloudera-scm-agent.tar --exclude=*.sock /etc/cloudera-scm-agent /etc/default/cloudera-scm-agent /var/run/cloudera-scm-agent /var/lib/cloudera-scm-agent
备份CM服务的目录:
sudo -E tar -cf $CM_BACKUP_DIR/cloudera-scm-server.tar /etc/cloudera-scm-server /etc/default/cloudera-scm-server
请注意
建议进行备份,但对于较小的版本升级并不总是必需的。
本主题描述在Cloudera管理器管理的主机上升级操作系统之前必须执行的步骤。
登录到Cloudera Manager管理控制台。
从“所有主机”页,选择要升级的主机。Cloudera建议每次只升级一台主机。
从“操作”菜单中选择Begin Maintenance (Suppress Alerts/Decommission) 。
如果每个节点的操作系统升级过程花费的时间少于30分钟,则不需要使DataNode decommission 。
如果Cloudera Manager和CDH版本都是5.14或更高版本,你还可以选择Take DataNode Offline功能。
如果有疑问,decommission 角色。
当一个DataNode退役时,NameNode确保DataNode的每个块仍然在整个集群中可用,这是由复制因子指定的。这个过程包括小批量地复制DataNode上的块。在DataNode有几千个块的情况下,退役需要几个小时。
当一个DataNode被关闭而没有退役时:
dfs.heartbeat.interval
和dfs.heartbeat.recheck.interval
配置属性控制)。你也可以通过增加这些属性的值来加速DataNode的decommissioning :
dfs.max- reply -streams
:用于复制数据的同时流的数量。
dfs.balance.bandwidthPerSec
:每个DataNode可以用于平衡的最大带宽量,单位是字节/秒。
dfs.namenode.replication.work.multiplier.per.iteration
:需要重新启动的NameNode配置,默认为2,但可以提高到10或更高。
当NameNode通过DataNode心跳发送这样的命令列表时,这决定了在DataNode上并行开始复制的块传输总量。实际数量是通过将该值乘以集群中活动节点的总数来获得的。结果号是每个DataNode心跳要立即传输的块数。
警告
如果没有启用HDFS、HBase、MapReduce、YARN、Oozie或Sentry的高可用性,停止运行单主角色将导致该服务中断。具体来说,其他主机上的从属角色会突然停止。Cloudera建议在主机升级之前停止这些服务。
重要的
当升级属于ZooKeeper quorum一部分的主机时,请确保大多数quorum仍然可用。
硬停止Cloudera经理代理
sudo systemctl stop cloudera-scm-supervisord.service
重要的
这将要求您使用
hard_stop_confirmed
进行确认,因为这将无条件终止主机上的所有Hadoop服务(如果有的话)。
停止Cloudera管理服务。
停止Cloudera管理器服务器。
sudo systemctl stop cloudera-scm-server
如果在此主机上运行其他数据库服务器,也必须停止它们。
重要的
当此主机上没有运行Hadoop服务或Cloudera Manager角色时,您可以继续升级此主机的操作系统,请确保保持数据分区(例如,dfs.data.dir)不变。
使用你的操作系统供应商提供的操作系统升级程序(例如:RedHat或Ubuntu)下载他们的软件并执行操作系统升级。
最小所需角色:集群管理员(也由完整管理员提供)在使用Cloudera管理器管理数据中心集群时,他的特性是不可用的。
本主题描述如何在Cloudera Manager管理的主机上升级操作系统。
如果数据库服务器已停止,则必须重新启动它们。
适当的服务通常会在重新启动时自动启动。否则,根据需要启动Cloudera管理服务器和代理。
1.如果rpcbind服务没有自动启动,则启动它。
sudo service rpcbind start
2.启动Cloudera管理器代理。
sudo systemctl start cloudera-scm-agent
3.启动Cloudera管理器服务器。
sudo systemctl start cloudera-scm-server