输入拆分是否被复制到作业跟踪器文件系统



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

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

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

对于给定的作业,JobClient 有责任通过调用内部调用InputFormat getSplits方法writeSplits计算输入拆分信息(这只是上述FileSplit对象的 ArrayList(,一旦计算出此信息,这些信息就会复制到 HDFS,JobTracker 将从那里读取并根据数据位置调度映射器。

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

相关内容

  • 没有找到相关文章

最新更新