CCIE试验备考之交换STP(2)
2007-09-29 18:22
519 查看
当我们在处理mr问题的时候,有时候需求过于复杂,通过一个简单的mr无法达到目的,我们该怎么办呢?
答案是采取JobControl,直接上代码。
要注意的地方就是hadoop的JobControl类实现了线程Runnable接口。我们需要实例化一个线程来让它启动。直接调用JobControl的run()方法,线程将无法结束。
答案是采取JobControl,直接上代码。
/** * 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()方法,线程将无法结束。
相关文章推荐
- CCIE试验备考之交换STP(3)
- CCIE试验备考---交换STP
- CCIE试验备考之交换STP(3)
- CCIE试验备考---交换STP(1) 推荐
- CCIE试验备考之交换STP(3)
- Cisco CCIE试验备考之交换STP 一
- CCIE试验备考之交换STP(1)
- CCIE试验备考之交换STP(3)
- CCIE试验备考---交换STP(1)
- CCIE试验备考之交换STP(2)
- CCIE试验备考之交换STP(2)
- CCIE试验备考之交换Voice VLAN
- CCIE试验备考之交换security(5)
- CCIE试验备考之交换SPAN
- CCIE试验备考之交换VTP
- CCIE试验备考之交换security(1) 推荐
- CCIE试验备考之交换security(4) 推荐
- CCIE试验备考之交换TRUNK
- CCIE试验备考之交换SPAN
- CCIE试验备考之交换security