大資料學習之Hadoop 15Yarn資源排程

2021-10-06 06:54:20 字數 1867 閱讀 3707

yarn是乙個資源排程平台,負責為運算程式提供伺服器運算資源,相當於乙個分布式的作業系統平台,而mapreduce等運算程式則相當於執行於作業系統之上的應用程式。

1. resourcemanager(rm):

處理客戶端請求

監控nodemanager

資源的分配與排程

2. nodemanager(nm)

管理單個節點上的資源

處理來自resourcemanager的命令

負責資料的切分

為應用程式申請資源並分配給內部的任務

任務的監控與容錯

mr程式提交到客戶端所在的節點

rm將該應用程式的資源路徑返回給yarnrunner。

該程式將執行所需資源提交到hdfs上。

rm將使用者的請求初始化成乙個task。

其中乙個nodemanager領取到task任務。

container從hdfs上拷貝資源到本地。

rm將執行maptask任務分配給另外兩個nodemanager,另兩個nodemanager分別領取任務並建立容器。

mr向兩個接收到任務的nodemanager傳送程式啟動指令碼,這兩個nodemanager分別啟動maptask,maptask對資料分割槽排序。

reducetask向maptask獲取相應分割槽的資料。

程式執行完畢後,mr會向rm申請登出自己。

1. 作業提交

client呼叫job.waitforcompletion方法,向整個集群提交mapreduce作業。

client向rm申請乙個作業id。

rm給client返回該job資源的提交路徑和作業id。

client提交jar包、切片資訊和配置檔案到指定的資源提交路徑。

2. 作業初始化

當rm收到client的請求後,將該job新增到容量排程器中。

某乙個空閒的nm領取到該job。

3. 任務分配

rm將執行maptask任務分配給另外兩個nodemanager,另兩個nodemanager分別領取任務並建立容器。

4. 任務執行

mr向兩個接收到任務的nodemanager傳送程式啟動指令碼,這兩個nodemanager分別啟動maptask,maptask對資料分割槽排序。

reducetask向maptask獲取相應分割槽的資料。

程式執行完畢後,mr會向rm申請登出自己。

5. 進度和狀態更新

yarn中的任務將其進度和狀態(包括counter)返回給應用管理器, 客戶端每秒(通過mapreduce.client.progressmonitor.pollinterval設定)向應用管理器請求進度更新, 展示給使用者。

6. 作業完成

除了向應用管理器請求作業進度外, 客戶端每5秒都會通過呼叫waitforcompletion()來檢查作業是否完成。時間間隔可以通過mapreduce.client.completion.pollinterval來設定。作業完成之後, 應用管理器和container會清理工作狀態。作業的資訊會被作業歷史伺服器儲存以備之後使用者核查。

1. 作業提交mapreduce流程圖

大資料之 Hadoop學習筆記

1 hadoop生態系統 hdfs 分布式檔案系統 hadoop hdfs 2.7.2.jar ambari 安裝部署配置和管理工具 zookeeper分布式協作服務zookeeper 3.5.1.jar hbase實時分布式資料庫hbase server 1.0.2.jar hive資料倉儲hiv...

大資料入門之Hadoop基礎學習

資料採集引擎 sqoop flumezookeeper 實現hadoop的ha oozie 工作流引擎第一階段 scala程式語言 第二階段 spark core 基於記憶體 資料的計算 第三階段 spark sql 類似於mysql 的sql語句 第四階段 spark streaming 進行流式...

大資料時代之hadoop 了解hadoop資料流

了解hadoop,首先就需要先了解hadoop的資料流,就像了解servlet的生命週期似的。hadoop是乙個分布式儲存 hdfs 和分布式計算框架 mapreduce 但是hadoop也有乙個很重要的特性 hadoop會將mapreduce計算移動到儲存有部分資料的各台機器上。術語 mapred...