Map输入切片和记录的过程

本文详细介绍了MapReduce在执行map()函数前的数据切片过程,包括InputSplit接口、InputFormat以及切片到运行map()方法的完整流程。文中以TextInputFormat为例,说明每个输入切片被划分为记录,RecordReader用于生成键值对并传递给map()函数。同时,文章探讨了文本输入的偏移量理解,解释了LongWritable类型的键存储行的字节偏移量,而值是不包含行终止符的文本内容。
摘要由CSDN通过智能技术生成

        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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值