【发布时间】:2014-09-06 09:42:18
【问题描述】:
我对从 Mapper 获得的输出有点困惑。
例如,当我运行一个简单的字数统计程序时,输入文本如下:
hello world
Hadoop programming
mapreduce wordcount
lets see if this works
12345678
hello world
mapreduce wordcount
这是我得到的输出:
12345678 1
Hadoop 1
hello 1
hello 1
if 1
lets 1
mapreduce 1
mapreduce 1
programming 1
see 1
this 1
wordcount 1
wordcount 1
works 1
world 1
world 1
如您所见,mapper 的输出已经排序。我根本没有运行Reducer。
但是我在另一个项目中发现映射器的输出没有排序。
所以我很清楚这一点..
我的问题是:
- 映射器的输出是否总是排序的?
- sort 阶段是否已经集成到 mapper 阶段,所以 map 阶段的输出已经在中间数据中进行了排序?
- 有没有办法从
sort and shuffle阶段收集数据并在它进入Reducer 之前将其持久化?一个reducer 带有一个key 和一个iterables 列表。有没有办法,我可以持久化这些数据?
【问题讨论】: