yarn資源管理

在TARN中,資源管理由RescoueceManager和NodeManager共同完成,其中,Resourcemanager中的調度器負責資源分配,而NodeManager則負責資源的供給和隔離。node

ResourceManager將某個Nodemanager上資源分配給任務(這就是所謂的資源調度)後,NodeManager需按照要求爲任務提供相應的資源,甚至保證這些資源應具備獨佔性,爲任務運行提供基礎保證,這就是所謂的資源隔離。性能

 圖解:容器是內存和vcore的抽象概念。容器運行在nm節點

  基於以上考慮,YARN容許用戶配置每、個節點上可用的物理內存資源,注意,這裏是「可用的」,由於一個節點上的內存會被若干個服務共享,好比一部分給YARN,一部分給HDFS,一部分給HBase等,YARN配置的只是本身可使用的,配置參數以下:spa

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

表示該節點上YARN可以使用的物理內存總量,默認是8192MB,注意,若是你的節點內存資源不夠8G,則須要調減少這個值,而YARN不會智能的探測節點的物理內存總量。blog

上邊這兩個參數是有關聯的,若是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 it

        單個任務可申請的最少內存,默認時1024M,若是一個任務申請的物理內存量少於該值,則該對應的值減小位這個數io

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

         單個任務可申請的最大內存,默認時8192M

(4)yarn.nodemanager.pmem-check-enabled      true

         是否啓動一個線程檢查每一個任務正在使用的物理內存量,若是任務超出分配值,直接將他殺掉,默認是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的配比。

相關文章
相關標籤/搜索