日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mapreduce yarn内存参数

發布時間:2025/3/11 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mapreduce yarn内存参数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、yarn-site.xml 設置

1.1 RM設置

RM的內存資源配置,主要是通過下面的兩個參數進行的(這兩個值是Yarn平臺特性,應在yarn-sit.xml中配置好):?
yarn.scheduler.minimum-allocation-mb?
yarn.scheduler.maximum-allocation-mb
說明:單個容器可申請的最小與最大內存,應用在運行申請內存時不能超過最大值,小于最小值則分配最小值,從這個角度看,最小值有點想操作系統中的頁。最小值還有另外一種用途,計算一個節點的最大container數目注:這兩個值一經設定不能動態改變(此處所說的動態改變是指應用運行時)。

1.2 NM設置

NM的內存資源配置,主要是通過下面兩個參數進行的(這兩個值是Yarn平臺特性,應在yarn-sit.xml中配置) :
yarn.nodemanager.resource.memory-mb
yarn.nodemanager.vmem-pmem-ratio
說明:每個節點可用的最大內存,RM中的兩個值不應該超過此值。此數值可以用于計算container最大數目,即:用此值除以RM中的最小容器內存。虛擬內存率,是占task所用內存的百分比,默認值為2.1倍;注意:第一個參數是不可修改的,一旦設置,整個運行過程中不可動態修改,且該值的默認大小是8G,即使計算機內存不足8G也會按著8G內存來使用。

2、map-site.xml 設置

2.1 AM設置

AM內存配置相關參數,此處以MapReduce為例進行說明(這兩個值是AM特性,應在mapred-site.xml中配置),如下:
mapreduce.map.memory.mb
mapreduce.reduce.memory.mb
說明:這兩個參數指定用于MapReduce的兩個任務(Map and Reduce task)的內存大小,其值應該在RM中的最大最小container之間。如果沒有配置則通過如下簡單公式獲得:
max(MIN_CONTAINER_SIZE, (Total Available RAM) / containers))
一般的reduce應該是map的2倍。注:這兩個值可以在應用啟動時通過參數改變;

2.2 AM JVM設置

AM中其它與內存相關的參數,還有JVM相關的參數,這些參數可以通過,如下選項配置:
mapreduce.map.java.opts
mapreduce.reduce.java.opts
說明:這兩個參主要是為需要運行JVM程序(java、scala等)準備的,通過這兩個設置可以向JVM中傳遞參數的,與內存有關的是,-Xmx,-Xms等選項。此數值大小,應該在AM中的map.mb和reduce.mb之間。

3、所有參數

YARN相關:
yarn.scheduler.minimum-allocation-mb
yarn.scheduler.maximum-allocation-mb
yarn.nodemanager.vmem-pmem-ratio
yarn.nodemanager.resource.memory.mb
Map相關參數
mapreduce.map.java.opts
mapreduce.map.memory.mb
Reduce相關參數
mapreduce.reduce.java.opts
mapreduce.reduce.memory.mb

注意: 在hadoop2及以上版本中,map和reduce task 是運行在container中的。mapreduce.{map|reduce}.memory.mb被yarn用來設置container的內存大小。如果container的內存超限,會被yarn殺死。在container中,為了執行map和reduce task,yarn會在contaner中啟動一個jvm來執行task任務。mapreduce.{map|reduce}.java.opts用來設置container啟動的jvm參數,通過設置Xmx來設置map 或者reduce task的最大堆內存。理論上,{map|reduce}.java.opts設置的最大堆內存要比{map|reduce}.memory.mb小。例如: hadoop jar <jarName> -Dmapreduce.reduce.memory.mb=4096 -Dmapreduce.map.java.opts=-Xmx3276

4、舉例說明

如下圖:



YARN-site.xml相關:
yarn.scheduler.minimum-allocation-mb ? ?=1024
yarn.scheduler.maximum-allocation-mb ? ?=8192
yarn.nodemanager.vmem-pmem-ratio ? ? ? =2.1
yarn.nodemanager.resource.memory.mb ?=24576


Map-site.xml相關參數
mapreduce.map.java.opts ? ?=Xmx1024m
mapreduce.map.memory.mb ? ?=1536
mapreduce.reduce.java.opts ?=Xmx2560m
mapreduce.reduce.memory.mb ?=3072



map container的內存("mapreduce.map.memory.mb")被設置為1536mb 。am為其申請了2048m的內存,因為am的最小分配(yarn.scheduler.minimum-allocation-mb)是1024.如果map task對內存超過了2048m,nm會kill掉該task。reduce類似。

When a mapreduce job completes you will see several counters dumped at the end of the job.?

?The three memory counters below show how much physical memory was allocated vs virtual memory.?


默認情況下,yarn.nodemanager.vmem-pmem-ratio被設置為2.1,這意味著,每個map或者task任務只能使用2.1倍("mapreduce.reduce.memory.mb") or ("mapreduce.map.memory.mb") 大小的虛擬內存,否則,會被nm殺掉。
例如下面的的報錯信息:
Current usage: 2.1gb of 2.0gb physical memory used; 1.6gb of 3.15gb virtual memory used.?

Killing container.

總結

以上是生活随笔為你收集整理的mapreduce yarn内存参数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。