YARN MRv2 JobClient эквивалент

Я не могу найти эквивалент JobClient (Java, MRv1) для MRv2. Я пытаюсь прочитать статус работы MR, счетчики и т. Д. Для текущей работы. Мне нужно было бы получить информацию от менеджера ресурсов, который, как я считаю, (поскольку у сервера истории не было бы информации до завершения задания, и мне нужно читать счетчики, пока задание еще выполняется). Есть ли в api mapreduce клиент, который мне не хватает?

1 ответ

Если у вас есть идентификатор приложения MR, который вы отправили в YARN, вы можете использовать:

  • YarnClient (import org.apache.hadoop.yarn.client.api.YarnClient) а также
  • ApplicationReport (import org.apache.hadoop.yarn.api.records.ApplicationReport)

чтобы получить статистику, связанную с приложением.

Например, пример кода ниже:

// Initialize and start YARN client
YarnClient yarnClient = YarnClient.createYarnClient();
yarnClient.init(configuration);
yarnClient.start();

// Get application report
try {
    ApplicationReport applicationReport = yarnClient.getApplicationReport(ConverterUtils.toApplicationId(applicationID));
    // Get whatever you want here.
} catch (Exception e) {
    // Handle exception;
}

// Stop YARN client
yarnClient.stop();

Некоторая информация, которую вы можете получить от ApplicationReport класс это:

  1. Отчет об использовании ресурсов приложения

  2. Применение дианостики

  3. Окончательный статус заявки

  4. Время начала и окончания

  5. Тип приложения

  6. приоритет

  7. Прогресс и т. Д.

Вы можете проверить документацию API для YarnClient а также ApplicationReport здесь (это документация Hadoop 2.7):

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