1、框架會把輸入文件(夾)劃分為很多InputSplit,默認(rèn)每個HDFS的Block對應(yīng)一個InputSplit齐鲤。通過RecordReader類堵泽,會把每一個InputSplit解析成一個個<k1,v1>。默認(rèn)每一行數(shù)據(jù)會被解析成一個<k1,v1>
2赴蝇、框架調(diào)用Mapper類的map(...)函數(shù)菩浙,map函數(shù)的輸入是<k1,v1>,輸出是<k2,v2>句伶,一個InputSplit對應(yīng)一個Map Task
3劲蜻、框架調(diào)用map函數(shù)輸出的<k2,v2>進(jìn)行分區(qū)。不同分區(qū)中的<k2,v2>由不同的Reduce Task處理考余,默認(rèn)只有一個分區(qū)
4先嬉、框架對每個分區(qū)中的數(shù)據(jù),按照k2進(jìn)行排序和分組秃殉。分組是指相同的k2和v2分成一組
5坝初、在Map階段,框架可以執(zhí)行Combiner操作