Hadoop输出以下统计信息:
- 平均地图时间
- 平均减少时间
- 平均随机播放时间
- 平均合并时间
总地图和化简时间可以通过将完成的地图数量/减少数乘以这些平均值来获得。但是如何获得总洗牌/合并时间呢?或者:平均洗牌时间是如何计算的?
平均映射时间 = 所有映射任务所用的总时间/映射任务计数
平均减少时间 = 所有减少任务所花费的总时间/减少任务计数
平均合并时间 = 平均值(try.sortFinishTime - try.shuffleFinishTime)
在随机阶段,由 Map 任务生成的中间数据被定向到右侧的化简器。随机阶段将键分配给化简器和将特定键的所有值发送到右侧化简器。
在将输出值发送到 Reducer 之前,此阶段也会进行排序。
随机阶段涉及从 Map 节点跨网络传输数据。
从阿帕奇链接
洗牌
化简器的输入是映射器的排序输出。在此阶段,框架通过 HTTP 获取所有映射器输出的相关分区。
排序
在此阶段,框架按键对 Reducer 输入进行分组(因为不同的映射器可能输出相同的键)。
随机和排序阶段同时发生;当获取映射输出时,它们被合并。
Hadoop框架将执行这两个阶段:洗牌和排序