根据理论,以下属性用于定义数据节点上map/red任务槽的数量。 mapred.tasktracker.map.tasks.maximum | mapred.map.tasks
.
此外,mapper对象的数量由mapreduce作业中的输入拆分数量决定。我们实现了map/red功能,框架创建对象并将其发送到最接近数据块的位置。
那么,Map任务槽和框架创建的Map器对象之间有什么区别呢。
假设我跨5个数据节点存储2tb文件,每个节点有400mb。如果我定义 dfs.block.size =100Mb
然后每个节点将容纳400/100=4个数据块。在这里,在4个数据块中,理想情况下,每个节点可以有4个输入拆分和4个Map器对象。同时如果我定义 mapred.tasktracker.map.tasks.maximum = 2
& mapred.map.tasks=2
那么我能从中得出什么结论呢。我可以说4个Map器对象将在2个Map任务槽中共享吗。我可能走错了方向,任何澄清都会有帮助。
1条答案
按热度按时间e3bfsja21#
这个
map slots
确定有多少map tasks
TaskTracker可以运行。这个map tasks
是由输入拆分决定的,您不能更改它。如果map tasks
超过map slots
一些map tasks
将阻止并运行,直到其他任务完成。