如何迁移Cloudera Manager节点

1.概述
本文档讲述如何将Cloudera Manager在Kerberos环境下迁移至新的CM节点。通过本文档,您将学习到以下知识:
1.如何迁移Cloudera Manager节点
2.如何迁移MySQL元数据库
3.如何迁移Kerberos MIT KDC

文档主要分为以下几步:
1.准备Cloudera Manager新节点
2.MariaDB数据库迁移(可选)
3.迁移Kerberos MIT KDC(可选)
4.将原CM节点数据迁移至新节点
5.迁移后集群服务验证

这篇文档将着重介绍Cloudera Manager节点迁移,并基于以下假设:
1.CDH环境已搭建并正常运行
2.旧Cloudera Manager节点包含Cloudera Manager Server(即cloudera-scm-server)服务和Cloudera Management Service服务(Alert Publisher/Event Server/Host Monitor/Reports Manager/Service Monitor)
3.集群已完成MIT Kerberos的配置,并正常使用
4.集群Hadoop服务HBase/Hive/HDFS/Hue/Kafka/Oozie/Spark/Spark2/Yarn/Zookeeper正常运行

以下是本次测试环境,但不是本操作手册的硬限制:
1.操作系统:Redhat7.2
2.CM版本:CM5.11.1
3.CDH版本:CDH5.11.1
4.采用ec2-user对集群进行部署

2.准备Cloudera Manager新节点
2.1新CM主机前置条件

操作系统版本与集群操作系统版本一致(Redhat7.2)
关闭防火墙
配置时钟同步,根据当前集群时钟同步服务进行配置
swap已设置为10
关闭透明大页面
关闭SElinux
配置/etc/hosts文件或者使用DNS服务
配置cm和os的yum源
创建mysql驱动的软链接

2.2新主机信息
新主机IP地址:172.31.18.97
新Hostname:ip-172-31-18-97.ap-southeast-1.compute.internal
1.主机操作系统版本
在这里插入图片描述
2.防火墙
在这里插入图片描述
3.时钟同步
在这里插入图片描述
4.swap信息在这里插入图片描述
5.透明大页面
在这里插入图片描述
6.SElinux信息
在这里插入图片描述
7.host信息
在这里插入图片描述
8.Cloudera Manager和OS的yum 源
在这里插入图片描述
9.在/usr/share/java目录下创建mysql驱动包软链
在这里插入图片描述
2.3安装Cloudera Manager服务


[ec2-user@ip-172-31-18-97 log]$ sudo yum  -y install cloudera-manager-server cloudera-manager-agent

在这里插入图片描述
安装完成Cloudera Manager后暂时不要启动服务。
注意:新节点的Cloudera Manager版本必须与原Cloudera Manager版本一致;节点上不要安装CDH的其它组件;

2.4安装MariaDB数据库
由于原CM节点安装有MariaDB数据库,所以在新的CM节点也安装MariaDB数据库进行数据迁移(如果不考虑数据库迁移则可以不用安装)

[ec2-user@ip-172-31-18-97  log]$ sudo yum -y install mariadb-server mariadb-devel

在这里插入图片描述
初始化MariaDB数据库

[ec2-user @  ip-172-31-18-97 log]# sudo systemctl enable mariadb
[ec2-user@ip-172-31-18-97  log]$ sudo systemctl start mariadb
[ec2-user@ip-172-31-18-97  log]$ sudo /usr/bin/mysql_secure_installation

在这里插入图片描述
3.MariaDB数据库迁移
如果不做数据库迁移可不跳过该章节
3.1备份原MariaDB数据
将需要迁移的mysql整库导出(可根据需要导出需要的库信息)


[root@ip-172-31-25-3  ec2-user]# mysqldump -u root -p -A >oldmysql.dump

在这里插入图片描述
3.2导入备份数据至新库
1.将备份文件拷贝至新mysql服务上,进行数据导入


[root@ip-172-31-18-97  ec2-user]# mysql -u root -p < oldmysql.dump

在这里插入图片描述
注意:数据导入成功后,需要在mysql client执行命令:FLUSH PRIVILEGES;

4.迁移Kerberos MIT KDC
4.1备份原Kerberos数据库

登录到主KDC服务器上,使用kdb5_util命令备份Kerberos数据库及配置文件

[ec2-user@ip-172-31-25-3  ~]$ sudo kdb5_util dump -verbose kerberosdb.dumpfile
HTTP/ip-172-31-18-97.ap-southeast-1.compute.internal@CLOUDERA.COM
HTTP/ip-172-31-19-209.ap-southeast-1.compute.internal@CLOUDERA.COM
….
zookeeper/ip-172-31-28-67.ap-southeast-1.compute.internal@CLOUDERA.COM
[ec2-user@ip-172-31-25-3  ~]$

/etc/krb5.conf
/var/kerberos/krb5kdc/kdc.conf
/var/kerberos/krb5kdc/kadm5.acl
在这里插入图片描述
4.2恢复备份数据至新库
1.在新节点安装Kerberos服务:


yum -y install  krb5-server krb5-libs krb5-auth-dialog krb5-workstation

将4.1备份的数据拷贝到新节点上,通过如下操作将数据还原到Kerberos数据库
2.修改krb5.conf文件,将该文件覆盖/etc目录下的krb5.conf


#  Configuration snippets may be placed in this directory as well
includedir  /etc/krb5.conf.d/
 
[logging]
 default = FILE:/var/log/krb5libs.log
 kdc = FILE:/var/log/krb5kdc.log
 admin_server = FILE:/var/log/kadmind.log
 
[libdefaults]
 default_realm = CLOUDERA.COM
 dns_lookup_realm = false
 ticket_lifetime = 24h
 renew_lifetime = 7d
 forwardable = true
 rdns = false
#  default_realm = EXAMPLE.COM
 #default_ccache_name = KEYRING:persistent:%{uid}
 
[realms]
# EXAMPLE.COM  = {
#  kdc = kerberos.example.com
#  admin_server = kerberos.example.com
# }
 CLOUDERA.COM = {
  kdc = ip-172-31-18-97.ap-southeast-1.compute.internal
  admin_server =  ip-172-31-18-97.ap-southeast-1.compute.internal
 }
 
[domain_realm]
# .example.com  = EXAMPLE.COM
# example.com  = EXAMPLE.COM
 .ip-172-31-18-97.ap-southeast-1.compute.internal  = CLOUDERA.COM
 ip-172-31-18-97.ap-southeast-1.compute.internal  = CLOUDERA.COM

将上述标红部分修改为当前主机ip或者hostname
3.将kdc.conf和kadm5.acl文件拷贝至/var/kerberos/krb5kdc目录下进行覆盖

[ec2-user@ip-172-31-18-97  kerberos_bak]$ sudo scp kadm5.acl kdc.conf /var/kerberos/krb5kdc/

4.恢复kerberos数据库,在krb5kdc和kadmin服务停止的情况下进行如下操作


[ec2-user@ip-172-31-18-97 kerberos_bak]$ sudo  kdb5_util create –r CLOUDERA.COM -s
Loading random data
Initializing database  '/var/kerberos/krb5kdc/principal' for realm 'CLOUDERA.COM',
master key name 'K/M@CLOUDERA.COM'
You will be prompted for the database Master  Password.
It is important that you NOT FORGET this password.
Enter KDC database master key:
Re-enter KDC database master key to verify:
[ec2-user@ip-172-31-18-97 kerberos_bak]$
[ec2-user@ip-172-31-18-97 kerberos_bak]$ sudo  kdb5_util load kerberosdb.dumpfile

注意:此处需要创建kerberos数据库,然后在做数据导入否则krb5kdc和kadmin服务不能正常启动;
启动krb5kdc和kadmin服务

[ec2-user@ip-172-31-18-97 kerberos_bak]$ sudo  systemctl restart krb5kdc
[ec2-user@ip-172-31-18-97 kerberos_bak]$ sudo  systemctl stop krb5kdc

验证Kerberos是否正常,使用导入的user_r进行测试

[ec2-user@ip-172-31-18-97 ~]$ kdestroy
[ec2-user@ip-172-31-18-97 ~]$ kinit user_r
Password for user_r@CLOUDERA.COM:
[ec2-user@ip-172-31-18-97 ~]$ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: user_r@CLOUDERA.COM
 
Valid starting        Expires              Service  principal
08/09/2017 10:10:44   08/10/2017 10:10:44   krbtgt/CLOUDERA.COM@CLOUDERA.COM
        renew  until 08/16/2017 10:10:44

在这里插入图片描述
4.3更新集群的krb5.conf配置
将KDC主服务器上的/etc/krb5.conf文件拷贝至集群中所有的节点,并验证Kerberos是否正常。
在这里插入图片描述
5.将原CM节点数据迁移至新节点
5.1备份原CM节点数据
主要备份CM的监控数据和管理信息,数据目录包括:
/var/lib/cloudera-host-monitor
/var/lib/cloudera-service-monitor
/var/lib/cloudera-scm-server
/var/lib/cloudera-scm-eventserver
/var/lib/cloudera-scm-headlamp

在这里插入图片描述
注意:将备份命令压缩传输,防止目录的属主和权限变化

5.2修改CM的数据库配置信息
修改新CM的数据库配置文件/etc/cloudera-scm-server/db.properties,配置文件内容


[root@ip-172-31-18-97 cloudera-scm-server]# sudo vim  db.properties
# Copyright (c) 2012 Cloudera, Inc. All rights  reserved.
#
# This file describes the database connection.
#
 
# The database type
# Currently 'mysql', 'postgresql' and 'oracle' are  valid databases.
com.cloudera.cmf.db.type=mysql
 
# The database host
# If a non standard port is needed, use  'hostname:port'
com.cloudera.cmf.db.host=localhost
 
# The database name
com.cloudera.cmf.db.name=cm
 
# The database user
com.cloudera.cmf.db.user=cm
 
# The database user's password
com.cloudera.cmf.db.password=123456
 
# The db setup type
# By default, it is set to INIT
# If scm-server uses Embedded DB then it is set to  EMBEDDED
# If scm-server uses External DB then it is set to  EXTERNAL
com.cloudera.cmf.db.setupType=EXTERNAL

根据自己的配置信息对标红部分进行修改
在这里插入图片描述
5.3CM备份数据导入新节点
将原CM上备份的数据拷贝到新CM节点上

在这里插入图片描述
通过如下命令将备份数据还原至对应目录

[ec2-user@ip-172-31-18-97 cmbak]$ sudo tar -zxvf  cloudera-host-monitor.tar.gz -C /var/lib/
[ec2-user@ip-172-31-18-97 cmbak]$ sudo tar -zxvf  cloudera-service-monitor.tar.gz -C /var/lib/
[ec2-user@ip-172-31-18-97 cmbak]$ sudo tar -zxvf  cloudera-scm-server.tar.gz -C /var/lib/
[ec2-user@ip-172-31-18-97 cmbak]$ sudo tar -zxvf cloudera-scm-eventserver.tar.gz  -C /var/lib/
[ec2-user@ip-172-31-18-97 cmbak]$ sudo tar -zxvf cloudera-scm-headlamp.tar.gz  -C /var/lib/

5.4更新集群所有节点的CM Server指向
修改集群所有节点上/etc/cloudera-scm-agent/config.ini文件中server_host值为新CM节点的hostname

在这里插入图片描述
5.5将原CM节点的Cloudera Management Service角色迁移至新节点
启动新CM节点的cloudera-scm-server和cloudera-scm-agent服务


[ec2-user@ip-172-31-18-97 253back]# sudo systemctl  start cloudera-scm-server
[ec2-user@ip-172-31-18-97 253back]# sudo systemctl  start cloudera-scm-agent

注意:在新CM节点上启动cloudera-scm-agent服务后,会将CM节点的信息添加到cm库的HOSTS表中,查看新CM节点对应的HOSTS_ID
登录mysql数据库将,查看cm.HOSTS表中的Cloudera Manager的host信息
在这里插入图片描述
未迁移前可以通过CM管理界面看到新CM节点是没有任何角色
在这里插入图片描述
通过如下命令,将旧CM的角色迁移至新CM节点上


update ROLES set HOST_ID=11 where NAME like 'mgmt%';

在这里插入图片描述
执行操作后,原CM节点的角色被迁移至新CM节点
在这里插入图片描述
通过CM管理界面将原CM节点从集群删除

在这里插入图片描述
在这里插入图片描述
将原CM节点删除
在这里插入图片描述
在这里插入图片描述
由于集群配置了Kerberos,则需要更新Kerberos的server,如果Kerberos未迁移则不需要考虑此步
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果集群启用Kerberos,则需要为新CM节点生成keytab(如果未启用集群则跳过此步)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由于做了数据库迁移,所以需要修改hive/hue/oozie对应的数据库配置(未做数据库迁移可跳过此步)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
进行以上修改后重启集群

6.迁移后集群服务验证
原CM的运行界面,历史监控数据

在这里插入图片描述
登录CM管理平台,查看集群状态正常
在这里插入图片描述
迁移后可以查看正常查看集群的历史监控数据
在这里插入图片描述
Hue访问及操作正常
在这里插入图片描述
HDFS访问及操作正常
在这里插入图片描述
在这里插入图片描述
HBase通过hue和shell正常操作
在这里插入图片描述
在这里插入图片描述
7.常见问题分析
1.问题一
问题现象:在这里插入图片描述
问题原因:
由于cloudera-scm-agent服务于supervisord之间通信异常导致。
解决方法:
将告警节点上的supervisord进程杀死,然后重启agent服务


[root@ip-172-31-28-37  cloudera-scm-agent]# ps -ef |grep supervisord
root     26910      1  0 07:02 ?        00:00:00  /usr/lib64/cmf/agent/build/env/bin/python  /usr/lib64/cmf/agent/build/env/bin/supervisord
root     28806 28748  0 07:03 pts/0    00:00:00 grep --color=auto supervisord
[root@ip-172-31-28-37  cloudera-scm-agent]# kill -9 26910
 [root@ip-172-31-28-37 cloudera-scm-agent]#  systemctl restart cloudera-scm-agent

2.问题二
问题现象:
在这里插入图片描述
问题原因:
由于在CM迁移时,未迁移/opt/cloudera/csd目录导致。
解决方法:
将原CM节点上/opt/cloudera/csd目录拷贝至新CM节点对应的目录
问题原因:
由于在CM迁移时,未迁移/opt/cloudera/csd目录导致。
解决方法:
将原CM节点上/opt/cloudera/csd目录拷贝至新CM节点对应的目录
在这里插入图片描述
重启cloudera-scm-server服务

[ec2-user@ip-172-31-18-97 253back]# sudo systemctl  start cloudera-scm-server

3.问题三
问题现象:
Service Monitor启动失败,异常信息如下

在这里插入图片描述
问题原因:
由于CM迁移时,/var/lib/cloudera-service-monitor目录的文件缺失导致
解决方法:
将/var/lib/cloudera-service-monitor目录的数据重新覆盖
4.问题四
现象描述:
在集群迁移完成后,集群启动后做了高可用服务的NameNode和ResourceManager服务均不能正常显示主备节点,HDFS的汇总信息无法正常显示
问题原因:
由于集群配置了kerberos,新CM节点未生成keytab导致
解决方法:
将CM节点的所有服务停掉,然后生成该主机的keytab
在这里插入图片描述
8.扩展
如何在不停止集群服务的情况下进行Cloudera Manager迁移,需要满足如下条件:
新CM节点的hostname与IP地址与旧CM节点一致;
如果需要迁移数据库,则新数据库的hostname与IP地址与原数据库一致,且需要将原数据库的数据导入到新库中;
如果需要迁移Kerberos MIT KDC,则新MIT KDC所在节点与旧MIT KDC节点的hostname与IP地址一致,且需要将旧MIT KDC数据库数据导入新MIT KDC数据库中;
注意:如果只做第1步操作,则不需要重启hadoop集群相关服务,并且不会影响hadoop集群现有作业;如果进行2、3步操作会对集群作业造成短暂影响,但不需要重启hadoop集群相关服务;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装Cloudera Manager Web需要先完成Cloudera Manager的安装。以下是在Hadoop集群上安装Cloudera Manager Web的步骤: 1. 首先,按照之前提到的步骤安装Cloudera Manager Server和Agent。 2. 在Cloudera Manager Server所在的节点上,使用以下命令启动Cloudera Manager Server: ``` sudo service cloudera-scm-server start ``` 3. 确保Cloudera Manager Server已成功启动后,打开浏览器并输入以下地址: ``` http://<hostname>:7180 ``` 其,`<hostname>`是您的Cloudera Manager Server所在节点的主机名或IP地址。 4. 您将看到Cloudera Manager的欢迎页面。按照提示,选择适当的语言和许可证类型,然后单击"Continue"按钮。 5. 在接下来的页面上,提供必要的信息,例如数据库类型、数据库连接信息和管理员凭据。对于数据库类型,您可以选择使用内置的SQLite数据库或外部MySQL数据库。根据您的选择,填写相应的数据库连接信息。 6. 完成数据库相关信息的填写后,单击"Continue"按钮。 7. Cloudera Manager将验证数据库连接并执行一些初始化步骤。这可能需要一些时间,请耐心等待。 8. 在验证和初始化完成后,您将被要求设置Cloudera Manager管理员账号的凭据。填写所需的信息并单击"Continue"按钮。 9. Cloudera Manager将继续进行配置和部署步骤。这可能需要一些时间,请耐心等待。 10. 完成配置和部署后,您将看到一个"Success"页面。单击"Continue to login"按钮以登录Cloudera Manager Web界面。 11. 使用之前设置的管理员账号凭据登录Cloudera Manager Web界面。 安装完成后,您将能够使用Cloudera Manager Web界面来管理和监控您的Hadoop集群。注意,安装Cloudera Manager Web时确保您的节点满足硬件和软件要求,并按照官方文档提供的指导进行操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值