我对hadoop很新,有疑问 我正在使用Hadoop Job API v2提交(或创建)mapreduce作业(即命名空间mapreduce而不是旧的mapreduce)
我根据自己的工作提交MR Jobs。我们在此表中维护Hadoop作业名称。 我想跟踪提交的工作进度(以及完成情况),以便我们可以更新我们自己的工作。 所有Job Status API都需要Job对象。而我们的“工作监控”模块没有任何工作对象。
无论如何,请您帮助我们获得工作名称?我们确保工作名称是唯一的。
答案 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