如果您想以编程方式链接您的作业,您将无法使用JobControl。用法很简单:
JobControl jobControl = new JobControl(name);
然后添加ControlledJob实例。 ControlledJob使用它的依赖性定义作业,从而自动插入输入和输出以适应作业的“链”。
jobControl.add(new ControlledJob(job, Arrays.asList(controlledjob1, controlledjob2));
jobControl.run();
启动链。你会想要把它放在一个敏捷的线程中。这允许检查链条的状况得到控制而它运行:
while (!jobControl.allFinished()) {
System.out.println("Jobs in waiting state: " + jobControl.getWaitingJobList().size());
System.out.println("Jobs in ready state: " + jobControl.getReadyJobsList().size());
System.out.println("Jobs in running state: " + jobControl.getRunningJobList().size());
List<ControlledJob> successfulJobList = jobControl.getSuccessfulJobList();
System.out.println("Jobs in success state: " + successfulJobList.size());
List<ControlledJob> failedJobList = jobControl.getFailedJobList();
System.out.println("Jobs in failed state: " + failedJobList.size());
}
使用其MapReduce框架? – skaffman 2010-03-23 12:03:03
我编辑了这个问题来澄清我正在谈论的Hadoop。 – 2010-03-23 13:11:05
我推荐这个swineherd gem:https://github.com/Ganglion/swineherd best,Tobias – Tobias 2011-06-15 09:33:36