Подтвердить что ты не робот

Рабочие потоки Hadoop SUCCEEDED, но убиты ApplicationMaster


Я только что закончил настройку небольшого кластера сложения (используя 3 машины ubuntu и apache hadoop 2.2.0), и теперь я пытаюсь запустить потоковые задания на питоне.

Запуск тестового задания У меня возникает следующая проблема:
Почти все задачи карты отмечены как успешные, но с примечанием о том, что Контейнер убит.

В онлайн-интерфейсе журнал для работы с картами говорит:
Прогресс 100.00
Состояние SUCCEEDED

но в Примечание он говорит почти для каждой попытки (~ 200)
Контейнер, убитый ApplicationMaster.
или
Контейнер, убитый ApplicationMaster. Контейнер убит по запросу. Код выхода - 143

В файле журнала, связанном с попыткой, я вижу сообщение, в котором делается "Задача" попытка_xxxxxxxxx_0 ".

Я также получаю 3 попытки с одним и тем же журналом, только у этих 3 есть Состояние УБЕДЕНО
которые находятся под убитыми рабочими местами.

Выход stderr пуст для всех заданий/попыток.

При просмотре основного журнала приложений и после одной из успешных (но убитых) попыток я нахожу следующие журналы:

  • Переход от NEW к UNASSIGNED
  • Переход от UNASSIGNED к ASSIGNED
  • несколько обновлений прогресса, в том числе: 1.0
  • Готово подтверждение
  • RUNNING to SUCCESS_CONTAINER_CLEANUP
  • CONTAINER_REMOTE_CLEANUP
  • KILLING попытка_xxxx
  • Переход от SUCCESS_CONTAINER_CLEANUP к SUCCEEDED
  • Задача, перенесенная с RUNNING на SUCCEEDED

Все попытки пронумерованы xxxx_0, поэтому я предполагаю, что они не были убиты в результате спекулятивного исполнения.

Должен ли я беспокоиться об этом? И что заставляет контейнеры убивать? Любые предложения будут очень благодарны!

4b9b3361

Ответ 1

Да, я согласен с @joshua. Кажется, это ошибка, связанная с задачей/контейнером, которая не умеет грациозно после успешного завершения задачи map/reduce. После льготного периода ApplicationMaster должен его убить.

Я запускаю версию "пряжи" = Hadoop 2.5.0-cdh5.3.0

Я выбрал одну из задач и grep'ed для ее истории в журнале, сгенерированном для моего приложения MR:

$ yarn logs -applicationId application_1422894000163_0003 |grep attempt_1422894000163_0003_r_000008_0

Вы увидите, что "попытка_1422894000163_0003_r_000008_0" проходит через "TaskAttempt Transitioned от NEW до UNASSIGNED.. до RUNNING до SUCCESS_CONTAINER_CLEANUP".

На шаге "SUCCESS_CONTAINER_CLEANUP" вы увидите сообщения об уничтожении этого контейнера. После того, как этот контейнер будет убит, эта попытка переходит к шагу "TaskAttempt Transitioned from SUCCESS_CONTAINER_CLEANUP to SUCCEEDED".

Ответ 2

Насколько мне известно, одна и та же задача выполняется на многих узлах. Как только один node возвращает результат, задачи на других узлах будут убиты. Вот почему работа SUCCEEDED, но отдельные задачи находятся в состоянии KILLED.