0007-如何遷移Cloudera Manager節點

1.概述java

本文檔講述如何將Cloudera Manager在Kerberos環境下遷移至新的CM節點。經過本文檔,您將學習到如下知識:mysql

1.如何遷移Cloudera Manager節點linux

2.如何遷移MySQL元數據庫sql

3.如何遷移Kerberos MIT KDCshell

文檔主要分爲如下幾步:數據庫

1.準備Cloudera Manager新節點服務器

2.MariaDB數據庫遷移(可選)oop

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主機前置條件

  1. 操做系統版本與集羣操做系統版本一致(Redhat7.2)
  2. 關閉防火牆
  3. 配置時鐘同步,根據當前集羣時鐘同步服務進行配置
  4. swap已設置爲10
  5. 關閉透明大頁面
  6. 關閉SElinux
  7. 配置/etc/hosts文件或者使用DNS服務
  8. 配置cm和os的yum源
  9. 建立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

將上述標紅部分修改成當前主機ip或者hostname

3.將kdc.conf和kadm5.acl文件拷貝至/var/kerberos/krb5kdc目錄下進行覆蓋

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

4.恢復kerberos數據庫,在krb5kdc和kadmin服務中止的狀況下進行以下操做

注意:此處須要建立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進行測試

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,配置文件內容

根據本身的配置信息對標紅部分進行修改

5.3CM備份數據導入新節點

將原CM上備份的數據拷貝到新CM節點上

經過以下命令將備份數據還原至對應目錄

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-serve

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(若是未啓用集羣則跳過此步)

經過CM管理界面啓動Cloudera Management Service

因爲作了數據庫遷移,因此須要修改hive/hue/oozie對應的數據庫配置(未作數據庫遷移可跳過此步)

進行以上修改後重啓集羣

6.遷移後集羣服務驗證

原CM的運行界面,歷史監控數據

登陸CM管理平臺,查看集羣狀態正常

遷移後能夠查看正常查看集羣的歷史監控數據

Hue訪問及操做正常

HDFS訪問及操做正常

HBase經過hue和shell正常操做

7.常見問題分析

1.問題一

問題現象:

問題緣由:

因爲cloudera-scm-agent服務於supervisord之間通訊異常致使。

解決方法:

將告警節點上的supervisord進程殺死,而後重啓agent服務

2.問題二

問題現象:

問題緣由:

因爲在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遷移,須要知足以下條件:

  1. 新CM節點的hostname與IP地址與舊CM節點一致;
  2. 若是須要遷移數據庫,則新數據庫的hostname與IP地址與原數據庫一致,且須要將原數據庫的數據導入到新庫中;
  3. 若是須要遷移Kerberos MIT KDC,則新MIT KDC所在節點與舊MIT KDC節點的hostname與IP地址一致,且須要將舊MIT KDC數據庫數據導入新MIT KDC數據庫中;

注意:若是隻作第1步操做,則不須要重啓hadoop集羣相關服務,而且不會影響hadoop集羣現有做業;若是進行二、3步操做會對集羣做業形成短暫影響,但不須要重啓hadoop集羣相關服務;

醉酒鞭名馬,少年多浮誇! 嶺南浣溪沙,嘔吐酒肆下!摯友不願放,數據玩的花!

相關文章
相關標籤/搜索