軟件版本:hadoop2.6.4 ; jdk1.7,eclipse:Myeclipse2014;
問題描寫:在進行MR任務(wù)提交的時候,想獲得每次提交任務(wù)的jobId,這樣在提交任務(wù)后,就能夠根據(jù)此JobId來獲得MR任務(wù)的進度了。
解決方案:
1. 之前想過的1種方式是:直接獲得所有完成的JobID 列表,然后對其進行排序,取其最大的,接著使用最大的jobId來構(gòu)造下1個jobId;但是這樣會有問題,參考:http://blog.csdn.net/fansy1990/article/details/17426945 ;問題是當集群是第1次啟動的時候,這個時候是沒有已完成JobId的列表的,所以想到了使用獲得集群啟動時間的解決辦法,也就是剛才的鏈接內(nèi)容;
2. 第2種方式是:既然提交MR任務(wù)的時候可以獲得Job參數(shù),那末是不是可以通過該job參數(shù)來獲得jobID呢?Job在調(diào)用job.waitForComplete后才會去集群中獲得jobId ,并且此jobid在每次調(diào)用的時候都會遞增1,而不管任務(wù)時候完成,即如果在jobId獲得后的地方加個斷點:
上一篇 JavaScript:引用類型