当JobTracker分配一个map任务给TaskTracker时,是否需要和NameNode对话?或者它可以从 InputSplit 本身获取信息? 当我查看代码时,我看到 InputSplits 包含 BlockLocations。 JobTracker 会使用这些信息还是需要与 Namenode 一起使用?
最佳答案
客户端计算分割信息,并连同分割信息一起写入HDFS。
您可以查看 Hadoop 1.x JobSplit.SplitMetaInfo
实现的序列化也对位置进行序列化。
jobtracker 只是拾取这些序列化并安排它们,其中的位置只是一个提示,如果插槽可用则可以更快地执行。
关于Hadoop - 文件到 block 的映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13755232/