0

我找不到与 MRv2 等效的 JobClient (Java, MRv1)。我正在尝试读取正在运行的作业的 MR 作业状态、计数器等。我必须从我相信的资源管理器那里获取信息(因为历史服务器在作业结束之前不会有信息,我需要在作业仍在运行时读取计数器)。mapreduce api中是否有我缺少的客户端?

4

1 回答 1

0

如果您有提交给 YARN 的 MR 作业的应用程序 ID,那么您可以使用:

  • 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 文档YarnClientApplicationReport这是 Hadoop 2.7 文档):

于 2016-07-15T06:05:54.613 回答