0008-如何卸載CDH(附一鍵卸載github源碼)

1.前置條件java

本文檔將介紹Cloudera Manager與CDH的卸載,並基於CDH使用parcels安裝且未配置安全(AD/LDAP, Kerberos, Data Encryption)的集羣,如下是本次測試環境,但不是本操做手冊的硬限制:node

1.操做系統版本:CENTOS6.5python

2.MySQL數據庫版本爲5.1.73mysql

3.CM版本:CM 5.11git

4.CDH版本:CDH 5.11github

5.採用root或有sudo權限用戶對集羣進行卸載web

2.用戶數據備份sql

2.1備份HDFS數據shell

  • hdfs數據備份

使用distcp進行集羣之間數據複製進行hdfs數據備份,備份操做以下:數據庫

hadoop distcp hftp://namenodeA:port/xxx/ hdfs://namenodeB/xxx

注:此命令需運行在目標集羣中執行,確保目標集羣空間足夠,以上數據目錄根據本身集羣的真實環境作相應的修改;

namenodeA:源集羣namenode節點ip地址

port:源集羣端口,默認50070

namenodeB:目標集羣namenode節點ip地址

xxx:對應hdfs的數據目錄

  • namenode節點元數據備份

登陸namenode服務器上,進行以下操做:

#進入safemode模式

[root@ip-172-31-3-217 ~]# sudo -u hdfs hadoop dfsadmin  -safemode ente

DEPRECATED: Use of this script to execute hdfs command is  deprecated.

Instead use the hdfs command for it.

Safe mode is ON

#將全部edits修改flush到fsimage

[root@ip-172-31-3-217 ~]# sudo -u hdfs hadoop dfsadmin –saveNamespace

DEPRECATED: Use of this script to execute hdfs command is  deprecated.

Instead use the hdfs command for it.

Save namespace successful

將namenode元數據備份,根據本身集羣namenode目錄進行以下操做:

[root@ip-172-31-3-217 ~]# mkdir namenode_back
[root@ip-172-31-3-217 ~]# cd namenode_back/
[root@ip-172-31-3-217 ~]# cd /dfs/nn/
#將nn目錄下全部文件壓縮至/root/namenode_back/nn_back.tar.gz目錄下
[root@ip-172-31-3-217 nn]# tar -czvf  /root/namenode_back/nn_back.tar.gz .
./
./current/
./current/fsimage
./current/fstime
./current/VERSION
./current/edits
./image/
./image/fsimage

2.2備份MySQL元數據

  • 在Mysql安裝的服務器上,執行以下操做,備份hive元數據信息

注:若是有hue,sentry,Navigator數據庫能夠一樣備份

2.3備份CDH集羣配置數據

經過Cloudera Manager提供的API接口,導出一份JSON文檔,該文檔包含Cloudera 管理器實例的配置數據,能夠經過這份JSON文檔備份或恢復Cloudera管理器的部署。

  • 備份集羣配置數據
  • 登陸到Cloudera Manager所在服務器
  • 運行以下命令:
[root@ip-172-31-3-217 ~]# curl -u admin_username:admin_pass "http://cm_server_host:7180/api/v16/cm/deployment" > path_to_file/cm-deployment.json

admin_username: 登陸到ClouderaManager的用戶名

admin_pass: 對應admin_username用戶的密碼

cm_server_host: 是ClouderaManager服務器的主機名

path_to_file: 保存配置文件的路徑

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

導出截圖:

  • 恢復集羣配置數據

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

1.首先進入Cloudera Manager管理平臺,進入以下操做

注意:若是在進行API調用操做以前未中止集羣,那麼API調用將在運行做業以前中止全部集羣服務,任何運行的做業和數據都會丟失。

2.登陸到Cloudera Manager所在的服務器

3.執行以下命令

curl --upload-file path_to_file/cm-deployment.json -u admin_uname:admin_pass http://cm_server_host:7180/api/v16/cm/deployment?deleteCurrentDeployment=true

admin_uname: 登陸到ClouderaManager的用戶名

admin_pass: 對應admin_uname用戶的密碼

cm_server_host: 是ClouderaManager服務器的主機名

path_to_file:JSON配置文件的路徑

2.4Zookeeper數據目錄備份

  • 備份全部Zookeeper服務器的數據目錄,以172.31.3.217爲例操做以下:
[root@ip-172-31-3-217 ~]# mkdir zookeeper_back

[root@ip-172-31-3-217 ~]# scp -r /var/lib/zookeeper/ /root/zookeeper_back/zookeeper_1

2.5備份用戶數據目錄

如下路徑爲Cloudera默認安裝目錄下個組件用戶數據:

/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_driver_path爲集羣環境部署時設置的目錄,根據本身環境進行調整

data_drive_path/dfs

data_drive_path/mapred

data_drive_path/yarn

如需備份相關組件數據,可參考2.4進行數據備份。

3.中止全部服務

3.1打開Cloudera Manager控制檯

3.2關閉集羣

中止CDH集羣,以下圖所示操做

點擊確認操做,以下圖所示

等待全部服務器中止操做成功,以下圖所示

3.3關閉Cloudera Management Service

中止Cloudera Manager Service,以下圖所示

點擊確認對話框,以下圖所示

等待服務中止成功,以下圖所示

4.解除並移除Parcels

在Cloudera Manager管理界面,進行以下操做

點擊上圖標識功能,進入以下界面

點擊上圖標識,選擇【僅限停用狀態】,點擊【肯定】

停用後,狀態變爲「激活」,以下圖所示

點擊「激活」旁菜單,選擇「從主機刪除」,以下圖所示

點擊確認,以下圖所示

刪除成功後顯示以下

5.刪除集羣

點擊Clouder Manager進入主頁,以下圖所示

刪除集羣,以下操做

點擊「刪除」操做,以下圖所示

刪除成功後顯示以下

6.卸載Cloudera Manager Server

6.1中止Cloudera Manager Server和數據庫

在集羣master服務器上執行以下命令

[root@ip-172-31-3-217 ~]# service cloudera-scm-server stop

#若是使用內置db postgresql須要中止該服務,沒有則忽略

[root@ip-172-31-3-217 ~]# service cloudera-scm-server-db stop

6.2卸載Cloudera Manager Server和數據庫

使用yum卸載cloudera-scm-server和cloudera-scm-server-db-2,命令以下

[root@ip-172-31-3-217 ~]# yum remove cloudera-manager-server

#若是使用內置db postgresql須要移除該服務,沒有則忽略

[root@ip-172-31-3-217 ~]# yum remove cloudera-manager-server-db-2

7.卸載Cloudera Manager Agent和Managed Software

在集羣全部的機器上進行以下操做,卸載Cloudera Manager Agent 和Managed Software。

7.1中止Cloudera Manager Agent

在全部服務器上使用以下命令中止Cloudera Manager Agent 服務

[root@ip-172-31-3-217 ~]# sudo service cloudera-scm-agent hard_stop

7.2卸載軟件

在集羣全部節點執行以下操做:

[root@ip-172-31-3-217 ~]# yum remove 'cloudera-manager-*' avro-tools crunch flume-ng hadoop-hdfs-fuse hadoop-hdfs-nfs3 hadoop-httpfs hadoop-kms hbase-solr hive-hbase hive-webhcat hue-beeswax hue-hbase hue-impala hue-pig hue-plugins hue-rdbms hue-search hue-spark hue-sqoop hue-zookeeper impala impala-shell kite llama mahout oozie pig pig-udf-datafu search sentry solr-mapreduce spark-core spark-master spark-worker spark-history-server spark-python sqoop sqoop2 whirr hue-common oozie-client solr solr-doc sqoop2-client zookeeper

7.3運行清除命令

在集羣全部節點執行以下操做:

[root@ip-172-31-3-217 ~]# yum clean all

8.移除Cloudera Manager和用戶數據

8.1殺死 Cloudera Manager和Managed進程

在集羣全部節點執行以下操做,將全部服務器的Cloudera Manager和Managed進程殺死,命令以下:

8.2移除Cloudera Manager數據

在集羣全部節點執行以下命令,刪除全部Cloudera Manager數據

umount cm_processes

rm –rf /usr/share/cmf /var/lib/cloudera* /var/cache/yum/x86_64/6/cloudera* /var/log/cloudera* /var/run/cloudera* /etc/cloudera* /usr/lib64/cmf

8.3移除Cloudera Manager Lock File

在集羣中全部節點執行以下命令,刪除Cloudera Manager Lock File

rm –rf /tmp/.scm_prepare_node.lock

8.4移除用戶數據

此步驟將永久刪除全部用戶數據。爲了備份數據,在啓動卸載過程以前,使用distcp命令將其複製到另外一個集羣中。在集羣中全部節點執行以下命令,刪除用戶全部數據:

8.5中止並移除外部數據庫

在安裝mysql的服務器上進行操做。

  • 中止mysql數據庫,操做以下:
service mysqld stop
  • 卸載mysql數據庫,操做以下
yum remove mysql*
  • 刪除mysql數據目錄,操做以下
rm –rf /var/lib/mysql

9.一鍵卸載腳本說明(GitHub地址)

  • 卸載腳本說明:

autouninstall.sh:自動卸載腳本

components.list:集羣全部安裝的組件列表

delete.list:須要刪除的目錄列表,列表中已配置大部分CDH安裝默認目錄,用戶須要對列表末尾的hdfs目錄根據本身集羣環境進行目錄進行相應調整,以下圖所示:

node.list:集羣全部節點,根據集羣環境進行節點配置

user.list:集羣全部組件安裝時所使用的用戶名

  • 腳本使用

注:腳本是在第五步操做完成後,在namenode節點進行一鍵卸載

運行截圖

源碼地址:

https://github.com/javaxsky/cdh-shell

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

相關文章
相關標籤/搜索