0007-如何遷移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/[email protected]
HTTP/[email protected]
….
zookeeper/[email protected]
[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遷移,需要滿足如下條件:
- 新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集群相關服務;
醉酒鞭名馬,少年多浮誇! 嶺南浣溪沙,嘔吐酒肆下!摯友不肯放,數據玩的花!
溫馨提示:要看高清無碼套圖,請使用手機打開並單擊圖片放大查看。
0007-如何遷移Cloudera Manager節點