如何卸载CDH(附一键卸载github源码)

1.前置条件
本文档将介绍Cloudera Manager与CDH的卸载,并基于CDH使用parcels安装且未配置安全(AD/LDAP, Kerberos, Data Encryption)的集群,以下是本次测试环境,但不是本操作手册的硬限制:
1.操作系统版本:CENTOS6.5
2.MySQL数据库版本为5.1.73
3.CM版本:CM 5.11
4.CDH版本:CDH 5.11
5.采用root或有sudo权限用户对集群进行卸载

2.用户数据备份
2.1备份HDFS数据

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 enter
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元数据信息


[root@ip-172-31-3-217 ~]# mkdir mysql_back
[root@ip-172-31-3-217 ~]# cd mysql_back
#-u后面是mysql用户名,-p单引号中是用户对应的密码,metastore为库名,metastore.sql为备份输出文件
[root@ip-172-31-3-217 mysql_back]# mysqldump -uroot  -p'mysql' metastore > metastore.sql
[root@ip-172-31-3-217 mysql_back]# mysqldump -uroot  -p'mysql' cm > cm.sql
[root@ip-172-31-3-217 mysql_back]# mysqldump -uroot  -p'mysql' am > am.sql
[root@ip-172-31-3-217 mysql_back]# mysqldump -uroot  -p'mysql' rm > rm.sql
#执行完成后,产生如下sql文件
[root@ip-172-31-3-217 mysql_back]# ll
total 36452
-rw-r--r-- 1 root root   2074077 May 30 02:39 am.sql
-rw-r--r-- 1 root root 35182945 May 30 02:39 cm.sql
-rw-r--r-- 1 root root     54030 May 30 02:36 metastore.sql
-rw-r--r-- 1 root root      7542 May 30 02:39 rm.sql

注:如果有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: 保存配置文件的路径
将上述提到的四个参数修改当前集群对应的信息即可
导出截图: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为例操作如下:

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进程杀死,命令如下:

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

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命令将其复制到另一个集群中。在集群中所有节点执行如下命令,删除用户所有数据:

#用户数据目录
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
 
rm -rf /usr/lib/hadoop /usr/lib/hadoop* /usr/lib/hive  /usr/lib/hbase /usr/lib/oozie /usr/lib/sqoop* /usr/lib/zookeeper  /usr/lib/bigtop* /usr/lib/flume-ng /usr/lib/hcatalog
 
rm -rf /var/run/hadoop* /var/run/flume-ng  /var/run/cloudera* /var/run/oozie /var/run/sqoop2 /var/run/zookeeper  /var/run/hbase /var/run/hbase /var/run/impala /var/run/hive  /var/run/hdfs-sockets
 
#服务命令
rm -rf /usr/bin/hadoop* /usr/bin/zookeeper*  /usr/bin/hbase* /usr/bin/hive* /usr/bin/hdfs /usr/bin/mapred /usr/bin/yarn  /usr/bin/sqoop* /usr/bin/oozie
#集群配置文件目录
rm -rf /etc/cloudera* /etc/hadoop* /etc/zookeeper*  /etc/hive* /etc/hue /etc/impala /etc/sqoop* /etc/oozie /etc/hbase*  /etc/hcatalog
#集群配置文件目录
rm -rf /etc/alternatives/avro-tools  /etc/alternatives/beeline /etc/alternatives/catalogd /etc/alternatives/cli_*  /etc/alternatives/flume* /etc/alternatives/hadoop* /etc/alternatives/hbase*  /etc/alternatives/hcat /etc/alternatives/hdfs /etc/alternatives/hive*  /etc/alternatives/hue* /etc/alternatives/impala* /etc/alternatives/llama*  /etc/alternatives/load_gen /etc/alternatives/mahout* /etc/alternatives/mapred  /etc/alternatives/oozie* /etc/alternatives/pig* /etc/alternatives/pyspark  /etc/alternatives/sentry* /etc/alternatives/solr* /etc/alternatives/spark*  /etc/alternatives/sqoop* /etc/alternatives/statestored  /etc/alternatives/whirr /etc/alternatives/yarn /etc/alternatives/zookeeper*
#
rm -rf /var/lib/alternatives/avro-tools  /var/lib/alternatives/beeline /var/lib/alternatives/catalogd  /var/lib/alternatives/cli_* /var/lib/alternatives/flume*  /var/lib/alternatives/hadoop* /var/lib/alternatives/hbase*  /var/lib/alternatives/hcat /var/lib/alternatives/hdfs  /var/lib/alternatives/hive* /var/lib/alternatives/hue* /var/lib/alternatives/impala*  /var/lib/alternatives/llama* /var/lib/alternatives/load_gen  /var/lib/alternatives/mahout* /var/lib/alternatives/mapred  /var/lib/alternatives/oozie* /var/lib/alternatives/pig*  /var/lib/alternatives/pyspark /var/lib/alternatives/sentry*  /var/lib/alternatives/solr* /var/lib/alternatives/spark*  /var/lib/alternatives/sqoop* /var/lib/alternatives/statestored  /var/lib/alternatives/whirr /var/lib/alternatives/yarn  /var/lib/alternatives/zookeeper*
 
#请修改 data_drive_path 为自己机器上的路径
rm -rf data_drive_path/dfs data_drive_path/mapred  data_drive_path/yarn
#删除Hadoop相关服务安装目录、服务软件包数据,数据格式为parcels、服务软件包缓存数据
rm -rf /opt/cloudera/

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:集群所有组件安装时所使用的用户名
脚本使用


[root@ip-172-31-3-217 shell]# ./autouninstall.sh
params is can not be null.
nodelist 1: 集群所有节点hostname文件
componentlist 2: 卸载执行指令
userlist 3: 集群中组件用户名
deletelist 4: 删除的目录列表
username 5: 登录集群用户名
longinType 6: 登录类型:key密钥文件,password密码登录,free免密认证
password 7: 登录集群的认证文件或者密码,如果为密钥文件则确保文件权限为600
 
[root@ip-172-31-3-217 shell]# ./autouninstall.sh  node.list components.list user.list delete.list  root key key.pem

注:脚本是在第五步操作完成后,在namenode节点进行一键卸载
运行截图在这里插入图片描述
在这里插入图片描述
源码地址:
https://github.com/javaxsky/cdh-shell

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值