我无法找到MRv2的JobClient(Java,MRv1)等价物。我正在尝试读取MR工作状态,计数器等正在运行的工作。我必须从资源管理器那里得到信息我相信(因为历史服务器在作业结束之前不会有信息,我需要在作业仍在运行时读取计数器)。我缺少mapreduce api中的客户端吗?
答案 0 :(得分: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
课程获得的一些信息是:
应用程序资源使用情况报告
应用程序dianostics
最终申请状态
开始和结束时间
申请类型
优先级
进展等。
您可以在此处查看YarnClient
和ApplicationReport
的API文档(这是Hadoop 2.7文档):