我目前有一个任务,我需要在Hadoop中链接几个工作。 我现在在洞里是我有2个工作。我的第一份工作有一个地图功能,一个组合器和一个减速器。那么我需要一个减少的阶段,所以我创建了一个简单的地图任务,将前一个减速器的输出传递给最终减速器的第二个任务。 我发现这有点“愚蠢”,因为必须有一种方法来简单地链接这个。此外,我认为I/O将会减少。Hadoop:在0.20.203链接工作
我使用0.20.203版本,我只找到使用JobConf的ChainMapper和ChainReducer的不推荐使用的例子。 我发现这些: http://hadoop.apache.org/mapreduce/docs/current/api/org/apache/hadoop/mapreduce/lib/chain/ChainMapper.html http://hadoop.apache.org/mapreduce/docs/current/api/org/apache/hadoop/mapreduce/lib/chain/ChainReducer.html ,这似乎与工作类,而不是与在203弃用JobConf工作,但没有包含在203
你是说你发现它有点“愚蠢”,不得不编写你自己的传递输出的简单地图任务吗?你的问题是什么?你会从不同减速器的输出中获得相同的关键吗? – 2012-03-01 03:51:50
我在说,我只是想连锁2个工作,而不必将第一份工作的输出传递给第二份工作。用2个工作做这件事非常简单,我知道,因为我已经做到了。但是由于hadoop有一个优化的连锁方式,减少了I/O,我只是想用这种方式。但我总是发现不赞成的例子。我有3本关于hadoop的书,它们都有不合适的例子。现在我已经找到了另一种方式来做到这一点,比有2个工作更有效率,我保留这个职位,因为我找不到任何其他关于链接的帖子(对于203版本)。感谢您的关注 – jojoba 2012-03-01 18:41:51