1.文档编写目的

Fayson在两年前的文章中介绍过CDH的卸载,参考《如何卸载CDH(附一键卸载github源码)》。除非你是使用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之前的文章《0509-深入分析CDH的安装目录》。本文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 ~]# klistTicket cache: FILE:/tmp/krb5cc_0Default principal: hdfs/ip-172-31-6-83.ap-southeast-1.compute.internal@FAYSON.COMValid starting Expires Service principal04/20/2019 22:06:23 04/21/2019 22:06:23 krbtgt/FAYSON.COM@FAYSON.COM renew until 04/25/2019 22:06:23You have new mail in /var/spool/mail/root#进入safemode模式[root@ip-172-31-6-83 ~]# hdfs dfsadmin -safemode enterSafe mode is ON in ip-172-31-4-105.ap-southeast-1.compute.internal/172.31.4.105:8020Safe 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 -saveNamespaceSave namespace successful for ip-172-31-4-105.ap-southeast-1.compute.internal/172.31.4.105:8020Save namespace successful for ip-172-31-6-83.ap-southeast-1.compute.internal/172.31.6.83:8020[root@ip-172-31-6-83 ~]#

2.将NameNode元数据进行备份,根据自己集群NameNode目录进行如下操作:

[root@ip-172-31-6-83 ~]# mkdir namenode_backYou 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/*

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]# lltotal 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]#

注:如果有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 Speed100 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]#

admin: 登录到Cloudera Manager的用户名

admin: 对应admin_username用户的密码

172.31.6.83: 是Cloudera Manager服务器的主机IP

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

将上述提到的四个参数修改当前集群对应的信息即可

  • 恢复集群配置数据

注意:此功能只有Cloudera许可证才可以使用

1.进入Cloudera Manager管理平台,停止集群服务。

注意:如果在进行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

注意:卸载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,并停止整个集群服务。

2.点击“停止”

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

4.2.停止Cloudera Management Service

1.登录到Cloudera Manager,并停止CMS服务。

2.点击“停止”

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

5.停用并移除所有Parcel

1.登录Cloudera Manager主页,并进入Parcel页面。

2.“停用”CDH6的Parcel。

3.“从主机删除”CDH6的Parcel

4.“删除”CDH6的Parcel。

注:如果你的集群中还有其他Parcel,比如Kudu,Kafka,CDSW或者Spark,你需要将上面的步骤都做一遍,即“停用”->“从集群中删除”->“删除”。

6.删除集群

1.登录到Cloudera Manager,并删除整个集群。

2.删除成功后,通过Cloudera Manager已经看不到集群。

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

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"

2.在所有节点运行清除Cloudera所管理软件的命令。

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

3.所有节点运行clean命令。

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

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" 

注:可能要多次执行或者要稍微等待一会才能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*"

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"

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"

2.在所有节点执行删除Hadoop相关数据命令,以下采用批量脚本执行。

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

注:根据实际情况,该步骤每台数据节点可能会有多个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"

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"

5.在所有节点删除/opt/cloudera下的安装文件。

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

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*

至此:CDH6.1卸载完毕。

参考:

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

yarn 卸载包_0609-6.1.0-如何卸载CDH6.1相关推荐

  1. python卸载pip_PIP安装和卸载包,pip

    安装包 1. 在线安装:使用pip install + 包名 默认安装最新版本的包: 格式:pip install + 包名 如在完成Python的安装后,我们需要安装pandas这个包,则只需要在终 ...

  2. nodejs第五天 npm yarn pnpm 包管理器

    文章目录 npm package.json 安装包 全局安装 配置镜像 yarn 安装使用 镜像配置 pnpm 使用 镜像 npm node中的包管理器叫做npm(node package manag ...

  3. .NET Core 3.0 可卸载程序集原理简析

    文章转载授权级别:A       预计阅读时间:8分钟      损失发量:不好统计 因为最近在群里被问到如何理解 .NET Core 3.0 可卸载程序集,所以就写了这篇简单的分析. 因为时间实在很 ...

  4. 利用conda安装包、卸载包、升级包、查看包信息等操作

    conda下载包是通过一些chanel来访问下载的,原本内置的有一些chanel,另外一些包需要自己添加下载所需的chanel. 1.查看chanel: conda config --show 2.添 ...

  5. linux移除包的命令,linux的yum卸载包命令说明

    Linux中的yum命令可以通过相关命令对包进行安装.卸载或者更新等,下面由学习啦小编为大家整理了Linux的yum卸载包命令说明的相关知识,希望对大家有帮助! linux的yum卸载包命令说明 1& ...

  6. R包操作相关:安装、卸载、加载、移除、已经安装的包、包的路径、函数查看等

    R包操作相关:安装.卸载.加载.移除.已经安装的包.包的路径.函数查看等 查看已经加载的R包: (.packages()) 列出包所在的路径: .libPaths() 查看已经安装的包的详细信息: i ...

  7. PHP - 使用 Pear 进行安装和卸载包

    安装: 首先运行到php根目录: 输入要安装的包文件名: 使用语法: pear install 要安装包的名称 回车确认: 如果没有其他意外,显示安装成功. 查看安装的包的信息: 语句: pear i ...

  8. 中兴B863AV3.2-M、B863AV3.1-M2、E900V22C免拆机通刷救砖包【安卓9.0】

    中兴B863AV3.2-M.B863AV3.1-M2.E900V22C免拆机通刷救砖包[安卓9.0] 固件说明: 1.中兴B863AV3.2-M.B863AV3.1-M2.创维E900V22C 通刷包 ...

  9. android 5.0官方安装包,Android5.0刷机包怎么安装 Android5.0刷机包安装教程

    谷歌发布了Android5.0系统,目前陆续公布了可以支持的机型,如果已经知道自己的该机能够配适的话,升级Android5.0也是相当简单的.Android5.0刷机包如何安装? Android5.0 ...

最新文章

  1. 你会不会模拟超过 5 万用户的并发访问?
  2. matplotlib如何绘制两点间连线_机器学习:Python常用库——Matplotlib库
  3. 中间件技术及双十一实践·服务框架篇
  4. Openjudge_ 2.1基本算法之枚举_1809 两倍 C++ scratch
  5. 爬虫实现原理与实现技术
  6. IDC:安全性、价格和低复杂性是企业采用SD-WAN的主要动因
  7. 路径规划之基于插值的规划算法
  8. CEC2018:动态多目标测试函数DF1~DF5的PS及PF
  9. linux脚本菜鸟教程,菜鸟教程之shell _1
  10. 历年数学界菲尔兹奖及其得主简介
  11. 最完美的“婚”鞋? NMD_R2“囍”(台灣愛迪達)
  12. [nltk_data] Error loading words: <urlopen error [Errno 11004]
  13. android图片模糊效果,Android下实现高效的模糊效果
  14. 阿里接口调用——智能植物识别(含花卉与杂草)
  15. 资源下载--使用Proxy SwitchyOmega+postman下载资源
  16. ben we_老WE成立手游战队!2020LOL冬季转会汇总:截止11月17日(每日更新)
  17. 很详细的SpringBoot整合UEditor教程
  18. 百度地图多个坐标连成轨迹
  19. Notion 笔记Mac及windows客户端汉化
  20. 谁在使用Linux?

热门文章

  1. 版本不见了_王者荣耀复古版本来袭?第四代主宰形象回归!可以给小兵加速
  2. android scrollview居中,使用 HorizontalScrollView 实现滚动控制
  3. java xml 节点路径,SelectSingleNode使用XPath为已知良好的xml节点路径返回null
  4. 重邮计算机导师评价,李章勇_重庆邮电大学研究生导师信息
  5. 2015电大c语言,2015电大本科C语言程序设计A试题汇总.doc
  6. python3 枚举_Python3枚举类如何处理重复名称?
  7. 工业设计对计算机技术的应用,计算机在产品设计的应用
  8. iptable 详解_最全的iptables防火墙详解.pdf
  9. 无法将该对象添加到ldap服务器_LDAP 基础知识
  10. python中find函数运算结果类型_Python 运算符与数据类型