我有五个地图减少,我分别运行每个。我想把它们都汇集在一起。所以,一份工作的输出会转到下一份工作。目前,我编写了shell脚本来执行它们。有没有办法在java中写这个?请举一个例子。Pipeling hadoop map reduce jobs
感谢
我有五个地图减少,我分别运行每个。我想把它们都汇集在一起。所以,一份工作的输出会转到下一份工作。目前,我编写了shell脚本来执行它们。有没有办法在java中写这个?请举一个例子。Pipeling hadoop map reduce jobs
感谢
您可能会发现JobControl成为链接这些工作在一起的最简单的方法。对于更复杂的工作流程,我建议检查Oozie。
嗨 我有类似的要求 一个做到这一点的方法是
提交的第一份工作执行以下
Job job1 = new Job(getConf());
job.waitForCompletion(true);
,然后使用
if(job.isSuccessful()){
//start another job with different Mapper.
//change config
Job job2 = new Job(getConf());
}
Oozie的是检查状态后为你解决。您可以通过Oozie的操作标签提交map-reduce类型的作业,hive作业,猪作业,系统命令等。
它甚至有一个协调员,作为您的工作流的cron。
另一种可能性是Cascading,它也在Hadoop之上提供了一个抽象层:它似乎提供了与Hadoop概念密切合作的类似组合,但却让hadoop-do-M/R-heavy解除了使用Oozie工作流调用Pig脚本的问题。