InputFormat 接口决定了mapreduce如何切分输入文件。
InputFormat 由getspilit和createRecordReader组成,getspilit主要是标记分片的初始位置和大小,获取inputSplit,createRecordReader配合getspilit的信息生成一个RecordReader,用来从inputSplit中读取数据。
NLineInputFormat:
默认情况下在对输入文件进行拆分时,会按block块的大小分成多个InputSplit,InputSplit的数量取决于block的大小。每
个map进程处理一个InputSplit,InputSplit中有多少行记录就会调用多少次map函数。
如果使用NlineInputFormat,代表每个map进程处理的InputSplit不再按block块去划分,而是按NlineInputFormat指定的
行数N来划分。即,每个InputSplit中只有N行记录数。同样InputSplit中有多少行记录就会调用多少次map函数。
mapreduce结构:client客户端、JobTracker、TaskTracker、Task分为MapTask和ReduceTask、Reduce Slot和Map Slot