- 一、InputFormat接口简介
InputFormat接口主要用于描述输入数据的格式,它有两个方法:
InputSplit[] getSplits(JobConf job, int numSplits)
RecordReader<K, V> getRecordReader(InputSplit split,
JobConf job,
Reporter reporter)
getSplits方法完成数据切分功能,它会将输入数据切分成numSplits个InputSplit,注意InputSplit有两个特点:
1.只是逻辑上的分片,只记录分片的元数据信息,比如起始位置、长度、所在的节点列表
2.可序列化,以保证进程间通信。当作业被提交到JobTracker之前,Client会调用作业InputFormat中的getSplit函数,并将得到的InputSplit序列化到文件中,当作业提交到JobTracker端对作业初始化时,可直接读取该文件,解析出所有的InputSplit,并创建对应的Map Task
getRecor