hadoop yarn 入門介紹

2021-06-21 14:10:45 字數 1672 閱讀 7100

編者按:對於業界的大資料儲存及分布式處理系統來說,hadoop 是耳熟能詳的卓越開源分布式檔案儲存及處理框架,對於 hadoop 框架的介紹在此不再累述,隨著需求的發展,yarn 框架浮出水面, @依然光榮復興的 部落格給我們做了很詳細的介紹,讀者通過本文中新舊 hadoop mapreduce 框架的對比,更能深刻理解新的 yarn 框架的技術原理和設計思想。 

yarn是乙個分布式的資源管理系統,用以提高分布式的集群環境下的資源利用率,這些資源包括記憶體、io、網路、磁碟等。其產生的原因是為了解決原mapreduce框架的不足。最初mapreduce的committer們還可以週期性的在已有的**上進行修改,可是隨著**的增加以及原mapreduce框架設計的不足,在原mapreduce框架上進行修改變得越來越困難,所以mapreduce的committer們決定從架構上重新設計mapreduce,使下一代的mapreduce(mrv2/yarn)框架具有更好的擴充套件性、可用性、可靠性、向後相容性和更高的資源利用率以及能支援除了mapreduce計算框架外的更多的計算框架。

am的生命週期:asm負責系統中所有am的生命週期的管理。asm負責am的啟動,當am啟動後,am會週期性的向asm傳送heartbeat,預設是1s,asm據此了解am的存活情況,並且在am失敗時負責重啟am,若是一定時間過後(預設10分鐘)沒有收到am的heartbeat,asm就認為該am失敗了。

關於resourcemanager的可用性目前還沒有很好的實現,不過cloudera公司的cdh4.4以後的版本實現了乙個簡單的高可用性,使用了hadoop-common專案中ha部分的**,採用了類似hdfs namenode高可用性的設計,給rm引入了active和standby狀態,不過沒有與journalnode相對應的角色,只是由zookeeper來負責維護rm的狀態,這樣的設計只是乙個最簡單的方案,避免了手動重啟rm,離真正的生產可用還有一段距離。

在nm上還可以擴充套件自己的服務,yarn提供了乙個yarn.nodemanager.aux-services的配置項,通過該配置,使用者可以自定義一些服務,例如map-reduce的shuffle功能就是採用這種方式實現的。

container目錄下的目錄結構如下: 

mrv2執行流程:

mr jobclient向resourcemanager(asm)提交乙個job

asm向scheduler請求乙個供mr am執行的container,然後啟動它

mr am啟動起來後向asm註冊

mr jobclient向asm獲取到mr am相關的資訊,然後直接與mr am進行通訊

mr am計算splits並為所有的map構造資源請求

mr am做一些必要的mr outputcommitter的準備工作

mr am向rm(scheduler)發起資源請求,得到一組供map/reduce task執行的container,然後與nm一起對每乙個container執行一些必要的任務,包括資源本地化等

mr am 監視執行著的task 直到完成,當task失敗時,申請新的container執行失敗的task

當每個map/reduce task完成後,mr am執行mr outputcommitter的cleanup **,也就是進行一些收尾工作

當所有的map/reduce完成後,mr am執行outputcommitter的必要的job commit或者abort apis

mr am退出。

大資料 Hadoop Yarn詳細介紹

1 分布式儲存 2 分布式計算 1 分布式儲存 hdfs 名稱節點namenode 檔案管理 資料節點datanode 檔案儲存 2 分布式計算 mapreduce map 任務的分解 reduce 結果的彙總 hdfs分布式檔案系統 hadoop distributed file system h...

Hadoop Yarn介紹以及作業提交流程

1 關於yarn的介紹 yarn 是乙個資源排程平台,負責為運算程式提供伺服器運算資源,相當於乙個分布式的作業系統平台,而 mapreduce 等運算程式則相當於執行於作業系統之上的應用程式。2 hadoop1.x中yarn的不足 3 hadoop2.x中yarn的新特性 4 yarn中的角色介紹 ...

Hadoop YARN容錯機制

在現實情況中,使用者 錯誤不斷,程序崩潰,機器故障等情況均容易造成任務失敗。hadoop最主要的好處之一就是它能處理此類故障並能夠成功完成作業。1 任務失敗對於一些應用程式,不希望一旦有少數幾個任務失敗就終止執行整個作業,因為即使有任務失敗,作業的一些結果可能還是可用的。在這種情況下,可以為作業設定...