InputFormat有兩個抽象方法:spa
getSplits createRecordReader
InputSplits 將數據按照Split進行切分,一個Split分給一個task執行。
RecordReader 在Task中將Split按照key value進行切分,每一個RecordReader切分的數據都給map方法執行一遍。
RecordReader三個抽象方法:
initialize 用來seek位置等
getCurrentKey getCurrentValue map讀取key value
nextKeyValue 生成key value
getProgress
close
OutputFormat RecordWriter
OutputFormat抽象方法
checkOutputSpecs
getRecordWriter
OutputCommitter作繁重的工做,如create目錄,rename,close等