您好,登錄后才能下訂單哦!
這篇文章主要介紹“Hadoop Mapreduce架構分析”,在日常操作中,相信很多人在Hadoop Mapreduce架構分析問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Hadoop Mapreduce架構分析”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
1、Client
用戶編寫的MapReduce程序通過Client提交到JobTracker端;同時,用戶可通過Client提供的一些接口查看作業運行狀態。在Hadoop內部用“作業”Job表示MapReduce程序。一個MapReduce程序可對應若干個作業,而每個作業會被分解成若干個Map/Reduce任務(Task)。
2、JobTracker
JobTracker主要負責作業調度和資源監控。
作業調度:監控所有TaskTracker與作業的健康狀況,一旦發現失敗情況后,其會將相應的任務轉移到其它節點。
資源監控:JobTracker會跟蹤任務執行進度、資源使用量等信息,并將這些信息告訴任務調度器,而調度器會在資源出現空閑時,選擇合適的任務使用這些資源。在Hadoop中任務調度器是一個可插撥的模塊,可自行設計。
3、TaskTracker
TaskTracker會周期性地通過Heartbeat將本節點上資源的使用情況和任務的運行進度匯報給JobTracker,同時接收JobTracker發送過來的命令并執行相應的操作(如啟動新任務、殺死任務等)。
TaskTracker使用"slot"等量劃分本節點上的資源量。”slot“代表計算資源。一個Task獲取一個slot后才有機會運行。而Hadoop調度器的作用就是將各個TaskTracker上的空閑slot分配給Task使用。slot分為Map slot和Reduce slot兩種,分別供Map Task和Reduce Task使用。TaskTracker通過slot數目限定Task的并發度。
4、Task
Task分為Map Task 和Reduce Task兩種,均由TaskTracker啟動。HDFS以固定大小的block為基本單位存儲數據,而對MapReduce而言,其處理單位是split。split與block的對應關系如下圖
split是一個邏輯概念,它只包含一些元數據信息,比如數據起始位置、數據長度、數據所在節點等.劃分方法完全由用戶自己決定。split的多少決定Map Task數量,一個split對應一個Map Task。
Map Task執行過程如下圖:
Map Task先將對應的split迭代解析成一個key/value對,依次調用map函數進行處理,并將處理結果存放在本地磁盤,其中臨時數據被分為若干個partition,每個partition將被一個Reduce Task處理。
Reduce Task執行過程如下圖:
該過程分為三個階段:1、shuffle階段,從遠程節點上讀取Map Task中間結果;2、Sort階段,按照key對key/value進行排序;3、reduce階段,依次讀取<key,value list>,調用reduce函數處理,并存入HDFS。
到此,關于“Hadoop Mapreduce架構分析”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。