首先放一張官方圖片,大體瞭解下整個MapReduce的處理過程。性能
拋出以下疑問:blog
一、MapReduce的基本原理是什麼?即利用什麼機制來實現的任務拆分處理?排序
二、MapReduce任務執行過程是什麼?任務怎麼提交?如何運行?哪一個組件或者模塊能夠監控任務的運行狀態,好比YARN服務?數據存儲(原始數據、中間數據、輸出結果)依賴什麼基礎構件?圖片
三、輸入數據怎麼進行切割分片?即所謂的input split,好比分割依賴數據輸入和HDFS Block塊大小,分割結果決定Map任務個數。input
四、map過程如何實現?即所謂的map task;it
五、map輸出的過程是什麼?輸出的數據怎麼存儲的?如何提升輸出時的性能?好比輸出內容是否排序,如何存盤,如何處理能夠更方便後續的reduce任務處理。監控
六、map輸出數據到reduce的task過程當中,數據是怎麼匯聚起來的?即所謂的shuffle過程;基礎
七、reduce任務怎麼處理?輸出結果的格式?好比是否須要壓縮,以何種壓縮方式壓縮?原理
八、MapReduce任務的並行處理和串行處理?配置
九、MapReduce適用的場景是什麼?
十、MapReduce的可靠性怎麼處理?
十一、MapReduce參數配置
十二、MapReduce性能調優