Отладить пакет Apache Slider?

Я прошел учебник по Slider Memcached и смог успешно упаковать/развернуть/запустить контейнер memcached; однако, когда я упаковываю пользовательское приложение, в основном Java jar плюс зависимости, контейнер никогда не запускается успешно.

Страница приложения показывает, что приложение находится в состоянии FINISHED/FAILED с этой диагностикой: http://quickstart.cloudera:8088/cluster/app/application_1439926335194_0001

Диагностика: нестабильный экземпляр приложения: - сбой с компонентом MYAPP "недавно" произошел сбой 6 раз (4 при запуске); порог равен 5 — последний сбой: Ошибка container_1439926335194_0001_01_000008 на хосте quickstart.cloudera (0): http://quickstart.cloudera:19888/jobhistory/logs//quickstart.cloudera:8041/container_1439926335194_0001_01_000008/ct

Часть проблемы при диагностике проблемы с контейнером заключается в том, что журналы исчезают после завершения работы приложения. http://quickstart.cloudera:8042/node/containerlogs/container_1439926335194_0001_01_00MYUSER01_01_00>

Существует страница устранения неполадок для ползунка, которая указывает, что вы можете сохранять журналы после завершения приложения: http://slider.incubator.apache.org/docs/troubleshooting.html

Настройка YARN для лучшей отладки. Одна из конфигураций, помогающих отладке, — это указание менеджерам узлов сохранять данные в течение короткого периода времени после завершения работы контейнеров.

<!-- 10 minutes after a failure to see what is left in the directory-->
<property>
  <name>yarn.nodemanager.delete.debug-delay-sec</name>
  <value>600</value>
</property>

И я нашел этот параметр в Yarn - Configuration - NodeManager Base Group - Advanced - Localized Dir Delection Delection и изменил его с 0 по умолчанию на 1200; однако даже после развертывания конфигурации клиента и перезапуска Nodemanager + Yarn, даже перезапуска виртуальной машины, журналы по-прежнему удаляются при завершении работы контейнера.

Я работаю над образом CDH 5.3.0 Vitrualbox VM, и кластер + службы работают нормально, когда я запускаю пакет.

ИЗМЕНИТЬ:

Единственная ошибка в журнале, которую я вижу, это:

Ошибка экземпляра роли RoleInstance

2015-08-19 10: 59: 21,819 [Поток обработчика AMRM обратного вызова] Ошибка Appmaster.SliderAppMaster-Экземпляр роли ROLINSTANCE {ROLE = 'SIMHASH', ID = 'Container_1439926335194_0002_01_000003', Container = ContainerID = Container_1439263351_000003 ', Container = ContainerID = Container_14392633351_00000', Container = ContainerID_1439926333351_00000 '019333331_00000 ', Container. =quickstart.cloudera:8042 priority=1073741825 resource=, createTime=1440007115649, startTime=1440007115674, Release=false, roleId=1, host=quickstart.cloudera, hostURL=http://quickstart.cloudera:8042, состояние=5, размещение=null, код выхода=0, команда='python ./infra/agent/slider-agent/agent/main .py --label container_1439926335194_0002_01_000003___SIMHASH --zk-quorum localhost:2181 --zk-reg-path /registry/users/c4/services/org-apache-slider/simhash1 > /slider-agent.out 2>&1 ; ', диагностика ='', выход = ноль, среда = [LANGUAGE="en_US.UTF-8", AGENT_WORK_ROOT="$PWD", HADOOP_USER_NAME="C4", AGENT_LOG_ROOT="", PYTHONPATH="./infra/agent /slider-agent/", LC_ALL="en_US.UTF-8", SLIDER_PASSPHRASE="8R9ZPw3aZ20GFydi3OqvEtwYhh1qzfQBmWv6BjXepg3PCcyS8m", LANG="en_US.UTF-8"]} не удалось


person dr3x    schedule 18.08.2015    source источник
comment
Привет, в настоящее время у меня такая же проблема. Вы уже решили это?   -  person shobull    schedule 21.09.2015
comment
Да - проверьте ответ, который я разместил. Посмотрите журналы контейнера и посмотрите, решает ли это вашу проблему; если нет то ЛМК. Одна вещь, которую следует иметь в виду при использовании Slider, заключается в том, что он ожидает, что приложение будет работать до тех пор, пока оно не завершит его. Если у вас есть приложение Java, которое работает, даже если оно выполняется успешно, когда оно завершается, Slider считает, что оно не удалось.   -  person dr3x    schedule 21.09.2015
comment
Моя проблема заключалась в неправильном пути к дому Java в appConfig.json. К сожалению, в логах не было никакой информации.   -  person shobull    schedule 23.09.2015


Ответы (1)


Короткий ответ

Просмотрите журналы контейнера, чтобы получить выходные данные работающего приложения.

Подробности:

Я нашел журналы контейнеров через веб-интерфейс контейнеров (в виртуальной машине Cloudera это http://quickstart.cloudera:8042/node/allContainers)

Для моего приложения есть 2 контейнера, первый просто показывает журналы, которые я просматривал ранее, указывая, был ли контейнер успешным или неудачным; у второго много логов с полезной инфой (команда/ошибки/слайдер-агент/статус_команда).

Они временные, но я смог посмотреть на них до завершения работы приложения.

В slider-agent.out есть только эта строка:

Не удалось найти обработчики для регистратора "root"

Однако slider-agent.log дал мне информацию, которую я искал, в основном stderr / stdout от выполнения командной строки Java, так что это очень полезно.

INFO 2015-08-19 14:07:28,422 AgentToggleLogger.py:40 — результат очереди: {'componentStatus': [], 'reports': [{'actionId': u'4-1', 'clusterName': u 'myapp1', 'код выхода': 1, 'reportResult': Истина, 'роль': u'MYAPP', 'roleCommand': u'START', 'serviceName': u'myapp1', 'статус': 'FAILED' , 'stderr': '2015-08-19 14:07:28,268 - Ошибка при выполнении команды ..., 'stdout': '2015-08-19 14:07:23,261 - Execute[\'/usr/java/ последний/bin/java -Xmx256m -classpath ..., 'structuredOut': '{}', 'taskId': 4}]}

person dr3x    schedule 21.09.2015