这篇文章简要分析一下 MapReduce 的第一个核心组件 InputFormat,文中引用的源码都是来自 Hadoop 2.7.3,隐去了一些实现细节,只突出了与这次关注的内容比较相关的部分。
《Hadoop 技术内幕:深入解析 MapReduce 架构设计与实现原理》中写道,InputFormat 用于描述输入数据的格式,它提供以下两个功能:
数据切分:按某个策略将输入数据切分成若干 split,以便确定 Map Task 个数及对应的 split。
为 Mapper 提供输入数据:给定某个 split,能将其分解成一个个 key/value 对。