在MRv1中,我们有以下两个可配置参数来设置每个节点的映射和缩减插槽的数量。
mapred.tasktracker.map.tasks.maximum
mapred.tasktracker.reduce.tasks.maximum
此外,建议Map插槽的数量略高于Reduce插槽的数量。Map Reduce作业的reducers理想数量应等于或大于群集中可用reduce插槽的数量。
如果我上面的理解不正确,请更正wrt MRv1...
在MRv2中,我们不再有槽的概念,取而代之的是容器为Map/Reduce tak的执行提供所需的内存和CPU。
我的问题来了,如何确定MRv2中任何Map Reduce作业的Reduce数量?
谢谢
发布于 2015-06-23 17:07:51
mapred.tasktracker.reduce.tasks.maximum被替换为
mapreduce.tasktracker.reduce.tasks.maximum此属性表示给定任务跟踪器节点可以运行的并发reduce插槽的最大数量。
mapred.tasktracker.map.tasks.maximum被替换为
mapreduce.tasktracker.map.tasks.maximum此属性表示给定任务跟踪器节点可以运行的并发map slots的最大数量。
在YARN和MapReduce 2中,映射和还原任务不再有预先配置的静态插槽。整个集群可用于Map的动态资源分配,并根据作业需要减少。
但是如果你想给你的工作分配reducer的数量,你仍然可以通过在你的Map/Reduce作业中指定以下属性来实现。
mapreduce.job.reduces请查看此link以了解更多信息。
映射器的数量基本上是根据数据的输入拆分数量来分配的。假设您正在处理1 1GB的数据集,并且HDFS块大小为128MB,并且您在作业中没有指定任何拆分大小,那么将考虑1GB/128MB=8拆分,并将8个映射器分配给此作业,但是假设如果您在代码中指定了拆分大小512MB,则将考虑将1GB/512MB=2映射器分配给此作业。
请查看此link以了解更多信息。
https://stackoverflow.com/questions/30990806
复制相似问题