Почему у моего приложения пряжи нет журналов даже при включенном ведении журналов?

Я включил журналы в файле XML: yarn-site.xmlи я перезапустил yarn при выполнении:

sudo service hadoop-yarn-resourcemanager restart
sudo service hadoop-yarn-nodemanager restart

Я запустил свое приложение, а затем я вижу applicationID в yarn application -list, Итак, я делаю это: yarn logs -applicationId <application ID>и я получаю следующее:

hdfs://<ip address>/var/log/hadoop-yarn/path/to/application/  does not have any log files

Нужно ли менять какую-то другую конфигурацию? Или я обращаюсь к журналам неправильно?

Спасибо.

5 ответов

Решение
yarn application -list

будет перечислять только те приложения, которые находятся в состоянии SUBMITTED, ACCEPTED или RUNNING.

Агрегирование журналов собирает журналы каждого контейнера и перемещает эти журналы в каталог, настроенный в yarn.nodemanager.remote-app-log-dir только после заполнения заявки. См. Описание yarn.log-aggregation-enable недвижимость здесь.

Итак applicationId перечисленные командой еще не завершены и журналы еще не собраны. Таким образом, ответ при попытке получить доступ к журналам работающего приложения

hdfs://<ip address>/var/log/hadoop-yarn/path/to/application/  does not have any log files

Вы можете попробовать ту же команду yarn logs -applicationId <application ID> просматривать журналы после завершения приложения.

Чтобы перечислить все ЗАВЕРШЕННЫЕ приложения, используйте

yarn application -list -appStates FINISHED

Или перечислить все приложения

yarn application -list -appStates ALL

В версии 2.3.2 hadoop и выше вы можете заставить агрегировать журналы ежечасно при выполнении заданий, используя эту конфигурацию в yarn-site.xml:

<property>
    <name>yarn.nodemanager.log-aggregation.roll-monitoring-interval-seconds</name>
    <value>3600</value>
</property>

См. Это для получения дополнительной информации: https://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.3.2/bk_yarn_resource_mgt/content/ref-375ff479-e530-46d8-9f96-8b52dadb5183.1.html

Включить агрегирование журналов

Агрегация журналов включена в yarn-site.xml файл. Свойство yarn.log-aggregation-enable включает агрегирование журналов для запущенных приложений.

<property>
 <name>yarn.log-aggregation-enable</name>
 <value>true</value>
</property>

Вероятно, он был сохранен с другим appOwner. Вы можете попытаться указать владельца приложения в вашей команде:

журналы пряжи -appOwner .. -application_id ..

ОСНОВНАЯ ПРИЧИНА . Если включено объединение журналов, журналы приложений каждого пользователя по умолчанию будут помещены в каталог hdfs:///app-logs//logs/<APPLICATION_ID>. По умолчанию только пользователь, отправивший задание, и члены группы hadoop будут иметь доступ к чтению файлов журнала. В приведенном ниже примере списка каталогов вы можете видеть, что разрешения равны 770. Нет доступа ни для кого, кроме владельца и членов группы hadoop.

      [root@mycluster ~]$ hdfs dfs -ls /app-logs

Found 3 items

drwxrwx---    - hive      hadoop    0 2017-03-10 15:33 /app-logs/hive

drwxrwx---    - user1     hadoop          0 2017-03-10 15:37 /app-logs/user1

drwxrwx---    - spark     hadoop          0 2017-03-10 15:39 /app-logs/spark

РЕШЕНИЕ . Приведенное выше сообщение может быть обманчивым и не обязательно означает, что объединение журналов не включено. Чтобы получить журналы пряжи для приложения, команду «журналы пряжи» необходимо выполнить от имени пользователя, подавшего заявку. В приведенном ниже примере заявка была отправлена ​​пользователем user1. Если мы выполним ту же команду, что и выше, для пользователя «user1», мы должны получить следующий вывод, если включена агрегация журналов.

      yarn logs -applicationId application_1473860344791_0001
16/09/19 23:10:33 INFO impl.TimelineClientImpl: Timeline service address: http://mycluster.somedomain.com:8188/ws/v1/timeline/
16/09/19 23:10:33 INFO client.RMProxy: Connecting to ResourceManager at mycluster.somedomain.com/192.168.1.89:8050
16/09/19 23:10:34 INFO zlib.ZlibFactory: Successfully loaded & initialized native-zlib library
16/09/19 23:10:34 INFO compress.CodecPool: Got brand-new decompressor [.deflate]
Container: container_e03_1473860344791_0001_01_000001 on mycluster.somedomain.com_45454
LogType:stderr
Log Upload Time:Wed Sep 14 09:44:15 -0400 2016
LogLength:0
Log Contents:
End of LogType:stderr

СПРАВКА . В следующем документе описывается, как использовать агрегацию журналов для сбора журналов для долго работающих приложений YARN. http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.5.0/bk_yarn-resource-management/content/ch_log_a.. .

Другие вопросы по тегам