阅读以下关于 Hadoop-权威指南第 4 版(第 204 页)的文章后,我感到困惑
在写入磁盘之前,线程首先将数据划分为与它们最终将被发送到的减速器相对应的分区。
在每个分区内,后台线程按键执行内存排序,如果有组合器函数,则在排序的输出上运行。
运行 combiner 函数可以得到更紧凑的 map 输出,因此写入本地磁盘和传输到 reducer 的数据更少。
这是我的疑问:
1)谁将执行第一个组合器或分区!
2) 当自定义组合器和自定义分区将存在时,执行步骤层次结构如何以及将是什么?
3)我们可以将压缩数据(avro,sequence ..etc)提供给自定义组合器,如果是,那么如何!
寻求简短而深入的解释!
提前致谢。