我找不到与 MRv2 等效的 JobClient (Java, MRv1)。我正在尝试读取正在运行的作业的 MR 作业状态、计数器等。我必须从我相信的资源管理器那里获取信息(因为历史服务器在作业结束之前不会有信息,我需要在作业仍在运行时读取计数器)。mapreduce api中是否有我缺少的客户端?
问问题
169 次
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
课堂上获得的一些信息是:
应用程序资源使用报告
应用诊断
最终申请状态
开始和结束时间
申请类型
优先
进展等
您可以在此处查看 API 文档YarnClient
(ApplicationReport
这是 Hadoop 2.7 文档):
于 2016-07-15T06:05:54.613 回答