亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

解析Hadoop新一代MapReduce框架Yarn

系統 3047 0

更快、更強——解析Hadoop新一代MapReduce框架Yarn

摘要: 本文介紹了Hadoop 自0.23.0版本后新的MapReduce框架(Yarn)原理、優勢、運作機制和配置方法等;著重介紹新的Yarn框架相對于原框架的差異及改進。

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

?

背景

?

Yarn是一個分布式的資源管理系統,用以提高分布式的集群環境下的資源利用率,這些資源包括內存、IO、網絡、磁盤等。其產生的原因是為了解決原MapReduce框架的不足。最初MapReduce的committer們還可以周期性的在已有的代碼上進行修改,可是隨著代碼的增加以及原MapReduce框架設計的不足,在原MapReduce框架上進行修改變得越來越困難,所以MapReduce的committer們決定從架構上重新設計MapReduce,使下一代的MapReduce(MRv2/Yarn)框架具有更好的擴展性、可用性、可靠性、向后兼容性和更高的資源利用率以及能支持除了MapReduce計算框架外的更多的計算框架。

?

原MapReduce框架的不足

解析Hadoop新一代MapReduce框架Yarn ?

?

?

  • JobTracker是集群事務的集中處理點,存在單點故障
  • JobTracker需要完成的任務太多,既要維護job的狀態又要維護job的task的狀態,造成過多的資源消耗
  • 在taskTracker端,用map/reduce task作為資源的表示過于簡單,沒有考慮到CPU、內存等資源情況,當把兩個需要消耗大內存的task調度到一起,很容易出現OOM
  • 把資源強制劃分為map/reduce slot,當只有map task時,reduce slot不能用;當只有reduce task時,map slot不能用,容易造成資源利用不足。

?

Yarn架構

Yarn/MRv2最基本的想法是將原JobTracker主要的資源管理和job調度/監視功能分開作為兩個單獨的守護進程。有一個全局的ResourceManager(RM)和每個Application有一個ApplicationMaster(AM),Application相當于map-reduce job或者DAG jobs。ResourceManager和NodeManager(NM)組成了基本的數據計算框架。ResourceManager協調集群的資源利用,任何client或者運行著的applicatitonMaster想要運行job或者task都得向RM申請一定的資源。ApplicatonMaster是一個框架特殊的庫,對于MapReduce框架而言有它自己的AM實現,用戶也可以實現自己的AM,在運行的時候,AM會與NM一起來啟動和監視tasks。?

ResourceManager

ResourceManager作為資源的協調者有兩個主要的組件:Scheduler和ApplicationsManager(AsM)。

Scheduler負責分配最少但滿足application運行所需的資源量給Application。Scheduler只是基于資源的使用情況進行調度,并不負責監視/跟蹤application的狀態,當然也不會處理失敗的task。RM使用resource container概念來管理集群的資源,resource container是資源的抽象,每個container包括一定的內存、IO、網絡等資源,不過目前的實現只包括內存一種資源。

ApplicationsManager負責處理client提交的job以及協商第一個container以供applicationMaster運行,并且在applicationMaster失敗的時候會重新啟動applicationMaster。下面闡述RM具體完成的一些功能。

?

  1. 資源調度: Scheduler從所有運行著的application收到資源請求后構建一個全局的資源分配計劃,然后根據application特殊的限制以及全局的一些限制條件分配資源。
  2. 資源監視: Scheduler會周期性的接收來自NM的資源使用率的監控信息,另外applicationMaster可以從Scheduler得到屬于它的已完成的container的狀態信息。
  3. Application提交:
  • client向AsM獲得一個applicationIDclient將application定義以及需要的jar包
  • client將application定義以及需要的jar包文件等上傳到hdfs的指定目錄,由yarn-site.xml的yarn.app.mapreduce.am.staging-dir指定
  • client構造資源請求的對象以及application的提交上下文發送給AsM
  • AsM接收application的提交上下文
  • AsM根據application的信息向Scheduler協商一個Container供applicationMaster運行,然后啟動applicationMaster
  • 向該container所屬的NM發送launchContainer信息啟動該container,也即啟動applicationMaster、AsM向client提供運行著的AM的狀態信息。
  • 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,離真正的生產可用還有一段距離。

    NodeManager

    NM主要負責啟動RM分配給AM的container以及代表AM的container,并且會監視container的運行情況。在啟動container的時候,NM會設置一些必要的環境變量以及將container運行所需的jar包、文件等從hdfs下載到本地,也就是所謂的資源本地化;當所有準備工作做好后,才會啟動代表該container的腳本將程序啟動起來。啟動起來后,NM會周期性的監視該container運行占用的資源情況,若是超過了該container所聲明的資源量,則會kill掉該container所代表的進程。

    另外,NM還提供了一個簡單的服務以管理它所在機器的本地目錄。Applications可以繼續訪問本地目錄即使那臺機器上已經沒有了屬于它的container在運行。例如,Map-Reduce應用程序使用這個服務存儲map output并且shuffle它們給相應的reduce task。

    在NM上還可以擴展自己的服務,yarn提供了一個yarn.nodemanager.aux-services的配置項,通過該配置,用戶可以自定義一些服務,例如Map-Reduce的shuffle功能就是采用這種方式實現的。

    NM在本地為每個運行著的application生成如下的目錄結構:

    解析Hadoop新一代MapReduce框架Yarn ?

    Container目錄下的目錄結構如下:?

    ?

    解析Hadoop新一代MapReduce框架Yarn ?

    在啟動一個container的時候,NM就執行該container的default_container_executor.sh,該腳本內部會執行launch_container.sh。launch_container.sh會先設置一些環境變量,最后啟動執行程序的命令。對于MapReduce而言,啟動AM就執行org.apache.hadoop.mapreduce.v2.app.MRAppMaster;啟動map/reduce task就執行org.apache.hadoop.mapred.YarnChild。?

    ?

    ApplicationMaster

    ApplicationMaster是一個框架特殊的庫,對于Map-Reduce計算模型而言有它自己的ApplicationMaster實現,對于其他的想要運行在yarn上的計算模型而言,必須得實現針對該計算模型的ApplicationMaster用以向RM申請資源運行task,比如運行在yarn上的spark框架也有對應的ApplicationMaster實現,歸根結底,yarn是一個資源管理的框架,并不是一個計算框架,要想在yarn上運行應用程序,還得有特定的計算框架的實現。由于yarn是伴隨著MRv2一起出現的,所以下面簡要概述MRv2在yarn上的運行流程。

    MRv2運行流程:

    ?

    1. MR JobClient向resourceManager(AsM)提交一個job
    2. AsM向Scheduler請求一個供MR AM運行的container,然后啟動它
    3. MR AM啟動起來后向AsM注冊
    4. MR JobClient向AsM獲取到MR AM相關的信息,然后直接與MR AM進行通信
    5. MR AM計算splits并為所有的map構造資源請求
    6. MR AM做一些必要的MR OutputCommitter的準備工作
    7. MR AM向RM(Scheduler)發起資源請求,得到一組供map/reduce task運行的container,然后與NM一起對每一個container執行一些必要的任務,包括資源本地化等
    8. MR AM?監視運行著的task?直到完成,當task失敗時,申請新的container運行失敗的task
    9. 當每個map/reduce task完成后,MR AM運行MR OutputCommitter的cleanup?代碼,也就是進行一些收尾工作
    10. 當所有的map/reduce完成后,MR AM運行OutputCommitter的必要的job commit或者abort APIs
    11. MR AM退出。

    ?

    在Yarn上寫應用程序

    在yarn上寫應用程序并不同于我們熟知的MapReduce應用程序,必須牢記yarn只是一個資源管理的框架,并不是一個計算框架,計算框架可以運行在yarn上。我們所能做的就是向RM申請container,然后配合NM一起來啟動container。就像MRv2一樣,jobclient請求用于MR AM運行的container,設置環境變量和啟動命令,然后交由NM去啟動MR AM,隨后map/reduce task就由MR AM全權負責,當然task的啟動也是由MR AM向RM申請container,然后配合NM一起來啟動的。所以要想在yarn上運行非特定計算框架的程序,我們就得實現自己的client和applicationMaster。另外我們自定義的AM需要放在各個NM的classpath下,因為AM可能運行在任何NM所在的機器上。

    原文鏈接: Yarn詳解 (責編:Arron)

    解析Hadoop新一代MapReduce框架Yarn


    更多文章、技術交流、商務合作、聯系博主

    微信掃碼或搜索:z360901061

    微信掃一掃加我為好友

    QQ號聯系: 360901061

    您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

    【本文對您有幫助就好】

    您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

    發表我的評論
    最新評論 總共0條評論
    主站蜘蛛池模板: 国产ww久久久久久久久久 | 久久网综合 | 亚洲se网 | 老司机精品在线播放 | 免费a级在线观看完整片 | 高清毛片在线看高清 | 日韩在线手机看片免费看 | 久久不卡视频 | 中文精品爱久久久国产 | 国产精品永久免费视频 | 97影院午夜在线观看琪琪 | 国产精品19p | 亚洲国产女人aaa毛片在线 | 一级淫片免费看 | 四虎网站最新地址 | 另类综合图片 | 元龙第三季免费观看 | 日韩在线欧美高清一区 | 国产综合久久久久久鬼色 | 日韩精品欧美精品中文精品 | 国产精品视频永久免费播放 | 日韩中文字幕精品视频在线 | 久久综合精品国产一区二区三区无 | 久久精品国产亚洲麻豆小说 | 成人私人影院www片免费高清 | 五月婷婷在线视频 | 欧美中文字幕一区 | 免费看欧美一级a毛片 | 亚洲精品视频在线看 | 毛片一级免费 | 综合另类小说色区色噜噜 | 中文字幕日韩女同互慰视频 | 黄色在线免费看 | 亚洲综合视频 | 成人在线亚洲 | 日本爱爱免费视频 | 成年女人黄小视频 | 在线观看精品视频一区二区三区 | 欧美 日韩 中文 | 色综合久久中文字幕综合网 | 久久国产精品99精品国产 |