Hadoop2的Yarn和MapReduce2相關

2021-09-07 03:33:13 字數 1556 閱讀 3704

**:

1、什麼是yarn?

2、yarn 和mapreduce相比,它有什麼特殊作用 ?

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退出。

Hadoop1 和hadoop2 的異同簡潔總結

mapreduce將jobtracker中的資源管理和任務的生命週期,更名為yarn。resourcemanager和nodemanager mapreduce將jobtracker中的資源管理和任務的生命週期,更名為yarn。resourcemanager和nodemanager 1.從clien...

hadoop2體系結構

hadoop1的核心組成是兩部分,即hdfs和mapreduce。在hadoop2中變為hdfs和yarn。新的hdfs中的namenode不再是只有乙個了,可以有多個 目前只支援2個 每乙個都有相同的職能。這兩個namenode的地位如何哪?答 乙個是active狀態的,乙個是standby狀態的...

Hadoop分布式安裝hadoop2

將hadoop安裝至 usr local 中 cd downloads sudo tar zxvf hadoop 2.7.1.tar.gz c usr local 解壓到 usr local中 cd usr local sudo mv hadoop 2.7.1 hadoop 將資料夾名改為hadoo...