Ambari插件开发

时间:2016-06-07 08:30:53

标签: ambari

我想开发用于部署某些服务的Ambari插件(类似于此https://github.com/tzolov/elasticsearch-yarn-ambari-plugin)。

我想问一下开发/调试的好方法。

目前我们会删除新文件并将其复制到AMBARI_SERVER_SERVICE_PATH / services /然后ambari-agent stop && ambari-server stop && ambari-server reset --silent && ambari-server start && ambari-agent start,我觉得这不是很好的解决方案。

你有什么好的建议,推荐和链接吗?

1 个答案:

答案 0 :(得分:1)

正确的术语是Ambari Custom Service而不是插件。

以下序列是我在开发自定义服务时发现的最佳方法。让我们说你正在开发定制服务'FOO'。

1)将您的foo服务提取到您正在开发的堆栈中。为此例如。我将假设HDP 2.4:

tar -xzvf foo_service.tgz -C /var/lib/ambari-server/resources/stacks/HDP/2.4/services/FOO

2)重新启动ambari-server以获取堆栈更改

sudo ambari-server restart

3)使用Ambari UI服务安装向导安装自定义服务。

4)进行测试和调试,对自定义服务描述符文件进行任何更改。

5)使用Ambari UI停止您的服务及其所有组件。

6)使用类似于以下remove-service.sh脚本的内容从Ambari卸载您的服务。

7)从步骤1开始重新安装修改过的服务。冲洗并重复。

remove-service.sh:

#!/usr/bin/env bash

host=localhost
cluster=hdp
port=8080
user=admin
password='admin'

echo "Deleting the FOO service..."
curl -i -H "X-Requested-By: ambari" -u $user:$password -X DELETE http://$host:$port/api/v1/clusters/$cluster/services/FOO

注意:如果您的自定义服务无法正确安装,有时此方法将无效。在这种情况下,您有时必须更正描述符文件,重新启动ambari-server,然后使用ambari rest API重新安装您的服务。使用服务安装向导重新安装在此方案中不起作用。有关如何使用其余api重新安装服务的详细信息,请参阅ambari wiki。

Ambari Wiki上开发自定义ambari服务和ambari rest api时,可以找到很多有用的信息。