2015-09-22 2 views
9

Внезапно мой кластер YARN перестает работать, все, что я подаю, терпит неудачу с «Exit code 1». Я хочу отследить эту проблему, но как только приложение завершится неудачно, YARN удалит файлы журнала. Что такое настройка конфигурации, которую я должен настроить для YARN, чтобы сохранить эти файлы журналов?Как сохранить файлы журнала YARN?

ответ

18

Кажется, что ваш контейнер выход с кодом выхода 1.

Вы не видят бревна на пользовательском интерфейсе, так как по умолчанию, агрегация журнала отключена. Следующий параметр определяет агрегацию журнала: «yarn.log-aggregation-enable» (устанавливается в «false», если агрегация журнала отключена).

Если установлено значение «ложь», то все управляющие узла хранения журналов контейнера в локальном каталоге, определяется по следующей конфигурации параметра: «yarn.nodemanager.log-каталоги».

См., Например, в моем случае, это значение:

<property> 
    <name>yarn.nodemanager.log-dirs</name> 
    <value>e:\hdpdata\hadoop\logs</value> 
    </property> 

Таким образом, все мои контейнеровозы журналы для конкретного применения, можно будет найти в папке «е: \ hdpdata \ Hadoop \ Logs \ {приложение-идентификатор} \ { container-id} ", в машине Node Manager, где запускался Мастер приложений.

Предположим, что мое приложение: "application_1443377528298_0010" FAILED. В пользовательском интерфейсе YARNRM (определяемом параметром конфигурации: yarn.resourcemanager.webapp.address), вы можете получить информацию об узле, на котором запускался Application Manager. На рисунке ниже Application Manager запускался на машине «120243». enter image description here

Если при входе в эту машину и искать в папке «е: \ hdpdata \ Hadoop \ Logs \ application_1443377528298_0010 \», вы можете увидеть журналы для всех контейнеров приложения «application_1443377528298_0010».

Но теперь, если вы хотите видеть журналы через веб-интерфейс YARN RM, вам необходимо включить агрегацию журнала. Для этого вам необходимо установить следующие параметры, в пряжу-site.xml:

<property> 
     <name>yarn.log-aggregation-enable</name> 
     <value>true</value> 
    </property> 
    <property> 
    <name>yarn.nodemanager.remote-app-log-dir</name> 
    <value>/app-logs</value> 
    </property> 
    <property> 
     <name>yarn.nodemanager.remote-app-log-dir-suffix</name> 
     <value>logs</value> 
    </property> 

С настройками выше, мои журналы агрегируются в HDFS в «/ АПП-журналы/{имя пользователя}/журналы /» , В этой папке вы можете найти журналы для всех запущенных приложений. Опять же, сохранение журнала определяется параметром конфигурации «yarn.log-aggregation.retain-seconds» (как долго сохранить агрегированные журналы).

Когда приложения MapReduce запущены, вы можете получить доступ к журналам из веб-интерфейса YARN. После того, как приложение будет завершено, журналы будут отправляться через сервер истории заданий.

В вашем случае, если вы хотите видеть журналы в веб-интерфейсе, после того, как приложение завершено, вам также нужно запустить сервер истории заданий MapReduce. Чтобы включить его, установите следующие параметры конфигурации в mapred-site.xml:

<property> 
    <name>mapreduce.jobhistory.address</name> 
    <value>{job-history-hostname}:10020</value> 
    </property> 
    <property> 
    <name>mapreduce.jobhistory.webapp.address</name> 
    <value>{job-history-hostname}:19888</value> 
    </property> 

и установить следующие параметры конфигурации в пряжу-сайте.xml:

<property> 
    <name>yarn.log.server.url</name> 
    <value>http://{job-history-hostname}:19888/jobhistory/logs</value> 
    </property> 

У меня есть реплицированные настройки из HDP-установки в Windows, и эти настройки работают для меня. Они также должны работать на вас. Для описания каждой из конфигураций, упомянутых выше, относятся ссылки ниже:

https://hadoop.apache.org/docs/r2.4.1/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

Смежные вопросы