按作业名称或ID查找hadoop mapreduce作业的作业状态

时间:2013-12-20 10:07:26

标签: hadoop mapreduce

我对hadoop很新,有疑问   我正在使用Hadoop Job API v2提交(或创建)mapreduce作业(即命名空间mapreduce而不是旧的mapreduce)

我根据自己的工作提交MR Jobs。我们在此表中维护Hadoop作业名称。 我想跟踪提交的工作进度(以及完成情况),以便我们可以更新我们自己的工作。 所有Job Status API都需要Job对象。而我们的“工作监控”模块没有任何工作对象。

无论如何,请您帮助我们获得工作名称?我们确保工作名称是唯一的。

1 个答案:

答案 0 :(得分:0)

我谷歌相当多只在下面找到。这是要走的路吗?在给定JobId的情况下,v2( .mapreduce。而不是 .mapred。)API中没有其他方法可以获取作业的状态吗?

    Configuration conf = new Configuration();
    JobClient jobClient = new JobClient(new JobConf(conf)); // deprecation WARN
    JobID jobID = JobID.forName(jobID); // deprecation WARN
    RunningJob runningJob = jobClient.getJob(jobID);
    Field field = runningJob.getClass().getDeclaredField("status"); // reflection !!!
    field.setAccessible(true);
    JobStatus jobStatus = (JobStatus) field.get(runningJob);

http://blog.erdemagaoglu.com/post/9407457968/hadoop-mapreduce-job-statistics-a-fraction-of-them