Yarn|作業排程和叢集資源管理系統

Yarn 是一個包管理器, 它允許你使用並分享程式碼給全世界的開發者, Yarn 做這些快捷、安全、可靠,所以你不用擔心什麼。Yarn
允許你使用其他開發者的解決方案處理不同的問題,讓你開發軟體更容易。

YARN 分層結構的本質是 ResourceManager。這個實體控制整個叢集並管理應用程式向基礎計算資源的分配。ResourceManager
將各個資源部分(計算、記憶體、頻寬等)精心安排給基礎 NodeManager(YARN 的每節點代理)。ResourceManager 還與
ApplicationMaster 一起分配資源,與 NodeManager 一起啟動和監視它們的基礎應用程式。

ApplicationMaster 管理一個在 YARN 內執行的應用程式的每個例項。ApplicationMaster 負責協調來自
ResourceManager 的資源,並通過 NodeManager
監視容器的執行和資源使用(CPU、記憶體等的資源分配)。請注意,儘管目前的資源更加傳統(CPU
核心、記憶體),但未來會帶來基於手頭任務的新資源型別(比如圖形處理單元或專用處理裝置)。從 YARN 角度講,ApplicationMaster
是使用者程式碼,因此存在潛在的安全問題。YARN 假設 ApplicationMaster 存在錯誤或者甚至是惡意的,因此將它們當作無特權的程式碼對待。

NodeManager 管理一個 YARN 叢集中的每個節點。NodeManager
提供針對叢集中每個節點的服務,從監督對一個容器的終生管理到監視資源和跟蹤節點健康。MRv1 通過插槽管理 Map 和 Reduce 任務的執行,而
NodeManager 管理抽象容器,這些容器代表著可供一個特定應用程式使用的針對每個節點的資源。YARN 繼續使用 HDFS 層。它的主要 NameNode
用於元資料服務,而 DataNode 用於分散在一個叢集中的複製儲存服務。

舊的 Hadoop 架構受到了 JobTracker 的高度約束,JobTracker 負責整個叢集的資源管理和作業排程。新的 YARN
架構打破了這種模型,允許一個新 ResourceManager 管理跨應用程式的資源使用,ApplicationMaster
負責管理作業的執行。這一更改消除了一處瓶頸,還改善了將 Hadoop 叢集擴充套件到比以前大得多的配置的能力。此外,不同於傳統的 MapReduce,YARN
允許使用 Message Passing Interface
等標準通訊模式,同時執行各種不同的程式設計模型,包括圖形處理、迭代式處理、機器學習和一般叢集計算。

所以yarn解決了擴充套件性差,單點故障以及只能侷限於MR計算框架等的問題。Yarn
會快取它下載的每個包,所以不需要重複下載。它還能並行化操作以最大化資源利用率,所以安裝速度之快前所未有。

猜你喜歡

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *