Rack-local map任务和Data-local map任务有什么区别?

时间:2012-10-07 13:49:08

标签: hadoop mapreduce hadoop-streaming

当我运行“hadoop job -status xxx”时,输出以下一些列表。

Rack-local map tasks=124
Data-local map tasks=6

Rack-local map任务和Data-local map任务有什么区别?

2 个答案:

答案 0 :(得分:9)

在数据本地任务中,不需要复制任何内容。那是因为该块与计算物理上位于同一服务器上。

下一层是机架本地任务,此处必须复制数据,因为没有可用的所需块的本地副本。请注意,rack-local仅在网络的机架本地交换中复制。

最糟糕的情况是,数据不在本地,也不在同一机架上。因此,必须通过两台交换机将其复制到运行计算的主机。我不知道是否有一个计数器,但基本上这必须是#all tasks - #data-local tasks - #rack-local tasks

答案 1 :(得分:1)

我想指出,在同一机架内的计算机之间提供千兆(或更快)的网络比对更多数量的计算机便宜得多。
根本原因是以太网交换机不可扩展,我们无法以合理的价格为数百个端口进行此类交换。
因为hadoop尝试至少在同一个机架中运行任务,如果无法在存储数据的节点上执行任务。