hadoop的运行机制
生活随笔
收集整理的這篇文章主要介紹了
hadoop的运行机制
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如要了解hadoop的運行機制過程, 需要先了解幾個概念: mapreduce中概念: 1、首先用戶程序(JobClient)提交了一個job,job的信息會發送到Job Tracker,Job Tracker是Map-reduce框架的中心,他需要與集群中的機器定時通信heartbeat,需要管理哪些程序應該跑在哪些機器上,需要管理所有job失敗、重啟等操作。 2、TaskTracker是Map-Reduce集群中每臺機器都有的一個部分,他做的事情主要是監視自己所在機器的資源情況。 3、TaskTracker同時監視當前機器的tasks運行狀況。TaskTracker需要把這些信息通過heartbeat發送給JobTracker,JobTracker會搜集這些信息以給新提交的job分配運行在哪些機器上。 yarn中概念: 4、NM:NodeManager,管理每個節點上的資源和任務,主要有兩個作用:定期向RM匯報該節點的資源使用情況和各個container的運行狀態、接受并處理AM的作業任務啟動,停止等請求。 5、RM:ResourceManager,負責管理所有應用程序計算資源的分配。 6、AM: ApplicationManager,每一個應用程序的AM負責相應的調度和協調。 7、containers:yarn為將來的資源隔離而提出的框架,每一個任務對應一個container,且只能在該container中運行。 如下圖,所示: 基本的步驟:作業提交--作業初始化--任務的分配--任務的執行--任務進度和狀態的更新--任務結束; 更細的步驟: (0)Mr 程序提交到客戶端所在的節點。 (1)Yarnrunner 向 Resourcemanager 申請一個 Application。 (2)rm 將該應用程序的資源路徑返回給 yarnrunner。 (3)該程序將運行所需資源提交到 HDFS 上。 (4)程序資源提交完畢后,申請運行 mrAppMaster。 (5)RM 將用戶的請求初始化成一個 task。 (6)其中一個 NodeManager 領取到 task 任務。 (7)該 NodeManager 創建容器 Container,并產生 MRAppmaster。 (8)Container 從 HDFS 上拷貝資源到本地。 (9)MRAppmaster 向 RM 申請運行 maptask 資源。 (10)RM 將運行 maptask 任務分配給另外兩個 NodeManager,另兩個 NodeManager 分 別領取任務并創建容器。 (11)MR 向兩個接收到任務的 NodeManager 發送程序啟動腳本,這兩個 NodeManager 分別啟動 maptask,maptask 對數據分區排序。 (12)MrAppMaster 等待所有 maptask 運行完畢后,向 RM 申請容器,運行 reduce task。 (13)reduce task 向 maptask 獲取相應分區的數據。 (14)程序運行完畢后,MR 會向 RM 申請注銷自己。 mapreduce運行失敗模式: 1-任務運行失敗;主要是程序代碼中bug或者JVM出現問題所致; 2-tasktracker失敗:jobstacker和tasktracker是通過心跳進行通信的,如心跳停止,則認為map和reduce運行失敗,這時,jobstacker會重新安排map任務運行。 此外,心跳正常也可能會導致tasktracker失敗,對同一個作業的運行失敗多次。次tasktracker會被拉入到黑名單(正常通信但不會安排任務)。 3-jobstracker失敗:概率很小,目前沒有機制能處理單點故障問題,降低單點失敗是主要的方法(yarn對此有改進,引入了輔助主節點)。 yarn運行失敗模式(和mapreduce相似): 1-任務運行失敗; 2-AM運行失敗;和tasktracker相似 3-NM運行失敗;和tasktracker相似 4-RM運行失敗;和jobtracker相似 額外附一張明了提交圖:
?
參考文獻: 推薦重新看下:https://www.cnblogs.com/dream-to-pku/p/7249954.html hadoop權威指南 https://www.jianshu.com/p/44752e4ad12b轉載于:https://www.cnblogs.com/parent-absent-son/p/9904155.html
總結
以上是生活随笔為你收集整理的hadoop的运行机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android面试题精选
- 下一篇: 登录后跳转到原页面