在尝试了2个化简器之后,从Hadoop Wiki阅读了HowManyMapsAndReduce,hadoop:化简器的数量保持不变 4,Hadoop:映射器和化简器的数量以及设置映射任务的数量和减少任务 我得出的结论是:
如果我有 1 个映射(我知道这个数字实际上是由 Hadoop 决定的)和 2 个化简器(我实际上只提供了 1 个带有化简器代码的文件,例如 -reducer /bin/wc
),那么接下来会发生什么?
- Hadoop会将映射器发送的数据分发给两个化简器(例如,给定 1000 行文本,它将给出 ~500 到第一个化简器和~500 到第二个减速器)?
- Hadoop将把映射器发送给两个化简器的所有数据提供给两个化简器(例如,给定 1000 行文本,它将给 1000 到第一个化简器,并且1000到第二减速器)?
我认为是第一种选择,但我在网上搜索时找不到证据。
选项 1a:Hadoop 会将数据分发给化简器,但它可能不会平均分配它。 不能保证平衡,尤其是在 (1) 密钥分发偏斜或 (2) 记录不多的情况下。