在 hadoop wiki 中找不到对此的具体引用...
假设我有一份需要 100 个映射器的工作,没有偏差。当我将“map.tasks.maximum”设置为 100 时,hadoop 会等待它们全部完成,然后进行随机播放(复制到减速器),这需要等待网络带宽的时间。
如果我将“map.tasks.maximum”设置为 10,则将有 10 个映射器的 10 代,当每一代完成时,将执行 1/10 数据的洗牌,而下一代映射器已经在工作在接下来的记录中。
这真的会更精简并改善我的工作延迟吗?这甚至是一个有价值的目标吗?这会以集群的吞吐量为代价吗?