Hadoop MapReduce架構簡介(初學學習不錯)
MapReduce採用主從結構,JobTracker作為主節點,TaskTracker作為從節點。
其架構圖詳見圖1所示:
圖1 MapReduce架構圖
1、Client
使用者編寫的MapReduce程式通過Client提交到JobTracker端,還可通過Client提供的一些介面檢視作業的執行狀態。在Hadoop內部,用Job(作業)表示MapReduce程式。一個MapReduce程式對應若干個作業,而每個作業會被分解成若干個Map Task或Reduce Task。
2、JobTracker
JobTracker的職責:
接收客戶端提交的計算任務(Job);
通過任務排程器(TaskSheduler)分配計算任務給TaskTracker執行;
監控所有TaskTracker與作業的健康狀況,當發現任務出現故障時,將相應的任務轉移到其他的節點。
打個比方,JobTracker相當於企業軟體開發的專案經理,主要負責各種資源的準備、排程和開發任務的分配。
3、TaskTracker
TaskTracker週期性的通過Heartbeat將本節點資源的使用情況和任務的執行進度彙報給JobTracker,同時接收JobTracker傳送過來的命令並執行相應的操作,如啟動新的任務、殺死作業等等。相對應的,TaskTracker相當於開發人員,主要執行專案經理分配的開發任務,並按時向專案經理彙報專案的開發進度。
4、Task
Task分為Map Task和Reduce Task兩種,都是由TaskTracker啟動。MapReduce的處理單位是split,它是一個邏輯概念(意味著實際上並沒有對資料切割),只包含一些後設資料資訊,如資料偏移量、資料長度等。Split的多少決定了Map Task的多少,因為每個split會交給一個Map Task處理。
Map Task的執行過程如下圖所示:
Map Task的執行過程:
Map Task先將對應的split迭代解析成一個個的<key,value>對,然後依次呼叫使用者自定義的map()方法進行處理,最終將臨時結果存放到本地磁碟上,其中,臨時結果被分成若干個partition,每個partition將被一個Reduce Task處理。
Reduce Task的執行過程如下圖所示:
Reduce Task的執行過程:
1)、從遠端節點上讀取Map Task中間結果,這是Shuffle階段;
2)、按照key對key/value pair進行排序,這是Sort階段;
3)、依次讀取<key, value list>,呼叫使用者自定義的reduce()方法處理,
並最終的結果存到HDFS,這是Reduce階段。
相關文章
- Hadoop學習(二)——MapReduce\Yarn架構HadoopYarn架構
- Hadoop學習——MapReduceHadoop
- Hadoop學習之YARN及MapReduceHadoopYarn
- JAVANIO學習筆記1-架構簡介Java筆記架構
- Hadoop 學習系列(四)之 MapReduce 原理講解Hadoop
- Hadoop之MapReduce2架構設計Hadoop架構
- Hadoop學習第四天--MapReduce提交過程Hadoop
- Hadoop學習筆記(1):概念和整體架構Hadoop筆記架構
- codis架構學習架構
- Redis 學習-資料結構基本簡介Redis資料結構
- MapReduce 簡介
- hadoop生態圈綜合簡介及架構案例Hadoop架構
- [hadoop]mapreduce原理簡述Hadoop
- 即學即會:初識 Serverless 架構Server架構
- 學習架構設計架構
- 架構學習筆記架構筆記
- 架構學習-多工架構
- Java學習:JDBC簡介JavaJDBC
- 強化學習-簡介強化學習
- CSS 學習一(簡介)CSS
- Ajax學習-Ajax簡介
- Java學習--JavaWeb簡介JavaWeb
- OpenCV學習之旅 簡介OpenCV
- 隨機學習簡介隨機
- Java平臺除錯架構簡介 (轉)Java除錯架構
- MapReduce設計模式學習設計模式
- Hadoop2.6.0子專案hadoop-mapreduce-examples的簡單介紹Hadoop
- Android初級之路-Android系統架構簡介Android架構
- 初學 Android 架構元件之 LifecycleAndroid架構元件
- 初學 Android 架構元件之 ViewModelAndroid架構元件View
- ELK架構簡介架構
- Hadoop架構的初略總結(1)Hadoop架構
- Hadoop架構的初略總結(2)Hadoop架構
- Java架構師如何學習?Java架構
- Dubbo架構的學習之旅架構
- Flume學習——Flume的架構架構
- 【java】架構演變學習Java架構
- 架構演化學習思考(3)架構