1

当 JobTracker 将 map 任务分配给 TaskTracker 时,它是否需要与 NameNode 对话?或者它可以从 InputSplit 本身获取信息?当我查看代码时,我看到 InputSplits 包含有 BlockLocations。JobTracker 会使用这些信息还是需要与 Namenode 一起使用?

4

2 回答 2

0

JobTracker 确实联系 NameNode 以获取块位置。如果作业正在处理的块数非常大,则此过程可能特别需要一段时间。

于 2012-12-07T04:02:06.380 回答
0

客户端计算拆分信息并将其与拆分信息一起写入 HDFS。

您可以查看 Hadoop 1.xJobSplit.SplitMetaInfo实现的序列化,该序列化也对位置进行序列化。

jobtracker 只是拾取这些序列化并安排它们,其中位置只是一个提示,如果插槽可用,则可以更快地执行。

于 2012-12-07T08:28:51.400 回答