2017-02-20 5 views
1

Будет ли информация о готовом приложении для пряжи, включая время выполнения на hdfs? Я просто хочу получить время выполнения приложения через некоторые файлы в hdfs (если бы там был такой файл, я проверил журналы и не было информации о времени исполнения) без использования какого-либо программного обеспечения для мониторинга.Как получить время выполнения приложения на пряжу adoop

ответ

0

Вы можете использовать ResourceManager REST для получения информации обо всех законченных приложениях.

http://resource_manager_host:port/ws/v1/cluster/apps?state=FINISHED 

GET запрос к URL будет возвращать ответ JSON (XML также может быть получен). Ответ должен быть проанализирован для elapsedTime для каждого приложения, чтобы получить время работы приложения.

+0

Поскольку я использую «скрипт оболочки» для запуска нескольких приложений на пряжу, могу ли я настроить прямую автоматическую передачу информации приложения при завершении работы приложения? Означает ли это, что я должен использовать цикл while, чтобы часто запрашивать пряжу, чтобы вернуть законченную информацию о приложении, если нет такого автоматического метода? – YunjieJi

+0

Да, вы должны вручную делать запросы, чтобы получить состояние приложения. Когда приложение завершено, пряжа предоставляет счетчики, которые содержат некоторую релевантную информацию, но не точно «прошедшее время». – franklinsijo

0

Для просмотра упорных историй задания файла, вам нужно будет проверить работы Истории сервера или Timeline сервер вместо диспетчера ресурсов:

  1. история Работа агрегируется на HDFS, и их можно увидеть из истории работы сервера UI (или REST API). Файлы истории хранятся на mapreduce.jobhistory.done-dir на HDFS.

  2. История заданий также может быть агрегирована сервером временной шкалы (основанная на файловой системе, aka ATS 1.5) и может быть видна из пользовательского интерфейса сервера времени (или REST API). Файлы истории хранятся на yarn.timeline-service.entity-group-fs-store.done-dir на HDFS.

+0

Поскольку я использую «скрипт оболочки» для запуска нескольких приложений на пряжу, могу ли я настроить прямую автоматическую передачу информации приложения при завершении работы приложения? Означает ли это, что я должен использовать цикл while, чтобы часто запрашивать пряжу, чтобы вернуть законченную информацию о приложении, если нет такого автоматического метода? – YunjieJi

+0

@ 0_1_Life Вы можете запустить «приложение-пряжа» -list -appStates FINISHED', чтобы получить список готовых идентификаторов приложений пряжи, в то же время вы поддерживаете список идентификаторов приложений, которые у вас уже есть. Затем каждый раз, если вы обнаружите новый идентификатор, который отсутствует в вашем списке, запустите, например, 'yarn logs -applicationId application_1484331408245_0014>/tmp/job_0014.log', чтобы получить и сохранить информацию о журнале. Это помогает? –

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