我刚学过这本书< Hadoop:明确指南>。我对最重要的流程有几个问题:随机播放。
排序 的时间顺序, 分区 和 合并< / EM>
映射器的输出可能是几个Reducers的输入。从书中我们知道映射器将首先将其输出写入其内存缓冲区。在将缓冲区溢出到磁盘之前,进行排序和分区。我想及时知道它们的顺序。我的推论是:在结果溢出到dist之前,进行分区以确定输出属于哪个reducer。然后,对于每个分区,一个排序方法(据我所知,它是快速排序)是分开进行的。当缓冲区已满或达到阈值时,则溢出到磁盘。
每个 溢出文件 和 合并文件 属于每个reducer或multi-redurs?< / p>
同样,根据这本书,当溢出的文件太多时,会发生合并操作。这让我很困惑。
2.1每个溢出文件是属于每个reducer,还是只是内存缓冲区的简单转储文件,属于multi-redurs?
2.2。合并溢出文件后,合并文件将包含多个Reducer的输入数据?那么当涉及到reducer的复制阶段时,reducer如何从这个合并文件中获取实际属于它的部分?
2.3每个Mapper Task都会生成一个合并文件,而不是每个taskTracker,对吗?