2013-02-15 71 views
3

我非常喜欢Hadoop初学者,但在Hadoop 1.1.1中,我试图做map - > reduce - > map - > reduce。我很难找到如何在Java中执行此操作的具体示例。我很好奇整个驱动程序的方式是什么样子。我目前正在使用org.apache.hadoop.mapreduce库(我相信它是最新的代码库)。链接Hadoop MapReduce 1.1.1示例

另外,如果我不需要,我宁愿不安装另一个类似Oozie的库。

+0

你的意思是你想在reduce函数后触发一个映射器,然后再次触发最后一个映射器的reducer?如果是的话,为什么呢?你想达到什么目的? – aa8y 2013-02-15 04:57:26

+0

@Expressions_Galore是的,我认为是。从我读过的东西看,通常需要多个映射器和缩减器,但对于我来说这并不明显。 – Newtang 2013-02-15 05:02:27

+0

这是你想要实现的吗? http://stackoverflow.com/questions/11122832/hadoop-mapreduce-possible-to-define-two-mappers-and-reducers-in-one-hadoop-job – aa8y 2013-02-15 05:34:28

回答

3

我认为这可以帮助你:http://blogs.msdn.com/b/avkashchauhan/archive/2012/03/29/how-to-chain-multiple-mapreduce-jobs-in-hadoop.aspx

您也可以考虑ChainMapper取决于你想要达到的目的(http://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapred/lib/ChainMapper.html)。不过,这只适用于一种减少。如果你想特别地图 - >减少 - >地图 - >减少,我会去我的第一个链接。

+0

这非常有帮助,谢谢。一些JobConf引用是旧API的一部分。但是,做新的工作(),waitingForCompletion,然后新的工作()再次正常工作。 – Newtang 2013-02-20 19:30:46