程序员人生 网站导航

Hadoop get JobId

栏目:服务器时间:2016-06-04 08:56:02

软件版本:hadoop2.6.4 ; jdk1.7,eclipse:Myeclipse2014;


问题描写:在进行MR任务提交的时候,想获得每次提交任务的jobId,这样在提交任务后,就能够根据此JobId来获得MR任务的进度了。

解决方案:

1. 之前想过的1种方式是:直接获得所有完成的JobID 列表,然后对其进行排序,取其最大的,接着使用最大的jobId来构造下1个jobId;但是这样会有问题,参考:http://blog.csdn.net/fansy1990/article/details/17426945 ;问题是当集群是第1次启动的时候,这个时候是没有已完成JobId的列表的,所以想到了使用获得集群启动时间的解决办法,也就是刚才的链接内容;

2. 第2种方式是:既然提交MR任务的时候可以获得Job参数,那末是不是可以通过该job参数来获得jobID呢?Job在调用job.waitForComplete后才会去集群中获得jobId ,并且此jobid在每次调用的时候都会递增1,而不管任务时候完成,即如果在jobId获得后的地方加个断点:

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐