根据理论,以下属性用于定义数据节点处的地图/红色任务槽的数量。
mapred.tasktracker.map.tasks.maximum | mapred.map.tasks
。
此外,映射器对象的数量由MapReduce作业中的输入拆分数决定。我们实现map / red函数,框架创建对象并将它们发送到最接近数据块的位置。
那么地图任务槽和框架创建的映射器对象之间的区别是什么。
假设我在2个数据节点上存储2TB文件,每个节点有400Mb。
如果我定义dfs.block.size =100Mb
,则每个节点将保存400/100 = 4个数据块。在这里,在4个数据块中,理想情况下,每个节点可以有4个输入分割和4个映射器对象。同时,如果我定义mapred.tasktracker.map.tasks.maximum = 2
& mapred.map.tasks=2
,那么我可以从中得出什么结论。我可以说4个映射器对象将在2个映射任务槽之间共享。我可能会走错方向,任何澄清都会有所帮助。
答案 0 :(得分:0)
map slots
确定任务执行者可以运行多少map tasks
。 map tasks
由输入拆分决定,您无法对其进行更改。如果map tasks
超过map slots
某些map tasks
将阻止并运行,直到其他任务完成。