Hadoop之InputFormat接口的设计与实现
2013-06-13 16:53
309 查看
InputFormat主要用于描述输入数据的格式,它提供以下连个功能
1.数据切分:按照某个规则策略将输入的数据切分成若干个split,以便确定Map Task的个数以及对应的split
2.为Mapper提供输入数据:给定某个split,能将其解析成一个个的key/value对
inputFormat包含两个方法
InputSplit[] getSplits(JobConf job,int numSplits) throws IOException;
RecordReader<k,v> getRecordReader(InputSplit split,JobConf job,Reporter reporter) throws IOException;
getSplits主要完成数据的切分功能,他会将输入的数据切分成numSplits个inputSplit,inputSplit有以下两个特点
1.逻辑切分:它至少在逻辑上切分输入的数据,并不会再磁盘上将其切分存储,InputSplit只记录切分之后分片的元数据信息,比如起始位置长度以及所在节点列表等
2.可序列化:在Hadoop中,对象的序列化主要有两个作用,进程间通信和永久存储。InputSplit的可序列化主要是为了进程间的通讯。作业提交到JobTracker之前, Client会调用作业的InputFormat中的getSplits方法,并且将得到的InputSplit序列化到文件中。当JobTracker对提交上来的作业初始化的时候可以直接读取该文件,然后解析所有的InputSplit并且创建MapTask
getRecordReader方法返回一个RecordReader对象,该对象将输入的InputSplit解析成若干个key/value对,MapReduce框架在Map Task执行过程中,会不断的调用RecordReader对象中的方法,迭代获取key/value对并交给map函数处理。
1.数据切分:按照某个规则策略将输入的数据切分成若干个split,以便确定Map Task的个数以及对应的split
2.为Mapper提供输入数据:给定某个split,能将其解析成一个个的key/value对
inputFormat包含两个方法
InputSplit[] getSplits(JobConf job,int numSplits) throws IOException;
RecordReader<k,v> getRecordReader(InputSplit split,JobConf job,Reporter reporter) throws IOException;
getSplits主要完成数据的切分功能,他会将输入的数据切分成numSplits个inputSplit,inputSplit有以下两个特点
1.逻辑切分:它至少在逻辑上切分输入的数据,并不会再磁盘上将其切分存储,InputSplit只记录切分之后分片的元数据信息,比如起始位置长度以及所在节点列表等
2.可序列化:在Hadoop中,对象的序列化主要有两个作用,进程间通信和永久存储。InputSplit的可序列化主要是为了进程间的通讯。作业提交到JobTracker之前, Client会调用作业的InputFormat中的getSplits方法,并且将得到的InputSplit序列化到文件中。当JobTracker对提交上来的作业初始化的时候可以直接读取该文件,然后解析所有的InputSplit并且创建MapTask
getRecordReader方法返回一个RecordReader对象,该对象将输入的InputSplit解析成若干个key/value对,MapReduce框架在Map Task执行过程中,会不断的调用RecordReader对象中的方法,迭代获取key/value对并交给map函数处理。
相关文章推荐
- hadoop中InputFormat 接口的设计与实现
- Hadoop使用CombineFileInputFormat处理大量小文件接口实现(Hadoop-1.0.4)
- commoncrawl 源码库是用于 Hadoop 的自定义 InputFormat 配送实现
- commoncrawl 源码库是用于 Hadoop 的自定义 InputFormat 配送实现
- Hadoop MapReduce编程模型之InputFormat接口学习
- Hadoop 自定义InputFormat实现自定义Split
- hadoop中OutputFormat 接口的设计与实现
- 自定义实现InputFormat、OutputFormat、输出到多个文件目录中去、hadoop1.x api写单词计数的例子、运行时接收命令行参数,代码例子
- hadoop用MultipleInputs/MultiInputFormat实现一个mapreduce job中读取不同格式的文件
- Hadoop自定义 inputformat 和outputformat 实现图像的读写
- Hadoop自定义InputFormat以实现多文件输入 MultiFileInputFormat
- Hadoop实现自定义InputFormat按单个文件Map
- Hadoop 自定义InputFormat实现自定义Split
- Hadoop SequenceFile FileInputFormat实现
- hadoop实现join (CompositeInputFormat)
- Hadoop源码解析之: TextInputFormat如何处理跨split的行
- Atitit 通用接口的设计与实现attilax 总结
- hadoop自定义SdfTextInputFormat用在streaming中
- hadoop 之 InputFormat类 --- NLineInputFormat 实例
- 基于.NET平台的分层架构实战(五)——接口的设计与实现