我想开发用于部署某些服务的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,我不觉得这是一个很好的解决方案。
你有什么好的建议,建议,链接吗?
发布于 2016-06-10 16:39:37
恰当的术语是Ambari自定义服务,而不是插件。
下面的序列是到目前为止开发自定义服务的最佳方法。假设您正在开发自定义服务“FOO”。
1)将foo服务解压缩到正在开发的堆栈中。为了这个例子。我假设HDP 2.4:
tar -xzvf foo_service.tgz -C /var/lib/ambari-server/resources/stacks/HDP/2.4/services/FOO2)重新启动ambari服务器以获取堆栈更改。
sudo ambari-server restart3)使用Ambari服务安装向导来安装您的自定义服务。
4)进行测试和调试,对自定义服务描述符文件进行任何更改。
5)停止使用Ambari UI的服务及其所有组件。
6)使用类似于下面的remove-service.sh脚本从Ambari卸载您的服务。
7)重新安装您修改过的服务,从第一步开始。冲洗并重复。
移除-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服务器,然后使用ambari重新安装服务。在这种情况下,使用服务安装向导重新安装将无法工作。有关如何使用rest重新安装服务的更多细节,请参见ambari。
关于在Ambari Wiki上开发定制的ambari服务和ambari,可以找到许多有用的信息。
https://stackoverflow.com/questions/37674276
复制相似问题