cdh版本升级(5.14 -> 6.2)

网友投稿 257 2022-11-27

cdh版本升级(5.14 -> 6.2)

我们的Cloudera Manager和cdh版本是5.14,现在公司需要升级到cdh6.2需要先升级Cloudera Manager,然后升级cdh。

1.Cloudera Manager升级

(参考Manager6.2支持的版本

1.1备份

1.1.1备份Cloudera Manager Agent

###查看数据库信息

$ sudo 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 agent 的机器都执行以下的备份操作:

Create a top level backup directory.

$ export CM_BACKUP_DIR="`date +%F`-CM5.14" $ echo $CM_BACKUP_DIR $ mkdir -p $CM_BACKUP_DIR

Back up the Agent directory and the runtime state.

$ 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

Back up the existing repository directory.

$ sudo -E tar -cf $CM_BACKUP_DIR/repository.tar /etc/yum.repos.d

1.1.2备份Cloudera Manager Service

在安装了Service Monitor 的机器上执行:

$ sudo cp -rp /var/lib/cloudera-service-monitor /var/lib/cloudera-service-monitor-`date +%F`-CM5.14

在安装了Host Monitor 的机器上执行:

$ sudo cp -rp /var/lib/cloudera-host-monitor /var/lib/cloudera-host-monitor-`date +%F`-CM5.14

在安装了Event Server的机器上执行:

$ sudo cp -rp /var/lib/cloudera-scm-eventserver /var/lib/cloudera-scm-eventserver-`date +%F`-CM5.14

1.1.3备份 Cloudera Manager Databases

$ mysqldump --databases database_name --host=database_hostname --port=database_port -u user_name -p > $HOME/database_name-backup-`date +%F`-CM5.14.sql

1.1.2备份 Cloudera Manager Server

Create a top-level backup directory.

$ export CM_BACKUP_DIR="`date +%F`-CM5.14" $ echo $CM_BACKUP_DIR $ mkdir -p $CM_BACKUP_DIR

$ Back up the Cloudera Manager Server directories:

$ sudo -E tar -cf $CM_BACKUP_DIR/cloudera-scm-server.tar /etc/cloudera-scm-server /etc/default/cloudera-scm-server

Back up the existing repository directory.

$ sudo -E tar -cf $CM_BACKUP_DIR/repository.tar /etc/yum.repos.d

1.2升级Cloudera Manager Server

1.2.1建立软件的访问权限(替换yum源)

登陆Cloudera Manager Server节点,删除原有yum源

$ sudo rm /etc/yum.repos.d/cloudera*manager.repo*

创建新的yum源文件

$ sudo vim /etc/yum.repos.d/cloudera-manager.repo

[cloudera-manager] # Packages for Cloudera Manager name=Cloudera Manager baseurl=https://archive.cloudera.com/cm6/6.2.0/redhat6/yum/ gpgkey=https://archive.cloudera.com/cm6/6.2.0/redhat6/yum/RPM-GPG-KEY-cloudera gpgcheck=1

1.2.2安装or配置java8

在server的配置文件中配置java_home:在/etc/default/cloudera-scm-server增加JAVA_HOMEexport JAVA_HOME="/usr/java/jdk1.8.0_162"

1.2.3升级Cloudera Manager Server

1.登录Cloudera Manager Server主机。2.停止Cloudera管理服务。 (要点:此时不停止Cloudera Management Service可能会导致管理角色崩溃或Cloudera Manager Server可能无法重新启动。)步骤:

a.Log in to the Cloudera Manager Admin Console. b.Select Clusters > Cloudera Management Service. c.Select Actions > Stop. 3.停止Cloudera Manager Server. $ sudo service cloudera-scm-server stop 4.停止Cloudera Manager Agent. $ sudo service cloudera-scm-agent stop 5.升级Cloudera packages. $ sudo yum clean all $ sudo yum upgrade cloudera-manager-server cloudera-manager-daemons cloudera-manager-agent -y 6.确认下包安装好了 $ rpm -qa 'cloudera-manager-*'

7.启动Cloudera Manager Agent.

$ sudo service cloudera-scm-agent start

8.启动Cloudera Manager Server.

$ sudo service cloudera-scm-server start

启动过程中如果有问题可以参考日志文件:

$ tail -f /var/log/cloudera-scm-server/cloudera-scm-server.log $ tail -f /var/log/cloudera-scm-agent/cloudera-scm-agent.log $ tail -f / var / log / messages

9.正常的话打开cdh升级页面就可以看到升级的情况了Manager Agent

选项2:使用命令升级清除老的repo文件

$ sudo rm /etc/yum.repos.d/cloudera*manager.repo*

新建repo文件:

$ sudo vim /etc/yum.repos.d/cloudera-manager.repo

repo文件内容:

[cloudera-manager] # Packages for Cloudera Manager name=Cloudera Manager baseurl=https://archive.cloudera.com/cm6/6.2.0/redhat6/yum/ gpgkey=https://archive.cloudera.com/cm6/6.2.0/redhat6/yum/RPM-GPG-KEY-cloudera gpgcheck=1

停止Cloudera Manager agent服务

$ sudo service cloudera-scm-agent stop

升级Cloudera Manager agent

$ sudo yum clean all $ sudo yum repolist $ sudo yum upgrade cloudera-manager-daemons cloudera-manager-agent -y

等到所以机器都完成了之后,每个agent节点执行

$ sudo service cloudera-scm-agent start

然后,启动Cloudera Management Service

到此就完成了Cloudera Manager的升级,后面进行cdh的升级

如果升级失败,需要还原,可以参考官方的步骤:sudo -u hdfs hdfs fsck / -includeSnapshots $ sudo -u hdfs hdfs dfsadmin -report

检查hbase表中的一致性:$ sudo -u hdfs hbase hbck如果使用了kudu,检查kudu:

$ sudo -u kudu kudu cluster ksck

以下服务在6.0.0中已经没有了,升级之前,需要停止并且删除这些服务AccumuloSqoop 2MapReduce 1Spark 1.6Record Service

2.2备份cdh

以下CDH组件不需要备份:·MapReduce·YARN·Spark·Pig·Impala

升级CDH前完成以下备份的步骤 1.Back Up Databases 我们使用mysql,所以以mysq为例1)如果尚未停止,请停止服务。如果Cloudera Manager指示存在依赖服务,则还要停止依赖服务。

2)备份各个服务(Sqoop, Oozie, Hue,Hive Metastore ,Sentry)的数据库。替换数据库名称,主机名,端口,用户名和备份目录路径,然后运行以下命令:

$ mysqldump --databases database_name --host = database_hostname --port = database_port -u database_username -p> backup_directory_path / database_name -backup -`date +%F`-CDH 5.14 .sql

2.Back Up ZooKeeper 在每台zookeeper节点,备份cdh中配置的zookeeper的数据存储目录,如

$ sudo cp -rp /var/lib/zookeeper/ /var/lib/zookeeper-backup-`date +%F`CM-CDH5.14

3.Back Up HDFS (命令中的数据路径根据cdh中实际配置更改)

a.备份journal数据,在每台JournalNode上执行

$ sudo cp -rp /data/dfs/jn /data/dfs/jn-CM-CDH5.14

b.备份每台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.rollback.namenode/log4j.properties /etc/hadoop/conf.rollback.namenode/

这些命令创建临时回滚目录。如果稍后需要回滚到CDH 5.x,则回滚过程要求您修改此目录中的文件。

c.备份每台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/log4j.properties /etc/hadoop/conf.rollback.datanode/

4.Back Up Key Trustee Server and Clients 服务没有使用 5.Back Up HSM KMS 服务没有使用 6.Back Up Navigator Encrypt 服务没有使用 7.Back Up HBase 由于回滚过程还会回退HDFS,因此HBase中的数据也会回滚。此外,存储在ZooKeeper中的HBase元数据将作为ZooKeeper回滚过程的一部分进行恢复。 8.Back Up Search 服务没有使用 9.Back Up Sqoop 2 服务没有使用 10.Back Up Hue 在运行Hue Server角色的所有主机上,备份app注册表文件

$ mkdir -p /opt/cloudera/parcels_backup $ cp -rp /opt/cloudera/parcels/CDH/lib/hue/app.reg /opt/cloudera/parcels_backup/app.reg-CM-CDH5.14

2.3服务更改:

hue:

对于centos6版本的系统:需要在hue的节点安装python2.7Enable the Software Collections Library:

$ sudo yum install centos-release-scl

$ Install the Software Collections utilities:

$ sudo yum install scl-utils

$ Install Python 2.7:

$ sudo yum install python27

Verify that Python 2.7 is installed:

$ source /opt/rh/python27/enable $ python --version

hbase:

1.HBase 2.0 不支持PREFIX_TREE数据块编码,升级前需要先删除,否则hbase2.0无法启动如果你已经安装了CDH6.那么通过运行以下工具来确保所有表或快照都不使用PREFIX_TREE数据块编码:

$ hbase pre-upgrade validate-dbe $ hbase pre-upgrade validate-hfile

2.升级协处理器类外部协处理器不会自动升级。有两种方法可以处理协处理器升级:在继续升级之前,请手动升级协处理器jar。暂时取消协处理器的设置并继续升级。手动升级后,可以重置它们。

尝试在不升级协处理器jar的情况下进行升级可能会导致不可预测的行为,例如HBase角色启动失败,HBase角色崩溃,甚至数据损坏。

如果您已经安装了CDH 6,则可以通过运行来确保您的协处理器与升级兼容 hbase pre-upgrade validate-cp 工具。

2.4升级集群

注意事项

当使用Cloudera Manager Backup and Disaster Recovery (BDR)将集群从Cloudera Manager 5.13或更低版本升级到CDH 6.0或更高版本时,使用Cloudera Manager Backup and Disaster Recovery (BDR)备份数据将不起作用。用于执行升级的次要版本的Cloudera Manager必须等于或大于CDH次要版本。要升级Cloudera Manager

注意:使用滚动重新启动(仅限次要升级)升级CDH时:自动故障转移不会影响滚动重新启动操作。升级完成后,如果当前正在运行MapReduce或Spark作业,请不要删除旧的块。这些作业仍使用旧的块,必须重新启动才能使用新升级的块。确保Oozie工作是幂等的。不要使用Oozie Shell Actions来运行与Hadoop相关的命令。不支持滚动升级Spark Streaming作业。升级完成后重新启动流作业,以便开始使用新部署的版本。必须将运行时库打包为Spark应用程序的一部分。您必须使用分布式缓存从客户端网关计算机传播作业配置文件。不要构建包含第三方依赖项或CDH类的“超级”或“胖”JAR文件,因为这些文件可能与Yarn,Oozie和其他服务自动添加到CLASSPATH的类冲突。在不捆绑CDH JAR的情况下构建Spark应用程序。

2.4.1备份cloudera manager

在cloudera manager升级之前我们备份了一次,在升级之后还需要备份一次。

1.查看数据库信息

$ 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

2.备份 Cloudera Manager Agent

在每台agent节点上执行:

创建备份目录 $ export CM_BACKUP_DIR="`date +%F`-CM5.14" $ 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 备份当前repo目录 $ sudo -E tar -cf $CM_BACKUP_DIR/repository.tar /etc/yum.repos.d 备份Cloudera Management Service在Service Monitor节点执行 $ sudo cp -rp /var/lib/cloudera-service-monitor /var/lib/cloudera-service-monitor-`date +%F`-CM5.14 在Host Monitor节点上执行 $ sudo cp -rp /var/lib/cloudera-host-monitor /var/lib/cloudera-host-monitor-`date +%F`-CM5.14 在Event Server节点上执行 $ sudo cp -rp /var/lib/cloudera-scm-eventserver /var/lib/cloudera-scm-eventserver-`date +%F`-CM5.14 3.停止Cloudera Manager Server & Cloudera Management Service 在CDH管理界面中停止Cloudera Management Service,选择:Clusters->Cloudera Management Service.Actions > Stop.停止 Cloudera Manager Server: $ sudo service cloudera-scm-server stop 4.备份Cloudera Manager数据库 $ mysqldump --databases database_name --host=database_hostname --port=database_port -u user_name -p > $HOME/database_name-backup-`date +%F`-CM5.14.sql 数据库信息为刚才第一步中查看文件中获取的信息 5.备份Cloudera Manager Server 在Cloudera Manager Server节点执行:1.创建一个备份目录: $ export CM_BACKUP_DIR="`date +%F`-CM5.14" $ echo $CM_BACKUP_DIR $ mkdir -p $CM_BACKUP_DIR 2.备份 Cloudera Manager Server的目录 $ sudo -E tar -cf $CM_BACKUP_DIR/cloudera-scm-server.tar /etc/cloudera-scm-server /etc/default/cloudera-scm-server 3.备份当前repo目录4. $ sudo -E tar -cf $CM_BACKUP_DIR/repository.tar /etc/yum.repos.d

2.4.2进入维护模式

要在升级过程中避免不必要的警报,请在开始升级之前在群集上进入维护模式。 进入维护模式会停止发送电子邮件警报和SNMP陷阱,但不会停止检查和配置验证。完成升级后,请务必退出维护模式以重新启用Cloudera Manager警报。

2.4.3完成升级前的迁移步骤

重要说明:不要启动选中所有NodeManager。

hive

查询语法,DDL语法和Hive API都有变化。在升级之前,您可能需要在应用程序工作负载中编辑HiveQL代码。

sentry如果群集使用Sentry策略文件授权,则必须先将策略文件迁移到数据库支持的Sentry服务,然后再升级到CDH 6。 spark如果群集使用Spark或Spark Standalone,则必须执行几个步骤才能确保安装了正确的版本。删除spark standalone升级后,如果安装了spark2,则spark2-submit被替换为spark-submit,需要在提交作业之前替换提交作业的命令

2.4.4运行Hue文档清理

如果群集使用Hue,请执行以下步骤(维护版本不需要)。这些步骤清理Hue使用的数据库表,可以帮助提高升级后的性能。1.备份Hue数据库。2.连接到Hue数据库。3.检查desktop_document,desktop_document2,oozie_job,beeswax_session,beeswax_savedquery和beeswax_queryhistory表的大小以获得参考点。如果其中任何行超过10万行,请运行清理。

2.4.5下载和分发包裹

StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.原因是log4j.xml没有配置导致异常信息无法显示,同样考一份log4j.xml的模版放到/opt/cloudera/parcels/CDH/lib/oozie/libtools目录下即可。

2.4.7升级完成之后的迁移

1.spark

升级到CDH 6后,可能配置了多个Spark服务,每个服务都有自己的一组配置,包括事件日志位置。确定要保留哪个服务,然后手动合并这两个服务。 用于在CDH 5中提交Spark 2作业的命令(spark2-submit)在CDH 6中删除,替换为 spark-submit。在具有内置Spark 1.6服务和Spark 2服务的CDH 5集群中,spark-submit 与Spark 1.6服务一起使用,和spark2-submit与Spark 2服务一起使用。升级到CDH 6后,spark-submit 使用CDH内置的Spark 2服务, spark2-submit不再起作用。确保使用这些命令更新提交Spark作业的任何工作流。 通过执行以下步骤手动合并Spark服务:1.将所有相关配置从要删除的服务复制到您要保留的服务。要查看和编辑配置:a.在Cloudera Manager Admin Console中,转到要删除的Spark服务。b.单击“ 配置”选项卡。c.记录配置。d.转到您要保留的Spark服务并复制配置。e.单击保存更改。要保留历史事件日志:确定要删除的服务的事件日志的位置:在Cloudera Manager Admin Console中,转到要删除的Spark服务。单击“ 配置”选项卡。搜索:spark.eventLog.dir注意路径。登录到群集主机并运行以下命令:hadoop fs -mv / * /。使用Cloudera Manager,停止并删除您选择删除的Spark服务重新启动剩余的Spark服务:单击Spark服务旁边的下拉箭头,然后选择“ 重新启动”。 2.impala impala主要用于即时查询,不用于线上任务,所以重要性没有那么高,参考官网https://cloudera.com/documentation/enterprise/upgrade/topics/impala_upgrading.html即可。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java详解线上内存暴涨问题定位和解决方案
下一篇:你知道Android进程与线程的概念?
相关文章

 发表评论

暂时没有评论,来抢沙发吧~