在我的单机上进行本地开发时,我相信默认的 reducer 数量是 6。在特定的 MR 步骤中,我实际上将数据划分为 n 个分区,其中 n 可以大于 6。根据我的观察,它看起来像这些分区中只有 6 个实际得到处理,因为我只看到 6 个特定分区的输出。几个问题:
(a) 我需要将reducer的数量设置为大于partition的数量吗?如果是这样,我可以在运行 Mapper 之前/期间/之后执行此操作吗?
(b) 为什么其他分区没有排队?有没有办法在处理另一个分区之前等待reducer完成处理一个分区,这样无论reducer的实际数量是否小于分区数,都可以处理所有分区?