0609-6.1.0-如何卸載CDH6.1

1.文檔編寫目的


Fayson在兩年前的文章中介紹過CDH的卸載,參考《 》。除非你是使用Cloudera官方提供的一鍵安裝腳本安裝的CDH,否則並沒有現成的一鍵卸載的腳本供使用。

為了更好的理解CDH的卸載,這裡再次簡單介紹一下CDH的安裝,CDH的安裝分為Cloudera Manager或Agent的安裝以及CDH的Parcel的安裝,Manager和Agent我們一般是使用rpm安裝的,而CDH的安裝則使用Parcel。我們在卸載CDH的時候一般會先從Cloudera Manager裡停止集群,刪除集群,以及移除所有相關的Parcel;然後在各臺機器移除Cloudera Manager和Agent相關的rpm以及安裝的依賴包;最後刪除各臺機器上與CDH相關的目錄,要理解CDH的各個安裝目錄,可以參考Fayson之前的文章《 》。本文Fayson主要介紹如何卸載Cloudera Manager6.1以及CDH6.1。

  • 測試環境

1.Redhat7.4

2.採用root用戶操作

3.CM/CDH6.1

2.用戶數據備份

2.1.備份HDFS數據


常見的備份HDFS數據有如下辦法:

1.使用distcp將數據拷貝到另外一個Hadoop集群。

2.將數據拷貝到其他存儲設備。

3.將數據分批導出到各臺主機的各個磁盤上

以上三種方法你也可以只使用於關鍵數據,具體使用哪種方法,大家根據自己集群的規模和數據量大小可以具體選擇。

2.2.備份NameNode元數據


1.登錄到Active NameNode節點,將HDFS進入安全模式,並且將所有edits修改都flush到fsimage。

#因為集群啟用了Kerberos,所以需要使用HDFS的keytab登錄到hdfs用戶才能執行管理員相關的操作
[root@ip-172-31-6-83 ~]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: hdfs/[email protected]
Valid starting Expires Service principal
04/20/2019 22:06:23 04/21/2019 22:06:23 krbtgt/[email protected]
renew until 04/25/2019 22:06:23
You have new mail in /var/spool/mail/root
#進入safemode模式
[root@ip-172-31-6-83 ~]# hdfs dfsadmin -safemode enter
Safe mode is ON in ip-172-31-4-105.ap-southeast-1.compute.internal/172.31.4.105:8020
Safe mode is ON in ip-172-31-6-83.ap-southeast-1.compute.internal/172.31.6.83:8020

#將所有edits修改flush到fsimage
[root@ip-172-31-6-83 ~]# hdfs dfsadmin -saveNamespace
Save namespace successful for ip-172-31-4-105.ap-southeast-1.compute.internal/172.31.4.105:8020
Save namespace successful for ip-172-31-6-83.ap-southeast-1.compute.internal/172.31.6.83:8020
[root@ip-172-31-6-83 ~]#



0609-6.1.0-如何卸載CDH6.1



2.將NameNode元數據進行備份,根據自己集群NameNode目錄進行如下操作:

[root@ip-172-31-6-83 ~]# mkdir namenode_back
You have new mail in /var/spool/mail/root
[root@ip-172-31-6-83 ~]# cd namenode_back/
[root@ip-172-31-6-83 namenode_back]# tar czvf nn_bak.tar.gz /dfs/nn/*



0609-6.1.0-如何卸載CDH6.1



2.3.備份MySQL元數據


[root@ip-172-31-6-83 ~]# mkdir mysql_back
[root@ip-172-31-6-83 ~]# cd mysql_back
#-u後面是mysql用戶名,-p單引號中是用戶對應的密碼,metastore為庫名,metastore.sql為備份輸出文件
[root@ip-172-31-6-83 mysql_back]# mysqldump -uroot -p'123456' metastore > metastore.sql
[root@ip-172-31-6-83 mysql_back]# mysqldump -uroot -p'123456' cm > cm.sql
[root@ip-172-31-6-83 mysql_back]# mysqldump -uroot -p'123456' rm > rm.sql
#執行完成後,產生如下sql文件
[root@ip-172-31-6-83 mysql_back]# ll
total 49988
-rw-r--r-- 1 root root 50334369 Apr 20 22:15 cm.sql
-rw-r--r-- 1 root root 67402 Apr 20 22:15 metastore.sql
-rw-r--r-- 1 root root 781640 Apr 20 22:16 rm.sql
[root@ip-172-31-6-83 mysql_back]#



0609-6.1.0-如何卸載CDH6.1



注:如果有Hue,Sentry,Navigator數據庫可以同樣備份。

2.4.備份CDH集群配置數據


通過Cloudera Manager提供的API接口,導出一份JSON文件,該文件包含Cloudera Manager所有與部署相關的所有信息如:所有主機,集群,服務,角色,用戶,設置等等。可以通過這份JSON文件備份或恢復Cloudera Manager的整個部署。

  • 備份集群配置數據

1.登錄到Cloudera Manager所在服務器,運行如下命令:

[root@ip-172-31-6-83 mysql_back]# curl -u admin:admin "http://172.31.6.83:7180/api/v31/cm/deployment" > ./cm-deployment.json 
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 73388 0 73388 0 0 1363k 0 --:--:-- --:--:-- --:--:-- 1352k
[root@ip-172-31-6-83 mysql_back]# ll cm-deployment.json
-rw-r--r-- 1 root root 73388 Apr 20 22:36 cm-deployment.json
[root@ip-172-31-6-83 mysql_back]#



0609-6.1.0-如何卸載CDH6.1



admin: 登錄到Cloudera Manager的用戶名

admin: 對應admin_username用戶的密碼

172.31.6.83: 是Cloudera Manager服務器的主機IP

./cm-deployment.json: 保存配置文件的路徑和文件名

將上述提到的四個參數修改當前集群對應的信息即可

  • 恢復集群配置數據

注意:此功能只有Cloudera許可證才可以使用

1.進入Cloudera Manager管理平臺,停止集群服務。

0609-6.1.0-如何卸載CDH6.1


0609-6.1.0-如何卸載CDH6.1


注意:如果在進行API調用操作之前未停止集群,那麼API調用將在運行作業之前停止所有集群服務,任何運行的作業和數據都會丟失。

2.登錄到Cloudera Manager所在的服務器執行以下命令。

[root@ip-172-31-6-83 mysql_back]# curl -H "Content-Type: application/json" --upload-file ./cm-deployment.json -u admin:admin http://172.31.6.83:7180/api/v31/cm/deployment?deleteCurrentDeployment=true



0609-6.1.0-如何卸載CDH6.1



注意:卸載CDH並不需要執行這一步驟還原集群相關配置,放在這裡僅供參考。

3.記錄用戶數據目錄


在後面的章節正式開始卸載時,各個組件的用戶數據目錄會刪除。主要包括如/var/lib/flume-ng /var/lib/hadoop* /var/lib/hue /var/lib/navigator /var/lib/oozie /var/lib/solr /var/lib/sqoop* /var/lib/zookeeper data_drive_path/dfs data_drive_path/mapred data_drive_path/yarn,默認配置是在這些路徑下。但是有些時候,你可能通過Cloudera Manager重新進行了配置。如果卸載集群時需要完全刪除這些數據目錄,或者為了保證你卸載後馬上重新安裝能成功,一旦你進行了個性化配置,你需要在Cloudera Manager中仔細檢查這些目錄配置並記錄。

4.停止所有服務

4.1.停止集群服務


1.登錄到Cloudera Manager,並停止整個集群服務。


0609-6.1.0-如何卸載CDH6.1



2.點擊“停止”

0609-6.1.0-如何卸載CDH6.1


0609-6.1.0-如何卸載CDH6.1


3.等待所有服務都正常被停止。


0609-6.1.0-如何卸載CDH6.1



4.2.停止Cloudera Management Service


1.登錄到Cloudera Manager,並停止CMS服務。


0609-6.1.0-如何卸載CDH6.1



2.點擊“停止”

0609-6.1.0-如何卸載CDH6.1


0609-6.1.0-如何卸載CDH6.1


3.等待所有服務都正常被停止。


0609-6.1.0-如何卸載CDH6.1



5.停用並移除所有Parcel


1.登錄Cloudera Manager主頁,並進入Parcel頁面。

0609-6.1.0-如何卸載CDH6.1


0609-6.1.0-如何卸載CDH6.1


2.“停用”CDH6的Parcel。


0609-6.1.0-如何卸載CDH6.1



3.“從主機刪除”CDH6的Parcel

0609-6.1.0-如何卸載CDH6.1


0609-6.1.0-如何卸載CDH6.1


4.“刪除”CDH6的Parcel。

0609-6.1.0-如何卸載CDH6.1


0609-6.1.0-如何卸載CDH6.1


0609-6.1.0-如何卸載CDH6.1


注:如果你的集群中還有其他Parcel,比如Kudu,Kafka,CDSW或者Spark,你需要將上面的步驟都做一遍,即“停用”->“從集群中刪除”->“刪除”。

6.刪除集群


1.登錄到Cloudera Manager,並刪除整個集群。

0609-6.1.0-如何卸載CDH6.1


0609-6.1.0-如何卸載CDH6.1


2.刪除成功後,通過Cloudera Manager已經看不到集群。


0609-6.1.0-如何卸載CDH6.1



7.卸載Cloudera Manager Server


1.登錄到Cloudera Manager節點,然後停止CM Server服務。

[root@ip-172-31-6-83 ~]# systemctl stop cloudera-scm-server


2.移除Cloudera Manager Server相關包。

[root@ip-172-31-6-83 ~]# yum -y remove cloudera-manager-server



0609-6.1.0-如何卸載CDH6.1



8.卸載Cloudera Manager Agent和其管理的軟件


1.在所有節點停止Cloudera Manager Agent服務

[root@ip-172-31-6-83 shell]# sh ssh_do_all.sh node.list "systemctl stop supervisord"



0609-6.1.0-如何卸載CDH6.1



2.在所有節點運行清除Cloudera所管理軟件的命令。

[root@ip-172-31-6-83 shell]# sh ssh_do_all.sh node.list "yum -y remove 'cloudera-manager-*'"



0609-6.1.0-如何卸載CDH6.1



3.所有節點運行clean命令。

[root@ip-172-31-6-83 shell]# sh ssh_do_all.sh node.list "yum clean all"



0609-6.1.0-如何卸載CDH6.1



9.移除Cloudera Manager和用戶數據

9.1.Kill Cloudera Manager和相關服務的進程


1.在所有節點執行以下腳本。

for u in cloudera-scm flume hadoop hdfs hbase hive httpfs hue impala llama mapred oozie solr spark sqoop sqoop2 yarn zookeeper; 
do
sudo kill $(ps -u $u -o pid=);
done


注:如果按照前面的步驟都是正常停止CDH相關服務,該步驟可以不用執行。

9.2.移除Cloudera Manager數據


1.在所有節點執行umount命令,以下采用批量腳本執行。

[root@ip-172-31-6-83 shell]# sh ssh_do_all.sh node.list "umount cm_processes"
[root@ip-172-31-6-83 shell]# sh ssh_do_all.sh node.list "df -hl"


0609-6.1.0-如何卸載CDH6.1


0609-6.1.0-如何卸載CDH6.1


注:可能要多次執行或者要稍微等待一會才能umount成功。

1.在所有節點刪除Cloudera Manager數據。

[root@ip-172-31-6-83 shell]# sh ssh_do_all.sh node.list "rm -Rf /usr/share/cmf /var/lib/cloudera* /var/cache/yum/cloudera* /var/log/cloudera* /var/run/cloudera*"



0609-6.1.0-如何卸載CDH6.1



9.3.移除Cloudera Manager Lock文件


1.在所有節點執行刪除命令,以下采用批量腳本執行。

[root@ip-172-31-6-83 shell]# sh ssh_do_all.sh node.list "rm /tmp/.scm_prepare_node.lock"



0609-6.1.0-如何卸載CDH6.1



9.4.移除用戶數據


1.在所有節點執行刪除命令,以下采用批量腳本執行。

[root@ip-172-31-6-83 shell]# sh ssh_do_all.sh node.list "rm -rf /var/lib/flume-ng /var/lib/hadoop* /var/lib/hue /var/lib/navigator /var/lib/oozie /var/lib/solr /var/lib/sqoop* /var/lib/zookeeper /var/lib/hbase /var/lib/hive* /var/lib/impala /var/lib/llama /var/lib/sentry /var/lib/spark* /var/lib/kafka /var/lib/kudu"



0609-6.1.0-如何卸載CDH6.1



2.在所有節點執行刪除Hadoop相關數據命令,以下采用批量腳本執行。

[root@ip-172-31-6-83 shell]# sh ssh_do_all.sh node.list "rm -rf /dfs /yarn /impala"



0609-6.1.0-如何卸載CDH6.1



注:根據實際情況,該步驟每臺數據節點可能會有多個DataNode或者YARN臨時文件或者Impala臨時文件目錄,完全卸載需要都刪除。

3.在所有節點刪除/etc下的配置文件。

[root@ip-172-31-6-83 shell]# sh ssh_do_all.sh node.list "rm -rf /etc/cloudera* /etc/flume* /etc/hadoop* /etc/zookeeper* /etc/hive* /etc/hue /etc/impala /etc/sqoop* /etc/oozie /etc/hbase* /etc/kafka /etc/kudu /etc/mahout /etc/spark* /etc/llama /etc/solr /etc/sentry"



0609-6.1.0-如何卸載CDH6.1



4.在所有節點刪除/var/log下的日誌文件夾。

[root@ip-172-31-6-83 shell]# sh ssh_do_all.sh node.list "rm -rf /var/log/cloudera* /var/log/hadoop* /var/log/hbase /var/log/hive /var/log/hue* /var/log/impala* /var/log/kudu /var/log/oozie /var/log/spark* /var/log/zookeeper /var/log/kafka"



0609-6.1.0-如何卸載CDH6.1



5.在所有節點刪除/opt/cloudera下的安裝文件。

[root@ip-172-31-6-83 shell]# sh ssh_do_all.sh node.list "rm -rf /opt/cloudera*"



0609-6.1.0-如何卸載CDH6.1



6.卸載外部數據庫MySQL,並刪除相關數據。

[root@ip-172-31-6-83 ~]# systemctl stop mariadb 
[root@ip-172-31-6-83 ~]# yum -y remove maria*
[root@ip-172-31-6-83 ~]# rm -rf /var/lib/mysql*



0609-6.1.0-如何卸載CDH6.1



至此:CDH6.1卸載完畢。

參考:

https://www.cloudera.com/documentation/enterprise/latest/topics/cm_ig_uninstall_cm.html


分享到:


相關文章: