Ambari 插件开发
Ambari plugin development
我想开发 Ambari 插件来部署一些服务(像这样 https://github.com/tzolov/elasticsearch-yarn-ambari-plugin)。
我想请教developing/debugging的良好做法。
目前我们会删除新文件并将其复制到 AMBARI_SERVER_SERVICE_PATH/services/,然后再复制到 ambari-agent stop && ambari-server stop && ambari-server reset --silent && ambari-server start && ambari-agent start
,我觉得这不是一个很好的解决方案。
你有什么好的提示、建议、链接吗?
正确的术语是 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 步开始。冲洗并重复。
删除-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 的有用信息
我想开发 Ambari 插件来部署一些服务(像这样 https://github.com/tzolov/elasticsearch-yarn-ambari-plugin)。
我想请教developing/debugging的良好做法。
目前我们会删除新文件并将其复制到 AMBARI_SERVER_SERVICE_PATH/services/,然后再复制到 ambari-agent stop && ambari-server stop && ambari-server reset --silent && ambari-server start && ambari-agent start
,我觉得这不是一个很好的解决方案。
你有什么好的提示、建议、链接吗?
正确的术语是 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 步开始。冲洗并重复。
删除-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 的有用信息