2016-02-26 32 views
0

我一直在使用我们的Ambari安装中创建自定义应用程序。经过一段时间的指点之后,我已经成功地配置了这个配置,以执行适当的日志创建\输出和PID创建的安装和启动操作。我现在正在努力的一件事是让Ambari保持这个新安装的应用程序的状态。按照下面的一些说明:http://mozartanalytics.com/how-to-create-a-software-stack-for-ambari/(特别是组件状态部分),我已经能够取得一些进展 - 但它不完全是我想要的。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内部创建这个自定义应用程序?任何帮助或指向正确的方向将不胜感激。

仅供参考。这是Ambari 2.1在Centos上运行6.7

回答

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'}。希望它会有所帮助。

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)