Ambari卸载已安装的服务组件

Ambari 常用的 REST API 介绍

Ambari 借鉴了很多成熟分布式软件的 API 设计。Rest API 就是一个很好地体现。通过 Ambari 的 Rest API,可以在脚本中通过 curl 维护整个集群。并且,我们可以用 Rest API 实现一些无法在 Ambari GUI 上面做的操作。下面是一些实例。
实例 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 就被彻底的清除掉了。


查看状态
curl -u admin:admin -H "X-Requested-By: ambari" -X GET http://10.111.3.9:8080/api/v1/clusters/data/services/STORM

修改状态为INSTALLED
curl -u admin:admin -H "X-Requested-By: ambari" -X PUT -d '{"RequestInfo": {"context":"Stop Service"},"Body":{"ServiceInfo":{"state":"INSTALLED"}}}'  http://10.111.3.9:8080/api/v1/clusters/data/services/STORM

删除服务
curl -u admin:admin -H "X-Requested-By: ambari" -X DELETE  http://10.111.32.94:8080/api/v1/clusters/gdata/services/STORM

(服务名称 STORM大写,有的时候状态为 INSTALL_FAILED UNKNOWN 状态直接删除就行

参考:
http://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari2/index.html
http://blog.csdn.net/gcangle/article/details/50128807
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
卸载Kerberos后导致tez.am.view-acls参数消失的情况可能涉及到Ambari的源码。Ambari是一个开源的集群管理工具,用于部署、配置和管理Hadoop生态系统中的各种组件,包括Tez。 在Ambari中,配置参数的管理和持久化是通过Ambari Server和Ambari Agent之间的通信来实现的。当进行Kerberos卸载操作时,可能会触发Ambari相关的源码执行以下步骤: 1. Ambari Server接收到卸载Kerberos的请求。 2. Ambari Server通过与Ambari Agent的通信,将卸载Kerberos的指令发送给对应的主机。 3. Ambari Agent在主机上执行相应的操作,包括修改配置文件、删除相关的Kerberos配置等。 4. 在这个过程中,可能出现了错误或不完整的操作,导致tez.am.view-acls参数被错误地删除或修改。 具体而言,可能涉及到以下源码文件和逻辑: 1. Ambari Server源码:在Ambari Server的源码中,可能涉及到处理卸载Kerberos请求的逻辑。这涉及到与Ambari Agent的通信和指令传递,以及对主机上配置文件的修改等操作。 2. Ambari Agent源码:在Ambari Agent的源码中,可能涉及到接收和执行卸载Kerberos指令的逻辑。这可能包括对tez-site.xml文件进行修改或删除相关配置参数的操作。 3. 相关配置文件:tez-site.xml是Tez的配置文件之一,其中包含了tez.am.view-acls参数的配置。在卸载Kerberos的过程中,Ambari可能会修改或删除这个配置文件中与Kerberos相关的配置,导致tez.am.view-acls参数消失。 需要注意的是,具体的源码实现可能因Ambari版本和定制修改而有所不同。如果遇到该问题,建议参考Ambari官方文档、社区讨论或联系Ambari开发团队以获取更准确的源码分析和解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值