我刚学会这本书<hadoop:the definite 指南>。我有几个关于最重要的问题process:shuffle.
排序、划分和合并的时间顺序
一个Map器的输出可能是几个减缩器的输入,从书中我们知道Map器会先把它的输出写到它的内存缓冲区,在它把缓冲区溢出到磁盘之前,进行排序和分区,我想知道它们的时间顺序,我的推断是:在结果溢出到dist之前,执行分区来确定输出属于哪个减缩器,然后对每个分区分别执行排序方法(如我所知,它是快速排序)。当缓冲区已满或达到阈值时,则溢出到磁盘。
每个溢出文件和合并文件属于每个缩减器还是多缩减器?
同样,根据这本书,当溢出的文件太多时,会发生合并操作。这又让我困惑了。
2.1每个溢出文件是属于每个缩减器,还是它们只是内存缓冲区的一个简单转储文件,属于多个缩减器?
2.2.合并溢出文件后,合并文件将包含多个减速器的输入数据?那么,当谈到reducer的复制阶段时,reducer如何从这个合并文件中获得实际属于它的部分呢?
2.3每个mapper任务将生成一个合并文件,而不是每个tasktracker,对吗?
暂无答案!
目前还没有任何答案,快来回答吧!