03Hadoop的MapReduce
Hadoop中的MapReduce
作用
提供分佈式的計算模型
實現思想
分而治之
組成
1.Map
作用:負責將任務進行切分,當map拿到一個job(即任務進程)之後會將這個任務進程拆分成多個小任務(即task任務),然後將每個task任務分發到不同的節點上運行
1.mapreduce程序中task任務分爲兩種maptask和reducetask
2.shuffle
作用:map中每個task會產生運行結果,這些結果最終要給reduce進行合併,此時shuffle就相當於一個臨時中間存儲計算階段存在於map和reduce之間(mapreduce的核心);
3.Reduce
作用:將所有子任務的結果進行合併
hadoop中MapReduce程序運行的五個階段
1.input:將要mapreduce要處理的文件讀取進來,默認讀取的是hdfs上的數據
2.map:分片和過濾類的操作,一部分一部分的處理,挨個執行每個map task;
3.shuffle:
4.reduce:將多個map task的結果進行處理合並,也可以在reduce中設置一些執行業務
5.output:默認輸出到hdfs,也可以自定以輸出到其他地方比如mysql中