输入拆分是否会复制到JobTracker FileSystem?

时间:2014-11-11 17:58:24

标签: hadoop mapreduce

如Hadoop权威指南中所述,在提交MR作业期间,计算输入拆分,然后将其复制到JobTracker的文件系统。但是,如果数据非常庞大,那对我来说没有意义。此副本将花费大量时间,如果运行JobTracker的节点没有足够的空间,此副本会发生什么?请澄清这个处理框架。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

InputSplits只是块边界的逻辑抽象。通常,InputSplit包含以下信息:

  • 文件路径
  • 阻止开始位置
  • 要处理的文件中的字节数
  • 包含正在处理的文件块的主机列表

对于给定的作业,JobClient负责通过调用内部调用的FileSplit方法来计算输入拆分信息(这只是上述writeSplits个对象的ArrayList) InputFormat的{​​{1}}方法,一旦计算出来,这些信息就会被复制到JobTracker将从中读取的HDFS,并根据数据位置安排映射器。

如果您对如何计算分割本身感兴趣,请查看 FileInputFormat.getSplits 方法。