Roh*_*lvi 10 java apache hadoop mapreduce
以前,我是org.apache.hadoop.mapred.JobClient#getJob(org.apache.hadoop.mapred.JobID)用来获得的RunningJob.这个调用来自作业完成回调方法,但是,在我看来,存在一个计时问题,如果作业已经完成,那么上面的getJob()方法找不到它并返回null.我可以确认该作业是从集群UI完成的.
保持RunningJob分开,是否有办法获得org.apache.hadoop.mapreduce.Jobmapred作业的对象org.apache.hadoop.mapreduce.JobID,无论作业当前是在运行还是已完成?
我尝试编写类似的代码:
Cluster cluster = jobClient.getClusterHandle();
Job job = cluster.getJob(JobID.forName(jobId));
log.info("Trying to get actual job with id {} , found {} on cluster {}", JobID.forName(jobId), job, cluster);
我可以看到正确的jobId,也可以看到集群对象..但该cluster.getJob()方法返回null,因此作业本身为null.
有什么我错过的吗?
| 归档时间: |
|
| 查看次数: |
232 次 |
| 最近记录: |