读书人

使用JobControl管理地图reduce多job依

发布时间: 2013-03-26 09:54:34 作者: rapoo

使用JobControl管理mapreduce多job依赖
/** * job2 依赖于 job1 * @param job1 * @param job2 * @param chainName * @return * @throws IOException */public static int handleJobChain(Job job1 ,Job job2, String chainName) throws IOException{ControlledJob controlledJob1 = new ControlledJob(job1.getConfiguration());controlledJob1.setJob(job1);ControlledJob controlledJob2 = new ControlledJob(job2.getConfiguration());controlledJob2.setJob(job2);controlledJob2.addDependingJob(controlledJob1);JobControl jc = new JobControl(chainName);jc.addJob(controlledJob1);jc.addJob(controlledJob2);Thread jcThread = new Thread(jc);jcThread.start();while(true){if(jc.allFinished()){System.out.println(jc.getSuccessfulJobList());jc.stop();return 0;}if(jc.getFailedJobList().size() > 0){System.out.println(jc.getFailedJobList());jc.stop();return 1;}}}

?

要注意的地方就是hadoop的JobControl类实现了线程Runnable接口。我们需要实例化一个线程来让它启动。直接调用JobControl的run()方法,线程将无法结束。

?

读书人网 >互联网

热点推荐