yarn的一些知識點

2021-10-05 23:31:21 字數 2266 閱讀 3751

1.5 yarn的作業執行流程

yarn(yet another resource negotiator)是乙個資源排程平台,負責為運算程式提供伺服器運算資源,相當於乙個分布式的作業系統平台,而 mapreduce 等運算程式則相當於執行於作業系統之上的應用程式。

yarn 是 hadoop2.x 版本中的乙個新特性。它的出現其實是為了解決第一代 mapreduce 程式設計框架的不足,提高集群環境下的資源利用率,這些資源包括記憶體,磁碟,網路,io等。hadoop2.x版本中重新設計的這個 yarn 集群, 具有更好的擴充套件性,可用性,可靠性,向後相容性,以及能支援除 mapreduce 以外的更多分布式計算程式。

hadoop2.x版本中的yarn具有以下特點:

1、 yarn 並不清楚使用者提交的程式的執行機制

2、 yarn 只提供運算資源的排程(使用者程式向 yarn 申請資源, yarn 就負責分配資源)

3、 yarn 中的主管角色叫 resourcemanager

4、 yarn 中具體提供運算資源的角色叫 nodemanager

5、這樣一來, yarn 其實就與執行的使用者程式完全解耦,就意味著 yarn 上可以執行各種型別的分布式運算程式(mapreduce 只是其中的一種),比如 mapreduce、 storm 程式, spark程式, tez ……

6、所以, spark、 storm 等運算框架都可以整合在 yarn 上執行,只要他們各自的框架中有符合 yarn 規範的資源請求機制即可。

7、 yarn 就成為乙個通用的資源排程平台,從此,企業中以前存在的各種運算集群都可以整合在乙個物理集群上,提高資源利用率,方便資料共享。

1、 jobtracker 是集群事務的集中處理點,存在單點故障

2、 jobtracker 需要完成的任務太多,既要維護 job 的狀態又要維護 job 的 task 的狀態,造成過多的資源消耗

3、 在 tasktracker 端,用 map/reduce task 作為資源的表示過於簡單,沒有考慮到 cpu、記憶體等資源情況,當把兩個需要消耗大記憶體的 task 排程到一起,很容易出現oom

4、把資源強制劃分為 map/reduce slot,當只有 maptask 時,teduceslot 不能用;當只有 reducetask 時, mapslot 不能用,容易造成資源利用不足。

總結起來就是:

1、擴充套件性差

2、可靠性低

3、資源利用率低

4、不支援多種計算框架

yarn架構

1.4.1、 resourcemanager

yarn 集群的主節點 resourcemanager的職責

1、處理客戶端請求

3、監控 nodemanager

4、資源的分配與排程

1.4.2、 nodemanager

nodemanager 是 yarn 集群當中真正資源的提供者,是真正執行應用程式的容器的提供者,監控應用程式的資源使用情況(cpu,記憶體,硬碟,網路), 並通過心跳向集群資源排程器resourcemanager 進行匯報以更新自己的健康狀態。 同時其也會監督 container 的生命週期管理,監控每個 container 的資源使用(記憶體、 cpu 等)情況,追蹤節點健康狀況,管理日誌和不同應用程式用到的附屬服務(auxiliary service)。

yarn 集群的從節點 nodemanager 的職責:

1、 管理單個節點上的資源

2、 處理來自 resourcemanager 的命令

1.4.4、 container

container 容器是乙個抽象出來的邏輯資源單位。 容器是由 resourcemanager scheduler 服務動態分配的資源構成,它包括了該節點上的一定量 cpu,記憶體,磁碟,網路等資訊, mapreduce程式的所有 task 都是在乙個容器裡執行完成的,容器的大小是可以動態調整的。

1.4.5、 asm

1.4.6、 scheduler

排程器根據應用程式的資源需求進行資源分配,不參與應用程式具體的執行和監控等工作

資源分配的單位就是 container,排程器是乙個可插拔的元件, 使用者可以根據自己的需求實現自己的排程器。 yarn 本身為我們提供了多種直接可用的排程器,比如 fifo, fair scheduler和 capacity scheduler 等。

見:yarn 的資源排程過程

一些知識點

字串拼接 1.a join b a為元素之間的分隔符,b為待分割的序列 可用於輸出時的資料處理,元素間有空格,末尾沒有 2 s s s str1,str2,str3 前半部分為字串,後半部分為索引。用於引入,s是物件 3.format str1,str2,str3 與f 括號裡為已有變數 關於for...

一些知識點

1.vector是在堆上還是棧上?在堆上.2.我們發現指標有一些 似是而非 的特徵 1 指標消亡了,並不表示它所指的記憶體會被自動釋放。比如函式中的指標是區域性變數,如果它指向了堆上,而自己出了函式後消亡了,但它所指向的記憶體還是存在的,導致了記憶體洩漏.2 記憶體被釋放了,並不表示指標會消亡或者成...

一些知識點

1 sln 解決方案檔案 csproj 專案檔案 cs 原始檔 解決方案包含多個專案,每個專案都是乙個程式。config 配置檔案 3 const int a 1 const 定義乙個量為常量,運算中用到當常量使用,不可以再重新賦值。4 型別轉換。1 隱式轉換。從值型別轉換成引用型別。從引用型別轉換...