本帖最后由 feilong 于 2017-6-2 19:07 编辑
问题导读
1.哪些情况下需要看这篇文档?
2.Cloudera管理器与CDH的卸载的前置条件有哪些?
3.哪些用户数据需要备份?如何操作?
4.如何停止索引服务?
5.如何解除并移除Parcels?
6.删除集群做哪些操作?
7.如何卸载Cloudera Manager Server?
8.如何卸载Cloudera Manager Agent 和Managed Software?
9.如何Cloudera Manager和用户数据?
避坑指南
五种情况下,你需要用到这篇文档。
① CDH安装失败了需要重装 ② 对于技术人员需要学习/熟悉安装过程,需要卸载,安装,或者安装再卸载。这一般都是好学的好同学在自己测试机器学习会碰到的。 ③ 熟悉安装的目录分布,以及各个目录的作用,比如是配置文件的,执行命令脚本的,用户数据的等。因为卸载实际就是去删除这些目录。而文档里对于目录有一些简单说明注释。 ④ 如果是一个集群,想拿掉一台机器,或者叫下线一台机器,这个文档里的步骤差不了太多。 ⑤ 想要做集群迁移或者升级到新的服务器集群,文档前面讲了如何备份HDFS数据,Namenode元数据,mysql数据等。
前置条件
本文档将着重介绍Cloudera管理器与CDH的卸载,该文档基于parcles安装且未配置安全(AD/LDAP, Kerberos, Data Encryption)的集群,并基于以下假设: 1. 操作系统版本:CENTOS6.5 2. MySQL数据库版本为5.1.73 3. CM版本:CM 5.11.0 4. CDH版本:CDH 5.11.0 5. 采用root或有sudo权限用户对集群进行卸载
用户数据备份
备份HDFS数据
hdfs数据备份 使用distcp进行集群之间数据复制进行hdfs数据备份,备份操作如下: [mw_shl_code=bash,false]hadoop distcp hftp://namenodeA:port/xxx/ hdfs://namenodeB/xxx[/mw_shl_code] 注:此命令需运行在目标集群中执行,确保目标集群空间足够,以上数据目录根据自己集群的真实环境做相应的修改; namenodeA:源集群namenode节点ip地址 port:源集群端口,默认50070 namenodeB:目标集群namenode节点ip地址 xxx:对应hdfs的数据目录
namenode节点元数据备份 登录namenode服务器上,进行如下操作:
1
将namenode元数据备份,根据自己集群namenode目录进行如下操作:
2
备份Mysql元数据 在Mysql安装的服务器上,执行如下操作,备份hive元数据信息
3
注:如果有hue,sentry,Navigator数据库可以同样备份
备份CDH集群配置数据 通过Cloudera Manager提供的API接口,导出一份JSON文档,该文档包含Cloudera 管理器实例的配置数据,可以通过这份JSON文档备份或恢复Cloudera管理器的部署。
备份集群配置数据 1. 登录到Cloudera Manager所在服务器 2. 运行如下命令:
4
admin_username: 登录到Cloudera Manager的用户名 admin_pass: 对应admin_username用户的密码 cm_server_host: 是Cloudera Manager服务器的主机名 path_to_file: 保存配置文件的路径
将上述提到的四个参数修改当前集群对应的信息即可 导出截图:
5
6
恢复集群配置数据 注意:此功能只有Cloudera许可证才可以使用 1. 首先进入Cloudera Manager管理平台,进入如下操作
7
8
注意:如果在进行API调用操作之前未停止集群,那么API调用将在运行作业之前停止所有集群服务,任何运行的作业和数据都会丢失。
2. 登录到Cloudera Manager所在的服务器 3. 执行如下命令
9
admin_uname: 登录到Cloudera Manager的用户名 admin_pass: 对应admin_uname用户的密码 cm_server_host: 是Cloudera Manager服务器的主机名 path_to_file:JSON配置文件的路径
Zookeeper数据目录备份 备份所有Zookeeper服务器的数据目录,以172.31.3.217为例操作如下:
10
备份用户数据目录 以下路径为Cloudera默认安装目录下个组件用户数据:
11
如需备份相关组件数据,可参考2.4进行数据备份。
停止所有服务
打开Cloudera Manager控制台
12
关闭集群 停止CDH集群,如下图所示操作
13
点击确认操作,如下图所示
14
等待所有服务器停止操作成功,如下图所示
15
关闭Cloudera Manager Service 停止Cloudera Manager Service,如下图所示
16
点击确认对话框,如下图所示
17
等待服务停止成功,如下图所示
18
解除并移除Parcels 在Cloudera Manager管理界面,进行如下操作
19
点击上图标识功能,进入如下界面
20
点击上图标识,选择【仅限停用状态】,点击【确定】
21
停用后,状态变为“激活”,如下图所示
22
点击“激活”旁菜单,选择“从主机删除”,如下图所示
24
点击确认,如下图所示
25
删除成功后显示如下
26
删除集群 点击Clouder Manager进入主页,如下图所示
27
删除集群,如下操作
28
点击“删除”操作,如下图所示
29
删除成功后显示如下
30
卸载Cloudera Manager Server
停止Cloudera Manager Server和数据库 在集群master服务器上执行如下命令
31
卸载Cloudera Manager Server和数据库 使用yum卸载cloudera-scm-server和cloudera-scm-server-db-2,命令如下
32
卸载Cloudera Manager Agent和Managed Software 在集群所有的机器上进行如下操作,卸载Cloudera Manager Agent 和Managed Software。
停止Cloudera Manager Agent 在所有服务器上使用如下命令停止Cloudera Manager Agent 服务
33
卸载软件 在集群所有节点执行如下操作:
34
运行清除命令 在集群所有节点执行如下操作: [mw_shl_code=bash,false][root@ip-172-31-3-217 ~]# yum clean all[/mw_shl_code]
移除Cloudera Manager和用户数据
杀死 Cloudera Manager和Managed 进程 在集群所有节点执行如下操作,将所有服务器的Cloudera Manager和Managed进程杀死,命令如下:
35
移除Cloudera Manager数据 在集群所有节点执行如下命令,删除所有Cloudera Manager数据
36
移除Cloudera Manager Lock File 在集群中所有节点执行如下命令,删除Cloudera Manager Lock File [mw_shl_code=bash,false]rm –rf /tmp/.scm_prepare_node.lock[/mw_shl_code]
移除用户数据 此步骤将永久删除所有用户数据。为了备份数据,在启动卸载过程之前,使用distcp命令将其复制到另一个集群中。在集群中所有节点执行如下命令,删除用户所有数据:
37
停止并移除外部数据库 在安装mysql的服务器上进行操作。 停止mysql数据库,操作如下: [mw_shl_code=bash,false]service mysqld stop[/mw_shl_code] 卸载mysql数据库,操作如下 [mw_shl_code=bash,false]yum remove mysql*[/mw_shl_code] 删除mysql数据目录,操作如下 [mw_shl_code=bash,false]rm –rf /var/lib/mysql[/mw_shl_code]
一键卸载脚本说明(GitHub地址) 卸载脚本说明:
38
autouninstall.sh:自动卸载脚本 components.list:集群所有安装的组件列表 delete.list:需要删除的目录列表,列表中已配置大部分CDH安装默认目录,用户需要对列表末尾的hdfs目录根据自己集群环境进行目录进行相应调整,如下图所示:
39
node.list:集群所有节点,根据集群环境进行节点配置 user.list:集群所有组件安装时所使用的用户名
脚本使用
40
注:脚本是在第五步操作完成后,在namenode节点进行一键卸载
运行截图
文章来源:Cloudera中国 作者:李磊
|