CDH5的卸载

来源:互联网 发布:linux tomcat假死监控 编辑:程序博客网 时间:2024/05/18 22:53

1. 关闭集群中的所有服务(这一步可以在主节点执行)。

这个可以通过clouder manger 主页关闭集群。

2. 卸载

master节点:

[root@master ~]# /usr/share/cmf/uninstall-cloudera-manager.sh

slave节点:

[root@slave1 ~]# service cloudera-scm-agent stop

下面是所有集群都要进行的操作:

[root@master ~]# umount /var/run/cloudera-scm-agent/process

删除节点的安装包:

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

3. 卸载安装包:

root@slave1 ~]# rpm -qa | grep cloudera[root@slave2 ~]# for f in `rpm -qa | grep cloudera `  ; do rpm -e ${f} ; done     (如果有保存,在执行一遍)

4. 清除安装文件

 rm -rf /var/lib/hadoop-* /var/lib/impala /var/lib/solr /var/lib/zookeeper /var/lib/hue /var/lib/oozie  /var/lib/pgsql  /var/lib/sqoop2  /data/dfs/  /data/impala/ /data/yarn/  /dfs/ /impala/ /yarn/  /var/run/hadoop-*/ /var/run/hdfs-*/ /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 /etc/hadoop* /etc/zookeeper* /etc/hive* /etc/hue /etc/impala /etc/sqoop* /etc/oozie /etc/hbase* /etc/hcatalog 

只删除hadoop系列的,不要删除其他软件的,否则其他软件的版本控制会被破坏

[root@master alternatives]# rm -rf ` find /var/lib/alternatives/* ! -name "mta" ! -name "print" ! -name "zlibrary-ui"  -mtime -3` [root@master alternatives]# rm -rf /etc/alternatives/* 

5. 杀死相关进程:

for u in hdfs mapred cloudera-scm hbase hue zookeeper oozie hive impala flume; do sudo kill $(ps -u $u -o pid=); done

6. 删除parcel包分发文件和解压文件

  rm -rf /opt/cloudera/parcel-cache /opt/cloudera/parcels

到此卸载完毕

但是中途有可能会遇到的错误:

device is busy 问题

有时候我们需要umount某个挂载目录时会遇到如下问题:

[root@localhost /]# umount /data/umount.nfs: /data: device is busy

通过这条命令查看:

[root@localhost /]# fuser -m -v /data/                     用户       进程号  权限  命令/data/:              root       2798 ..c.. bash                     root       2996 ..c.. su

-v 表示 verbose 模式。进程以 ps 的方式显示,包括 PID、USER、COMMAND、ACCESS 字段

-m 表示指定文件所在的文件系统或者块设备(处于 mount 状态)。所有访问该文件系统的进程都被列出。

如上所示,有两个进程占用了,将其kill掉,再重新取消挂载。

[root@localhost /]# kill -9 2798[root@localhost /]# kill -9 2996[root@localhost /]# umount /data/[root@localhost /]#

就可以解决这个错误。

ps -ef |grep 输出的具体含义

比如:

[root@localhost ~]# ps -ef | grep ApacheJetspeedroot     18887 18828  0 08:09 pts/0    00:00:00 grep ApacheJetspeed

字段含义如下:

UID       PID   PPID     C STIME   TTY    TIME     CMDroot     18887 18828   0  08:09     pts/0    00:00:00    grep ApacheJetspeed

ps:将某个进程显示出来

-A  显示所有程序。

-e  此参数的效果和指定”A”参数相同。

-f  显示UID,PPIP,C与STIME栏位。

grep命令是查找

中间的|是管道命令 是指ps命令与grep同时执行

这条命令的意思是显示有关Apachejetspeed有关的进程

UID PID PPID C STIME TTY TIME CMD

各相关信息的意义:

UID 程序被该 UID 所拥有

PID 就是这个程序的 ID

PPID 则是其上级父程序的ID

C CPU 使用的资源百分比

STIME 系统启动时间

TTY 登入者的终端机位置

TIME 使用掉的 CPU 时间。

CMD 所下达的指令为何

对于查询结果,如何判断是运行与否呢?
这是因为ps -ef是显示所有进程的消息,包括ApacheJetspeed和grep ApacheJetspeed这两个甚至包括ps -ef本身,而grep是查找输出包含想要的字符串的行,也就是说grep ApacheJetspeed是在所有运行的进程中查找输出包含“ApacheJetspeed”字符串的输出行,这里面就包含ApacheJetspeed,和grep ApacheJetspeed 两个进程。

即,如果运行了会显示两条输出一条是ApacheJetspeed的,令一条是grep ApacheJetspeed的。
如果没运行只会显示grep ApacheJetspeed的。

具体参考链接

http://blog.csdn.net/csolo/article/details/52589763

http://m.blog.csdn.net/wulantian/article/details/42706777