yarn

      網友投稿 676 2025-04-01

      MapReduce作為一個面向海量數據分布式處理的計算模型、框架和平臺,具備以下三個特點:

      1、易于編程:程序員僅需描述Map階段和Reduce階段要如何解析、處理數據,具體怎么讀取數據并對處理結果進行排序、分區、組合、合并等等,都可以交由系統的執行框架處理。

      2、良好的擴展性:可通過添加節點以擴展集群運算能力。

      3、高容錯性:在程序運行過程中,當某些節點發生故障時,通過計算遷移或數據遷移等策略在其他節點繼續執行受影響的任務,提高集群的可用性與容錯性。

      那么問題來了,MapReduce到底是如何提交任務到集群執行的呢?集群資源如何獲取?任務如何分配?由誰監控執行?

      這一連串的問題我們將在這篇文章中為大家解決。

      其中MapReduce Program是編輯好的應用程序,由客戶端進程JobClient提交給集群中的老大JobTracker。

      JobTracker負責集群資源管理和任務調度,它會解析應用程序,然后調動各個小弟TaskTracker分工合作,為應用程序提供運行資源并分布式實施數據處理作業。在小弟干活的過程中,老大負責監控和故障處理。

      1、程序員編寫好MapReduce Program作業,也就是JAVA程序,然后由客戶端進行提交;

      2、客戶端JobClient向JobTracker申請一個作業ID,加入集群任務列表中;

      3、客戶端JobClient把作業源代碼以及相關的依賴文件存儲到HDFS的系統指定目錄下;

      4、客戶端JobClient正式向JobTracker提交作業;

      5、JobTracker初始化作業,比如計算資源需求等;

      6、JobTracker通過HDFS client向NameNode(管理文件系統元數據的角色,它知道每個文件的分布情況)詢問程序需要處理的輸入文件分布在哪些節點,并得到這些索引;

      7、JobTracker通過和TaskTracker每分鐘一次的心跳聯系來獲知哪些節點可以運行任務(作業將拆分成許多任務給各個小弟執行,集群中每個數據節點都部署一個小弟角色),比如死機或者沒有剩余資源的節點就不再執行新任務;

      8、JobTracker將任務分配給上一步中的TaskTracker,這些TaskTracker通過訪問HDFS來獲取任務代碼;

      9、執行任務的TaskTracker在本節點上啟動虛擬機(JVM)來執行任務;

      10、在各個JVM中執行任務,該過程受JobTracker監視。如果任務運行失敗則由JobTracker通知相應的TaskTracker重啟任務,直到全部Map任務和Reduce任務都運行完成。

      這個過程看似妥當,其實有個致命的問題:集群老大JobTracter工作量太大。

      老大平時需要管理眾多小弟不說,當接收到任務執行申請時既要充當整個集群的資源調度者、任務分發者,又要負責各個任務的狀態監控以及重啟失敗任務,工作相當繁忙。

      在MapReduce V1中JobTracter只部署在一個節點上,沒有備用或者分擔工作的進程,所以整個集群存在性能瓶頸和單點故障問題,擴展性也受到受限。

      另外,該機制不支持非MapReduce類型的任務提交集群運行,在大數據處理環境中,這也是極不友好的。

      正是在這樣的背景下催生了Yarn——Hadoop2.0的資源管理系統。Yarn是一個通用的資源管理系統,可為上層應用(包括且不限于MapReduce)提供統一的資源管理和調度,它的出現解決了以上所有的問題。

      ,Yarn主要包括Resource Manager、Node Manager和Application Master(即App Mstr)三個部分。

      Resource Manager(簡稱RM)即集群老大,是一個全局的資源管理器,負責集群資源統一管理調度和應用程序管理。它包括兩個組成部分:Resource Scheduler(資源調度器)和Applications Manager(應用程序管理器)。

      資源調度器Resource Scheduler(簡稱RS)負責將集群中的資源分配給各個應用程序。資源用一個抽象概念Container表示,它封裝了節點上的多維度資源,如內存、CPU、磁盤、網絡等(目前只實現內存、CPU);

      應用程序管理器Applications Manager(簡稱ASM)負責管理整個系統中的所有應用程序。主要負責接收來自Client的應用程序提交申請,與資源調度器Resource Scheduler協商資源情況,啟動并監控AppMaster(下文有解釋)運行,在AppMaster運行失敗時重啟它。

      Node Manager(簡稱NM)即集群小弟,每個數據節點都部署有該角色,用以管理本節點資源(CPU、內存)。一方面它會定期向老大匯報本節點的資源使用情況和各個Container的運行狀態;另一方面,它接收并處理來自AppMaster的Container啟動/停止等各種請求。

      Application Master(簡稱AppMaster、App Mstr、AM)依賴于各種計算框架的實現(例如MR AppMaster),負責一個Job生命周期內的所有管理工作,相當于老大麾下的項目負責人。

      yarn

      Yarn具體工作流程如下

      步驟1:Yarn的客戶端Client向RM中的ASM申請Job ID,RM審核該申請的合法性,審核通過后創建一個Job ID返回給客戶端;Client把作業源代碼以及相關的依賴文件存儲到HDFS的系統指定目錄下;Client正式向ASM提交作業, 其中包括AM程序、啟動AM的命令以及用戶程序等。

      步驟2:ASM接收客戶端的作業請求后為該作業分配第一個Container。并由對應的Node Manager在這個Container中啟動AM程序,用來管理當前的Job。

      步驟3:AM啟動后向ASM注冊,ASM接收AM注冊信息,并將集群資源信息、作業源代碼的位置信息等反饋給AM。

      步驟4:AM從HDFS獲取作業程序和相關的依賴文件,了解任務詳細情況,確定執行作業需要多少資源,并向RS發出資源申請(該步驟可能無法一次性完成整個作業的資源申請,允許多次申請)。RM根據集群資源情況為AM分配資源,并將資源位置和數量信息發給AM。

      步驟5:AM申請到資源后,便與對應的Node Manager通信,要求它拿出Container來啟動JVM。

      步驟6:Node Manager為任務設置好運行環境(包括環境變量、JAR 包、二進制程序等),將進程啟動命令寫到一個腳本中,并通過運行該腳本啟動JVM。

      步驟7:各個JVM啟動后首先向AM注冊,AM為其分配任務。JVM訪問HDFS獲取具體任務程序并執行;任務運行過程中,AM可以通過NM詢問各個任務的運行狀態和進度,從而可以在任務運行失敗時對其進行重啟;客戶端Client可隨時向AM查詢作業的運行狀態和進度。

      步驟8:當前Job中的全部任務運行完成后,相應的Container也被回收或應用到其他計算任務中。AM向ASM匯報作業執行結束,ASM注銷AM,整個作業執行完成。

      在以上的資源調度和任務分配過程中可以看出Yarn的工作機制相比MapReduce V1聰明了很多:

      1、老大在管理各個Job方面的壓力全部下放給了各個AppMaster,完美地解決了單點性能瓶頸問題。

      2、在Yarn中,Resource Manager支持主備模式部署。也就是可以在集群中的兩個節點上都部署該角色,同一時刻只有一個在工作,當正在工作的RM故障時,立馬由另一個來接替工作,完美地解決了單點故障問題。

      3、Yarn除了可以支持MapReduce的作業,還可以支持其他計算框架,如Spark、Storm等。

      好啦,今天的分享到這里先告一段落,大家都學會了嗎?

      分布式 Hadoop Yarn

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel表格導入word方法匯總(在excel導入word表格)
      下一篇:項目計劃書模板免費(項目計劃書模板簡易word下載)
      相關文章
      亚洲天堂在线播放| 亚洲AV无码成人专区片在线观看| 亚洲综合无码一区二区痴汉| 亚洲国产高清视频在线观看| 久久亚洲AV无码精品色午夜| 久久久无码精品亚洲日韩蜜臀浪潮| 国产精品亚洲片在线观看不卡| 亚洲自偷自偷在线制服| 亚洲综合另类小说色区色噜噜| 亚洲成av人片不卡无码久久| 亚洲av中文无码| 亚洲AV无码乱码在线观看性色扶| 亚洲AV无码专区日韩| 亚洲国产精品国产自在在线| 亚洲精品A在线观看| 久久综合亚洲色HEZYO国产| 亚洲一区二区三区偷拍女厕 | 亚洲日韩精品无码一区二区三区| 亚洲中文字幕无码爆乳AV| 亚洲人成人网站色www| 亚洲成色WWW久久网站| 亚洲AV无码成人网站久久精品大 | 欧美色欧美亚洲另类二区| 国产精品无码亚洲一区二区三区| 国产综合激情在线亚洲第一页 | 亚洲网址在线观看你懂的| 亚洲精品免费在线视频| 亚洲三级在线视频| 亚洲日韩精品无码专区| 亚洲AV网一区二区三区| 亚洲国产精品一区二区三区久久| 亚洲午夜爱爱香蕉片| 亚洲AV综合色区无码一区| 亚洲免费在线视频| 亚洲fuli在线观看| 亚洲av无码一区二区三区人妖 | 久久久久亚洲精品男人的天堂| 亚洲国产精品国自产拍AV| 亚洲欧洲自拍拍偷综合| 中文字幕亚洲男人的天堂网络| 国产精品亚洲lv粉色|