就是一系列下定决心的努力
· 正 · 文 · 来 · 啦 ·
当我们为了体验ambari安装很多服务时,因为安装过多,导致机器很卡,或者暂时用不到,还容易除错,那么我来教你如何卸载。
01
登陆ambari 管理界面
02
以Hbase 为例子
我们需要关闭这个服务
然后选择Delete,并且输入'delete'
有些服务关闭不掉,该怎么办呢? 无法卸载?
成功删除
删除配置完成后的结果
实例 1,通过 API 卸载已安装的 Service
目前 Ambari 不支持在 GUI 上面卸载已安装的 Service。
所以当一个 Service 不再需要的时候,用户没法删除掉该 Service。
幸运的是 Ambari 提供了 DELETE 的 Rest API,
我们可以通过该 API 来删除 Ambari 中 Service。
不过这里需要注意,这个方法只是从 Ambari Service 中删除了 Service。
这样一来,Ambari 的 GUI 界面中不再显示这个 Service。
但是 Service 本身还安装在 Agent 所在的机器。如果用户需要彻底的清除掉这个 Service,
仍需要手工的到每个机器卸载(例如,在每个机器执行 yum erase)。
这里我以删除 Storm 为例。卸载之前,需要确认是否停掉了该 Service。
我们通过 GET 方法来得到这个结果
(这里当然也可以直接从 GUI 上面看到 Service 状态)。
具体的命令如下:
curl -u admin:admin -H "X-Requested-By: ambari" -X GET
http://zwshen86:8080/api/v1/clusters/bigdata/services/STORM
命令中的 zwshen86 为 Ambari Server 的机器名(端口默认为 8080),bigdata 为 cluster 名字,STORM 为 Service 的名字。
在返回的报文中,可以看到 State 字段。如果是 INSTALLED,代表这个 Service 已经是停掉的状态。
我们可以继续删除步骤。如果不是 INSTALLED,则需要先停掉这个 Service,可以从 WEB 上操作,也可以用 Rest API。
图 17. Get 返回的结果
用 Rest API 停掉 Service 的命令格式如下,有兴趣的朋友可以尝试一下。
curl -u admin:admin -H "X-Requested-By: ambari" -X PUT -d;
'{"RequestInfo":{"context":"Stop Service"},"Body":{"ServiceInfo":{"state":"INSTALLED"}}}'
http://AMBARI_SERVER_HOST:8080/api/v1/clusters/c1/services/SERVICE_NAME
执行如下命令删除 STORM:
curl -u admin:admin -H "X-Requested-By: ambari" -X
DELETE http://zwshen86:8080/api/v1/clusters/bigdata/services/STORM
执行完成后,Storm 就从 Ambari 的 Service 里面删掉了,但是 Storm 的 package 还存在于机器。
图 18. Storm 的 RPM 包
如果需要彻底清除掉 Storm 的 package,则需要到各个 Agent 机器执行如下命令。
yum erase“storm_2_2*”
执行完后,这个 Service 就被彻底的清除掉了。
‘ 所谓成功 ’
坚持把简单的事情做好就是不简单,
坚持把平凡的事情做好就是不平凡。
每个人都有潜在的能量,只是很容易--
被习惯所掩盖,
被时间所迷离,
被惰性所消磨。
那么,成功呢?就是在平凡中做出不平凡的坚持。