【发布时间】:2021-01-27 13:02:03
【问题描述】:
reducer 数量的默认值为 1。Partitioner 确保来自多个 mapper 的相同键进入同一个 reducer,但这并不意味着 reducer 的数量将等于分区的数量。从驱动程序中,可以使用 JobConf 的 conf.setNumReduceTasks(int num) 或在命令行中的 mapred.reduce.tasks 指定减速器的数量。如果只需要映射器,那么我们可以将其设置为 0。
我已阅读有关设置减速器数量的信息:
- reducer 的数量可以在 0.95 或 1.75 乘以(节点数)*(每个节点的最大容器数)之间。我还在下面的链接中读到,增加减速器的数量可能会产生开销:
- 另外,我在下面的链接中读到,reducer 的数量最好设置为集群中的 reduce 插槽数(减去一些以允许失败):
What determines the number of mappers/reducers to use given a specified set of data
基于1中指定的范围,基于2,如何确定最快处理的最佳数量?
谢谢。
【问题讨论】:
-
您的集群需要多长时间才能完成单个测试任务,以便对不同的配置进行基准测试?
-
我想知道一般的方法。