yarn資源管理

2022-03-24 06:22:37 字數 2482 閱讀 7655

在tarn中,資源管理由rescouecemanager和nodemanager共同完成,其中,resourcemanager中的排程器負責資源分配,而nodemanager則負責資源的供給和隔離。

resourcemanager將某個nodemanager上資源分配給任務(這就是所謂的資源排程)後,nodemanager需按照要求為任務提供相應的資源,甚至保證這些資源應具有獨占性,為任務執行提供基礎保證,這就是所謂的資源隔離。

**:容器是記憶體和vcore的抽象概念。容器執行在nm節點

基於以上考慮,yarn允許使用者配置每、個節點上可用的物理記憶體資源,注意,這裡是「可用的」,因為乙個節點上的記憶體會被若干個服務共享,比如一部分給yarn,一部分給hdfs,一部分給hbase等,yarn配置的只是自己可以使用的,配置引數如下:

(1)yarn.nodemanager.resource.memory-mb 

表示該節點上yarn可使用的物理記憶體總量,預設是8192mb,注意,如果你的節點記憶體資源不夠8g,則需要調減小這個值,而yarn不會智慧型的探測節點的物理記憶體總量。

上邊這兩個引數是有關聯的,如果yarn.nodemanager.resource.detect-hardware-capabilities 為true並且yarn.nodemanager.resource.memory-mb 為-1,那麼

yarn.nodemanager.resource.memory-mb是自動計算,如果不是則yarn.nodemanager.resource.memory-mb=8g(預設)

(2)yarn.scheduler.minimum-allocation-mb 

單個任務可申請的最少記憶體,預設時1024m,如果乙個任務申請的物理記憶體量少於該值,則該對應的值減少位這個數

(3)yarn.scheduler.maximum-allocation-mb

單個任務可申請的最大記憶體,預設時8192m

是否啟動乙個執行緒檢查每個任務正在使用的物理記憶體量,如果任務超出分配值,直接將他殺掉,預設是true

(5)yarn.nodemanager.vmem-check-enabled     true

是否啟動乙個執行緒檢查每個任務正在使用的虛擬記憶體量,如果任務超出分配值,直接將他殺掉,預設是true

(6)yarn.nodemanager.vmem-pmem-ratio           2.1

任務每使用1m的物理記憶體,最多可使用的虛擬記憶體量

目前的cpu被劃分成虛擬cpu(cpu virtual core),這裡的虛擬cpu是yarn自己引入的概念,初衷是,考慮到不同節點的cpu效能可能不同,每個cpu具有的計算能力也是不一樣的,比如某個物理cpu的計算能力可能是另外乙個物理cpu的2倍,這時候,你可以通過為第乙個物理cpu多配置幾個虛擬cpu彌補這種差異。使用者提交作業的時候,可以指定每個任務需要的虛擬cpu個數。在yarn中,cpu相關配置引數如下:

(7) yarn.nodemanager.resource.cpu-vcores    12 

表示該節點上yarn可使用的虛擬cpu個數,預設是8,目前推薦將該值設定位與物理cpu核數數目相同。如果物理cpu核數不夠8,則需要調小這個值,而yarn不       會智慧型的探測物理cpu總數。

(8) yarn.scheduler.minimum-allocation-vcores   1

單個任務可申請的最小cpu個數,預設是1,如果乙個任務申請的cpu個數小於該數,則將該數改為這個數。

(9) yarn.scheduler.maximum-allocation-vcores   4

單個任務可申請的最大cpu個數,預設是4

container: 容器個數的判別標準有兩個維度

乙個是物理記憶體,乙個是cpu

memory 16c~4c

vcores 12c~3c

總結:  yarn的在調優時候要綜合考慮cpu和記憶體的分配,

盡量保證不要空

出多餘的資源,

假如container總記憶體30,container最小2g,總vcore8 container 最小1c

那麼我們記憶體可以啟動最多15個container,cpu最多啟動8個container,最終可以啟動8個container,會有相當多的記憶體沒有用到。所以生產上的調優配置需要綜合考量記憶體和 cpu的配比。

yarn資源管理優化

集群環境 chd5 2.5.2 我們集群使用的是failscheduler,如果佇列引數設定不合理,會直接影響到任務執行的快慢。佇列設定不合理 現狀 該隊裡minshare設定的過小,同時起的任務太多 導致的問題 該佇列中平均每個任務分的資源比較少,任務跑的特別慢,同時,任務之間會相互搶占conta...

Yarn的資源管理

假設一台機器有48g物理記憶體 8core 按照1 2的一般配置 虛擬core vcore 有 16個 1 linux系統本身要佔記憶體 空留 20 48 0.2 9.6g 剩餘 80 38.4g 2 dn程序 datanode 生產4g 更改datanode的配置 hadoop env.sh ha...

YARN資源管理和排程簡介

1 執行在yarn上的mapreduce應用程式 2 執行在yarn上的storm應用程式 3 yarn應用程式基本構成 客戶端 4 以mapreduce應用程式為例 mapreduce客戶端 將mapreduce作業提交到yarn上 查詢mapreduce作業執行狀態 管理mapreduce作業,...