MapReduce在执行map()函数之前,还做了大量的工作,例如数据的切片,将切片生成键值对传给map()函数等等,在执行map()之前做了很多的事情,今天就记录一下输入数据的切片和记录。(tips:由于也是刚刚学,看了权威指南,分享一下心得,有什么问题希望大家指正)
1、简单介绍一下切片,记录以及map()方法之间的联系
一个输入的切片(split)就是一个由单个map操作来处理的输入块。每一个map()操作只处理一个输入分片。每个分片被划分为若干记录,每一个记录就是一个键值对,map()一个接一个的处理记录(后面用一个TextInputFormat输入格式来演示一下)。
2、介绍一下InputSplit接口和InputFormat
InputSplit接口:
输入分片在java中表示一个接口。(idea中使用ctrl+n来全局搜索)
package org.apache.hadoop.mapreduce;
import java.io.IOException;
import org.apache.hadoop.classification.InterfaceAudience.Public;
import org.apache.hadoop.classification.InterfaceStability.Stable;
@Public
@Stable
public abstract class InputSplit {
public InputSplit() {
}
public abstract long getLength() throws IOException, Inte