Yarn_生產環境核心引數配置---大資料之hadoop3.x_工作筆記0148

Yarn_生產環境核心引數配置---大資料之hadoop3.x_工作筆記0148

Yarn_生產環境核心引數配置---大資料之hadoop3.x_工作筆記0148

首先我們看這個ResourceManager,首先配置排程器,

yarn。resourcemanager。scheduler。class 注意,預設是容量排程器,中小企業用容量排程器,

如果是大型企業,用公平排程器,注意FIFO這個排程器幾乎沒人用。

Yarn_生產環境核心引數配置---大資料之hadoop3.x_工作筆記0148

Yarn_生產環境核心引數配置---大資料之hadoop3.x_工作筆記0148

然後再設定yarn。resourcemanager。scheduler。client。thread-count 這個是,resourcemanager 能接受發過來的請求的處理的

執行緒的個數。

這個個數比如如果有1000個的話,那麼如果請求只有50個,那麼這時候開1000個執行緒肯定浪費,但如果只開一個,如果請求

有1000個會同時來,那麼也不合理,怎麼設定合理後面會說

Yarn_生產環境核心引數配置---大資料之hadoop3.x_工作筆記0148

Yarn_生產環境核心引數配置---大資料之hadoop3.x_工作筆記0148

然後我們再看nodemanager的設定,可以看到

yarn。nodemanager。resource。detect-hardware-capabilities 這個是 預設是false如果設定成true,就是讓yarn自己檢測硬體進行配置

一般對於我們開發人員都自己配,這個設定成false。

yarn。nodemanager。resource。count-logical-processors-as-cores 這個是是否將虛擬核數當做CPU核數,預設是false。

就是說你的伺服器,採購的電腦如果,所有的配置比如都是I5處理器,那麼這時候你就不用開啟,就是物理CPU核數就是CPU核數

就可以了,但是如果你採購的伺服器,不統一,比如有I7的處理器,有I3的處理器,這個時候,就可以把這個引數設定成true了,就是說

I3的那臺伺服器,是比如2核,那麼I7的可能是8核,那麼這個時候一個I7可以虛擬出4個I3來,這個時候,你可以用虛擬的

CPU,現在一共是 2核 I3的 和 8核 I7的我們就可以虛擬成,一臺I3電腦,4臺虛擬的I3電腦,讓I7這臺電腦,得到充分的應用。

然後再看yarn。nodemanager。resource。prores-vcores-multiplier 可以看到 虛擬核數 和 物理核數乘數 比如4核8執行緒 那麼就設定成2

就是4個執行緒,當一臺電腦用,比如我們有個2核2執行緒的I3,和一臺4核4執行緒的I5,那麼在給這個I5配置的時候,就可以設定

2。0那麼就是這個I5就當成2臺電腦使用。。預設是1。0。就是一臺電腦就是一臺電腦。

Yarn_生產環境核心引數配置---大資料之hadoop3.x_工作筆記0148

Yarn_生產環境核心引數配置---大資料之hadoop3.x_工作筆記0148

然後再來看yarn。nodemanager。resource。memory-mb nodemanager的使用記憶體,預設是8G,這個合理嗎?

比如你有個電腦是,6G記憶體,那麼如果這個引數不改的話,執行應用的時候就蹦了,他用8G,但是你沒有8G。

那麼如果你這個電腦有128G記憶體,但是你預設配置8G,那麼,如果你有個應用需要16G記憶體,那麼也執行不了對吧,

因為配置了8G,他就是用8G,你多了他也不用了。

還有個

yarn。nodemanager。resource。system-reserved-memory-mb 這個設定nodemanager為系統保留多少記憶體,就是比如你有8G,這個

設定2G,那麼可用的就是6G 這兩個引數設定一個就可以了

Yarn_生產環境核心引數配置---大資料之hadoop3.x_工作筆記0148

Yarn_生產環境核心引數配置---大資料之hadoop3.x_工作筆記0148

然後我們再看這個

yarn。nodemanager。peme-check-enabled 是否開啟物理記憶體檢查限制container,就是說,比如你有8G記憶體,那麼當使用的記憶體快到8G

的時候這個引數設定了以後,他會報警,如果不報警的話,他繼續使用記憶體,把系統需要使用的記憶體也佔用了,這個時候可能系統都要癱瘓了。這個引數預設是開啟的

yarn。nodemanager。vmem-check-enabled 是否開啟虛擬記憶體檢查限制container,預設是開啟的,就是說電腦還有個虛擬記憶體,比如是16G,如果使用的超過16G了,這個時候也要報警,預設開啟。

yarn。nodemanager。vmem-pmem-ratio 虛擬記憶體 物理記憶體的比例,預設是2比1,就是如果你有16G虛擬記憶體,就有8G的物理記憶體。

Yarn_生產環境核心引數配置---大資料之hadoop3.x_工作筆記0148

Yarn_生產環境核心引數配置---大資料之hadoop3.x_工作筆記0148

然後我們再來看,container相關的配置,可以看到,

yarn。scheduler。minimum-allocation-mb 這個容器最小記憶體,預設1G 這個沒問題

yarn。scheduler。maximum-allocation-mb 容量最大記憶體預設8G ,這個如果我們的電腦記憶體是4G的話,那麼,這裡如果不修改這個引數

就會可能導致,佔用系統記憶體,導致系統崩潰對吧。

yarn。scheduler。minimum-allocation-vcores 容器最小cpu核數,預設1個 這個沒問題

yarn。scheduler。maximum-allocation-vcores 容器最大CPU核數,預設4個 這個,比如電腦有2個CPU核心,但是這裡設定4個,也會導致系統有問題對吧,但是如果電腦有,20核心40執行緒的,如果這個最大CPU,用預設的4個,也不能發揮這個電腦的效率對吧。