最近我试图理解Mumak的工作原理(参见,例如MAPREDUCE-728)
它基本上采用作业跟踪和拓扑跟踪并模拟hadoop。我不明白它是如何在节点间分配分割的。mumak所说的本地地图任务和非本地任务是什么意思?
在MapReduce中有一个"局部性"的概念,它表示一个任务离它正在处理的数据有多远。最佳的局部性是在包含所需数据的节点上运行任务。次优位置是与包含数据的节点在同一机架中的节点,等等。
Mumak能够通过在配置文件中使用以下设置来减慢非本地节点上调度的任务:
<property>
<name>mumak.scale.racklocal</name>
<value>1.5</value>
<description>Scaling factor for task attempt runtime of rack-local over
node-local</description>
</property>
<property>
<name>mumak.scale.rackremote</name>
<value>1.8</value>
<description>Scaling factor for task attempt runtime of rack-remote over
node-local</description>
</property>