一、應用背景
由於在設計中有一個模塊是對Job的管理,所以,在這裏我採用了JobClinet來進行簡單的控制。
二、應用點
JobClient指的是org.apache.hadoop.mapred.JobClient這個類。裏面有不少的方法,我這裏列舉一些我用到的和一些需要注意的方法。
1、JobClient的實例化。這裏有2中方法,一種是new JobClient(new JobConf);另外一種是實例化IP地址和端口。
2、通過JobClient獲取Job列表。
JobClient.jobsToComplete()返回沒有完成和沒有失敗的Job。換句話說就是在運行的Job。
JobClient.getAllJobs()返回所有的Job,不管是失敗還是成功的。
3、獲取JobID
JobID是一個Job的唯一標識,如果要獲取指定的JobID,那麼需要有根據,例如UserName。我這裏是通過User來獲取JobID。方法是遍歷Job,然後找到名稱相匹配的Job,然後取出ID。
4、通過線程阻塞的模式來等待Job執行完成。
JobClient.getJob(JobID).waitForCompletion();
三、總結
1、JobClient的應用很簡單,總的說來就那麼幾種,細緻看一下API就會大部分的應用。
2、通過JobClient還可以對task進行監控,也可以獲取Job的進度百分比。
3、寫的比較簡單,寫的不對或是有疑問可以發郵件[email protected]