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
使用distcp进行集群之间数据复制进行hdfs数据备份,备份操做以下:数据库
hadoop distcp hftp://namenodeA:port/xxx/ hdfs://namenodeB/xxx
注:此命令需运行在目标集群中执行,确保目标集群空间足够,以上数据目录根据本身集群的真实环境作相应的修改;
namenodeA:源集群namenode节点ip地址
port:源集群端口,默认50070
namenodeB:目标集群namenode节点ip地址
xxx:对应hdfs的数据目录
登陆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元数据
注:若是有hue,sentry,Navigator数据库能够一样备份
2.3备份CDH集群配置数据
经过Cloudera Manager提供的API接口,导出一份JSON文档,该文档包含Cloudera 管理器实例的配置数据,能够经过这份JSON文档备份或恢复Cloudera管理器的部署。
[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数据目录备份
[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的服务器上进行操做。
service mysqld stop
yum remove 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
醉酒鞭名马,少年多浮夸! 岭南浣溪沙,呕吐酒肆下!挚友不愿放,数据玩的花!