Журналы исполнителя Spark на YARN

Я запускаю распределенное приложение Spark в клиентском режиме YARN в кластере Cloudera. Через некоторое время я вижу некоторые ошибки в Cloudera Manager. Некоторые исполнители отключаются, и это происходит систематически. Я хотел бы отладить проблему, но YARN не сообщает о внутреннем исключении.

Exception from container-launch with container ID: container_1417503665765_0193_01_000003 and exit code: 1
ExitCodeException exitCode=1: 
    at org.apache.hadoop.util.Shell.runCommand(Shell.java:538)
    at org.apache.hadoop.util.Shell.run(Shell.java:455)
    at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:702)
    at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:196)
    at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:299)
    at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:81)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)

Как я могу увидеть трассировку стека исключения? Похоже, что YARN сообщает только о том, что приложение вышло ненормально. Есть ли способ увидеть журнал искрового исполнителя в конфигурации YARN?


person Nicola Ferraro    schedule 06.12.2014    source источник


Ответы (1)


Проверьте свойство yarn.nodemanager.log-dir в NodeManager. Это местоположение журнала, когда запущен контейнер исполнителя Spark.

Обратите внимание, что по завершении работы приложения NodeManager может удалить файлы (агрегирование журналов). Подробности см. В этом документе. http://hortonworks.com/blog/simplifying-user-logs-management-and-access-in-yarn/

person Community    schedule 06.12.2014
comment
Спасибо за ответ. Это не позволило мне найти полную трассировку стека исключения, но теперь я знаю причину проблемы (OperationNotSupportedException, только описание присутствует в предложенном вами журнале). Если вы знаете способ найти полную трассировку стека, дайте мне знать. - person Nicola Ferraro; 07.12.2014
comment
Возможно, вы захотите перехватить исключение в вашей функции, переданной в transformes. - person suztomo; 07.12.2014
comment
Пытаюсь его поймать и сбросить трассировку в локальный файл в папке / tmp. Я надеялся, что есть более чистое решение .. - person Nicola Ferraro; 07.12.2014
comment
Просто распечатайте трассировку стека в стандартный вывод и проверьте файл в yarn.nodemanager.log-dir, после подтверждения, какой NameNode принимает ваших исполнителей (путем проверки журнала ApplicationMaster). - person suztomo; 07.12.2014
comment
Раньше находить журналы было так просто, YARN полностью ломает все, теперь это огромная ошибка. - person samthebest; 12.12.2014