一、主要組成
(1)、job:由客戶端向集群提交的一次計算任務。
(2)、task:集群的最小可執行單位(乙個job將會分為多個task執行)
(3)、resourcemanager(以下簡稱rm):管理整個集群的計算資源,主要用於為每乙個job分配計算資源(整個集群只有乙個rm)
(4)、container:資源分配單位,乙個container包括一些cpu和儲存資源
(5)、nodemanager(以下簡稱nm):管理單台伺服器的計算資源,類似rm的更細粒度實現(集群中每台伺服器有乙個nm)。
二、mapreduce工作原理
(1)、client呼叫job提交介面,job被提交到集群上
(2)、為了便於標識job,會首先向rm請求乙個唯一id,並同時檢查job中的輸入/輸出路徑是否存在,如果輸入路徑不存在,則報錯;如果輸出路徑存在,也會報錯(注意別看錯了)
(3)、獲得唯一id之後,就把job所需資源(包括jar包和輸入路徑資訊)上傳到hdfs中(因為分布式環境的原因,需要將這些資源上傳到所有節點都能訪問到的目錄,即這裡的hdfs)
(4)、在完成以上步驟之後,則可以真正提交job到集群中。
(5)、啟動乙個job的時候,首先需要啟動該job的am,所以rm會主動分配nm上的乙個container(乙個container就是乙個jvm),用於執行am守護程序。
(6)、初始化job,包括啟動一些job執行狀態跟蹤物件。
(7)、從hdfs中讀取第3步上傳的輸入路徑資訊(包括輸入檔案所在的伺服器節點資訊,乙份輸入檔案可能儲存在多台伺服器上)。
(8)、根據上一步的檔案路徑資訊,向rm申請所需資源(container),盡量保證container和輸入檔案在同一臺伺服器上邊,能夠減小網路io(即資料本地化)
(9)、am根據rm分配的container,向container所屬的nm申請啟動task。
(11)、最後就是task的正式執行階段了。
Hadoop基本原理
hadoop是乙個用於海量資料統計分析的分布式計算框架,封裝了分布式計算中比較困難的程序間通訊 負載均衡,任務排程等模組,降低了學習門檻。在最簡單的程式實現中,僅僅需要重寫map和reduce方法,並實現任務提交邏輯。接下來,就讓我們一起推開hadoop的大門,走進大資料的神奇世界。hadoop目前...
八 Hadoop基本原理總結 Yarn
1 resourcemanager 2 nodemanager 他負責進行資料切分 為當前應用程式向resourcemanager去申請資源 也就是container 並分配給具體的任務 與nodemanager通訊,用來啟停具體的任務,任務執行在container中 而任務的監控和容錯 4 con...
Git基本原理(七)
1 雜湊 雜湊是乙個系列的加密演算法,各個不同的雜湊演算法雖然加密強度不同,但是有以下 幾個共同點 不管輸入資料的資料量有多大,輸入同乙個雜湊演算法,得到的加密結果長度固定。雜湊演算法確定,輸入資料確定,輸出資料能夠保證不變 雜湊演算法確定,輸入資料有變化,輸出資料一定有變化,而且通常變化很大 雜湊...