Hadoop-2.4.1学习之InputFormat及源代码分析

Posted skyWalker_ONLY

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hadoop-2.4.1学习之InputFormat及源代码分析相关的知识,希望对你有一定的参考价值。

      向Hadoop集群提交作业时,需要指定作业输入的格式(未指定时默认的输入格式为TextInputFormat)。在Hadoop中使用InputFormat类或InputFormat接口描述MapReduce作业输入的规范或者格式,之所以说InputFormat类或InputFormat接口是因为在旧的API(hadoop-0.x)中InputFormat被定义为接口,而在新的API(hadoop-1.x及hadoop-2.x)中,InputFormat是做为抽象类存在的,在本篇文章中主要讲述InputFormat抽象类及其子类。InputFormat主要用于验证作业的输入是否符合规范,将输入文件分割为逻辑InputSplit,每个InputSplit被分配给一个Mapper任务,提供RecordReader的实现,该实现负责从InputSplit中收集记录交由Mapper任务处理。不同的InputFormat子类提供了不同的InputSplit和RecordReader,比如用于文件的FileSplit和用于数据库的DBInputSplit,用于文本文件的LineRecordReader和Sequence文件的SequenceFileRecordReader等。下图为InputFormat及其子类关系图:

      InputFormat抽象类只提供了两个抽象方法,分别用于获取InputSplit和RecordReader。其中的InputSplit只是对输入文件的逻辑分割,而不是物理上将输入文件分割为块,或者说InputSp

以上是关于Hadoop-2.4.1学习之InputFormat及源代码分析的主要内容,如果未能解决你的问题,请参考以下文章

Hadoop-2.4.1学习之高可用ResourceManager

Hadoop-2.4.1学习之FileSystem及实战

Hadoop-2.4.1学习之Writable及其实现

Hadoop-2.4.1学习之InputFormat及源代码分析

Hadoop-2.4.1学习之InputFormat及源代码分析

Hadoop-2.4.1学习之RawComparator及其实现