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
класс это:
Отчет об использовании ресурсов приложения
Применение дианостики
Окончательный статус заявки
Время начала и окончания
Тип приложения
приоритет
Прогресс и т. Д.
Вы можете проверить документацию API для YarnClient
а также ApplicationReport
здесь (это документация Hadoop 2.7):