Ambari - 无法检查自定义应用程序的状态

时间:2016-02-26 04:35:22

标签: python hadoop ambari

我一直在围绕在Ambari安装中创建自定义应用程序。经过一点点的玩弄,我已经成功地将其配置为使用适当的日志创建\输出和pid创建来执行安装和启动操作。我现在正在努力解决的问题是让Ambari保持这个新安装的应用程序的状态。按照此处的一些说明操作后:http://mozartanalytics.com/how-to-create-a-software-stack-for-ambari/(特别是“组件状态”部分),我已经取得了一些进展 - 但这并不完全符合我的要求。

在master.py中包含以下内容时,Ambari会在初始启动后看到该服务暂时处于活动状态,但随后该应用程序将显示为红色(离线)。它将其标记为脱机,即使我检查服务器时,我看到正在运行的相应进程。

def status(self, env):
    import params
    print 'Checking status of pid file'
    check=format("{params.pid}/Application.pid")
    check_process_status(check)

但是,当我将其修改为如下所示时,Ambari跟踪状态并正确监控它没有问题

def status(self, env):
    import params
    print 'Checking status of pid file'
    dummy_master_pid_file = "/var/run/Application/Application.pid"
    check_process_status(dummy_master_pid_file)

还有其他人遇到过这个问题吗?在Ambari中创建这个自定义应用程序有什么我不知道的吗?任何帮助或指向正确的方向将不胜感激。

FYI。这是在Centos 6.7上运行的Ambari 2.1

2 个答案:

答案 0 :(得分:0)

最近,我解决了类似的问题。解决方案是放一个字符串" {" securityState":" UNKNOWN"}"进入文件 - /var/lib/ambari-agent/data/structured-out-status.json。   找到这个解决方案的方法是观察ambari-agent日志:PythonExecutor.py:149 - {' msg':'无法读取/ var / lib / ambari-agent / data的结构化输出/structured-out-status.json'}。希望它会有所帮助。

答案 1 :(得分:0)

也许这是你的参数问题。

  def status(self, env):
        import params
        print 'Checking status of pid file'
        pid_path = params.pid
        check=format("{pid_path}/Application.pid")
        check_process_status(check)