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? Любая помощь или указание в правильном направлении будут оценены.

к вашему сведению. Это Ambari 2.1, работающий на Centos 6.7.


person Ze_Gitan    schedule 26.02.2016    source источник


Ответы (2)


Недавно решал аналогичную задачу. И решение состоит в том, чтобы поместить строку "{"securityState": "UNKNOWN"}" в файл - /var/lib/ambari-agent/data/structured-out-status.json. Чтобы найти это решение, просмотрите журнал агента амбари: PythonExecutor.py:149 - {'msg': 'Невозможно прочитать структурированный вывод из /var/lib/ambari-agent/data/structured-out-status.json '}. Надеюсь, это поможет.

person RobinWang    schedule 15.03.2016

возможно, это ваша проблема с параметрами.

  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)
person litterMo    schedule 10.05.2016