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主機前置條件
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步操做,則不須要重啓hadoop集羣相關服務,而且不會影響hadoop集羣現有做業;若是進行二、3步操做會對集羣做業形成短暫影響,但不須要重啓hadoop集羣相關服務;
醉酒鞭名馬,少年多浮誇! 嶺南浣溪沙,嘔吐酒肆下!摯友不願放,數據玩的花!