【问题标题】:Ambari plugin developmentAmbari 插件开发
【发布时间】:2016-06-07 08:30:53
【问题描述】:

我想开发用于部署一些服务的 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 我觉得这不是一个好的解决方案。

你有什么好的提示、建议、链接吗?

【问题讨论】:

    标签: ambari


    【解决方案1】:

    正确的术语是 Ambari 定制服务,而不是插件。

    以下顺序是迄今为止我发现的开发自定义服务的最佳方法。假设您正在开发自定义服务“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 步开始重新安装修改后的服务。冲洗并重复。

    删除服务.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 重新安装您的服务。在这种情况下,使用服务安装向导重新安装将不起作用。有关如何使用 rest api 重新安装服务的更多详细信息,请参阅 ambari wiki。

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

    【讨论】:

    • 我发现 ambari-server reset 在这种情况下也很有用
    • ambari-server reset 确实解决了该用例,但由于您必须重新配置集群,因此需要更长的时间。
    猜你喜欢
    • 2020-10-01
    • 2011-05-27
    • 2011-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    相关资源
    最近更新 更多