yarn的學習之1 架構

2022-08-02 01:15:12 字數 1357 閱讀 9394

本文翻譯自

譯註:原文說得有些過於簡單的,並且有些混亂。

yarn由兩個部分的守護程式構成:資源管理、排程/監控。

乙個應用要麼是乙個作業,要麼就是由作業構成的dag(多個job--多個job)

yarn的資料計算框架由rm和節點管理器(nodemanager -nm)構成.rm負責管理所有應用的資源。nm其實是容器的**,負責監控資源使用(cpu,記憶體,磁碟,網路),並向rm/排程器報告有關資訊。

am從rm獲取資源,並和nm協調工作,執行和監控任務。

譯註: dag-directed acycli graph --有向無環圖

參閱:dag圖相對比較簡單,適合yarn的作業結構,如果太複雜,實現起來有點困難,而且目前暫時沒有那個必要。乙個有向有環圖更可能用於流程處理。

圖1-yarn框架

譯註:在上圖中,有兩個客戶,分別提交了乙個作業。yarn集群的元件分布在4個節點上,其中乙個執行rm,另外三個執行nm。am則執行在兩個資料節點上,分別用於關於關於兩個客戶的需求。

nm必須和dn執行在一起,可以方便地收集dn的資源資訊。

資源管理器

資源管理器有兩個主要的部分:作業排程器和應用主程式.

作業排程器

作業排程器負責為應用分配資源(譯註,如果是這麼說,也許理解為資源排程器,就好比生活中火車排程站-負責為每個商業合同分配車皮)。

排程器不監控也不追蹤應用的狀態。

排程器不保證任務的成功,不管任務是因為由於應用還是硬體的故障。

排程器根據應用的資源需求,執行排程功能;它僅僅工作於資源容器上,後者包含諸如記憶體,cpu,磁碟和網路等等。

排程器具有乙個可拔插的策略--根據不同佇列,應用等,把集群資源進行劃分。當前版本的排程器具有capacityscheduler 和 fairscheduler  這兩個策略。

譯註:應用主程式

應用主程式負責接收作業提交,並找到第乙個可用的容器,如果容器有故障,能重啟容器。此外am還負責從排程器中獲得資源,並追蹤和監測任務。

資源預訂(resource reservation)

yarn支援預訂系統(reservationsystem),使用者可以提前預定資源,這樣保留出來的資源可以用於執行一些重要的作業。

預訂系統不停地追蹤資源,處理預訂,並不時提醒排程器,讓後者確保所有的預訂能夠得到滿足。

譯註:yarn的預訂,不失為乙個有趣有用的功能。很多系統中,這些功能的實現,主要靠認為操作來實現。

1 架構的開悟

軟體架構 有關軟體整體結構與元件的抽象描述,用於指導大型軟體系統各個方面的設計。通常說架構是一種能力,架構角色則是要求你在具體事務中行使某些行為,而架構師則是用來標識這些能力與行為的乙個職務。通常我們大多數人都具有架構的能力,並且也或多或少地行使架構師可能會有的行為,但是可能還沒有 架構師 這個頭銜...

1 架構的概念

涉及到的內容包括 系統與子系統 模組與元件 框架與架構 系統與子系統 系統泛指由一群有關聯的個體組成,根據某種規則運作,能完成個別元件不能單獨完成的工作的群體。它的意思是 總體 整體 或 聯盟 子系統也是由一群有關聯的個體所組成的系統,多半會是更大系統中的一部分。模組與元件 從邏輯的角度來拆分系統後...

docker學習筆記(1) 架構概述

優點對於簡單系統 缺點對於複雜系統 優點對於複雜系統 缺點對於簡單系統 客戶端訪問不同微服務,這些服務又會呼叫其他微服務 所有請求都從api閘道器走 基於linux核心的namespaces control groups union file systems技術對程序進行封裝隔離,屬於作業系統層面的...