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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Yarn 内存分配管理机制及相关参数配置

發布時間:2025/3/16 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Yarn 内存分配管理机制及相关参数配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


理解Yarn的內存管理與分配機制,對于我們搭建、部署集群,開發維護應用都是尤為重要的,對于這方面我做了一些調研供大家參考。

一、相關配置情況

關于Yarn內存分配與管理,主要涉及到了ResourceManage、ApplicationMatser、NodeManager這幾個概念,相關的優化也要緊緊圍繞著這幾方面來開展。這里還有一個Container的概念,現在可以先把它理解為運行map/reduce?task的容器,后面有詳細介紹。

?

1.1??RM的內存資源配置,?配置的是資源調度相關

RM1:yarn.scheduler.minimum-allocation-mb?分配給AM單個容器可申請的最小內存

RM2:yarn.scheduler.maximum-allocation-mb?分配給AM單個容器可申請的最大內存

注:

l?最小值可以計算一個節點最大Container數量

l?一旦設置,不可動態改變

1.2?NM的內存資源配置,配置的是硬件資源相關

NM1:yarn.nodemanager.resource.memory-mb?節點最大可用內存

NM2:yarn.nodemanager.vmem-pmem-ratio?虛擬內存率,默認2.1

注:

l?RM1、RM2的值均不能大于NM1的值

l?NM1可以計算節點最大最大Container數量,max(Container)=NM1/RM2

l?一旦設置,不可動態改變

1.3?AM內存配置相關參數,配置的是任務相關

AM1:mapreduce.map.memory.mb?分配給map?Container的內存大小

AM2:mapreduce.reduce.memory.mb?分配給reduce?Container的內存大小

l?這兩個值應該在RM1和RM2這兩個值之間

l?AM2的值最好為AM1的兩倍

l?這兩個值可以在啟動時改變

AM3:mapreduce.map.java.opts?運行map任務的jvm參數,如-Xmx,-Xms等選項

AM4:mapreduce.reduce.java.opts?運行reduce任務的jvm參數,如-Xmx,-Xms等選項

注:

1.這兩個值應該在AM1和AM2之間

二、對于這些配置概念的理解

知道有這些參數,還需理解其如何分配,下面我就一副圖讓大家更形象的了解各個參數的含義。


如上圖所示,先看最下面褐色部分,

AM參數mapreduce.map.memory.mb=1536MB,表示AM要為map?Container申請1536MB資源,但RM實際分配的內存卻是2048MB,因為yarn.scheduler.mininum-allocation-mb=1024MB,這定義了RM最小要分配1024MB,1536MB超過了這個值,所以實際分配給AM的值為2048MB(這涉及到了規整化因子,關于規整化因子,在本文最后有介紹)。

AM參數mapreduce.map.java.opts=-Xmx?1024m,表示運行map任務的jvm內存為1024MB,因為map任務要運行在Container里面,所以這個參數的值略微小于mapreduce.map.memory.mb=1536MB這個值。

NM參數yarn.nodemanager.vmem-pmem-radio=2.1,這表示NodeManager可以分配給map/reduce?Container?2.1倍的虛擬內存,安照上面的配置,實際分配給map?Container容器的虛擬內存大小為2048*2.1=3225.6MB,若實際用到的內存超過這個值,NM就會kill掉這個map?Container,任務執行過程就會出現異常。

AM參數mapreduce.reduce.memory.mb=3072MB,表示分配給reduce?Container的容器大小為3072MB,而map?Container的大小分配的是1536MB,從這也看出,reduce?Container容器的大小最好是map?Container大小的兩倍。

NM參數yarn.nodemanager.resource.mem.mb=24576MB,這個值表示節點分配給NodeManager的可用內存,也就是節點用來執行yarn任務的內存大小。這個值要根據實際服務器內存大小來配置,比如我們hadoop集群機器內存是128GB,我們可以分配其中的80%給yarn,也就是102GB。

????上圖中RM的兩個參數分別1024MB和8192MB,分別表示分配給AM?map/reduce?Container的最大值和最小值。

三、關于任務提交過程

3.1?任務提交過程

步驟1:用戶將應用程序提交到ResourceManager上;

步驟2:ResourceManager為應用程序ApplicationMaster申請資源,并與某個NodeManager通信,以啟動ApplicationMaster;

步驟3:ApplicationMaster與ResourceManager通信,為內部要執行的任務申請資源,一旦得到資源后,將于NodeManager通信,以啟動對應的任務。

步驟4:所有任務運行完成后,ApplicationMaster向ResourceManager注銷,整個應用程序運行結束。

?

3.2?關于Container

(1)?Container是YARN中資源的抽象,它封裝了某個節點上一定量的資源(CPU和內存兩類資源)。它跟Linux?Container沒有任何關系,僅僅是YARN提出的一個概念(從實現上看,可看做一個可序列化/反序列化的Java類)。

(2)??Container由ApplicationMaster向ResourceManager申請的,由ResouceManager中的資源調度器異步分配給ApplicationMaster;

(3)?Container的運行是由ApplicationMaster向資源所在的NodeManager發起的,Container運行時需提供內部執行的任務命令(可以使任何命令,比如java、Python、C++進程啟動命令均可)以及該命令執行所需的環境變量和外部資源(比如詞典文件、可執行文件、jar包等)。

另外,一個應用程序所需的Container分為兩大類,如下:

(1)?運行ApplicationMaster的Container:這是由ResourceManager(向內部的資源調度器)申請和啟動的,用戶提交應用程序時,可指定唯一的ApplicationMaster所需的資源;

(2)?運行各類任務的Container:這是由ApplicationMaster向ResourceManager申請的,并由ApplicationMaster與NodeManager通信以啟動之。

以上兩類Container可能在任意節點上,它們的位置通常而言是隨機的,即ApplicationMaster可能與它管理的任務運行在一個節點上。

Container是YARN中最重要的概念之一,懂得該概念對于理解YARN的資源模型至關重要,望大家好好理解。

注意:如下圖,map/reduce?task是運行在Container之中的,所以上面提到的mapreduce.map(reduce).memory.mb大小都大于mapreduce.map(reduce).java.opts值的大小。

?

四、HDP平臺參數調優建議

根據上面介紹的相關知識,我們就可以根據我們的實際情況作出相關參數的設置,當然還需要在運行測試過程中不斷檢驗和調整。

以下是hortonworks給出的配置建議:

?http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.1.1/bk_installing_manually_book/content/rpm-chap1-11.html?

4.1 內存分配

Reserved?Memory?=?Reserved?for?stack?memory?+?Reserved?for?HBase?Memory?(If?HBase?is?on?the?same?node)

系統總內存126GB,預留給操作系統24GB,如果有Hbase再預留給Hbase24GB。

下面的計算假設Datanode節點部署了Hbase。

4.2containers?計算:

MIN_CONTAINER_SIZE?=?2048?MB

containers?=?min?(2*CORES,?1.8*DISKS,?(Total?available?RAM)?/?MIN_CONTAINER_SIZE)

#?of?containers?=?min?(2*12,?1.8*12,?(78?*?1024)?/?2048)

#?of?containers?=?min?(24,21.6,39)

#?of?containers?=?22

container?內存計算:

RAM-per-container?=?max(MIN_CONTAINER_SIZE,?(Total?Available?RAM)?/?containers))

RAM-per-container?=?max(2048,?(78?*?1024)?/?22))

RAM-per-container?=?3630?MB

4.3Yarn?和?Mapreduce?參數配置:

yarn.nodemanager.resource.memory-mb?=?containers?*?RAM-per-container

yarn.scheduler.minimum-allocation-mb ?=?RAM-per-container

yarn.scheduler.maximum-allocation-mb ?=?containers?*?RAM-per-container

mapreduce.map.memory.mb ?????????=?RAM-per-container

mapreduce.reduce.memory.mb ?????=?2?*?RAM-per-container

mapreduce.map.java.opts ?????????=?0.8?*?RAM-per-container

mapreduce.reduce.java.opts ?????????=?0.8?*?2?*?RAM-per-container

yarn.nodemanager.resource.memory-mb =?22?*?3630?MB

yarn.scheduler.minimum-allocation-mb ????=?3630?MB

yarn.scheduler.maximum-allocation-mb??? =?22?*?3630?MB

mapreduce.map.memory.mb ????????????=?3630?MB

mapreduce.reduce.memory.mb ????????=?22?*?3630?MB

mapreduce.map.java.opts ????????????=?0.8?*?3630?MB

mapreduce.reduce.java.opts ????????????=?0.8?*?2?*?3630?MB

?

附:規整化因子介紹

??為了易于管理資源和調度資源,Hadoop?YARN內置了資源規整化算法,它規定了最小可申請資源量、最大可申請資源量和資源規整化因子,如果應用程序申請的資源量小于最小可申請資源量,則YARN會將其大小改為最小可申請量,也就是說,應用程序獲得資源不會小于自己申請的資源,但也不一定相等;如果應用程序申請的資源量大于最大可申請資源量,則會拋出異常,無法申請成功;規整化因子是用來規整化應用程序資源的,應用程序申請的資源如果不是該因子的整數倍,則將被修改為最小的整數倍對應的值,公式為ceil(a/b)*b,其中a是應用程序申請的資源,b為規整化因子。

????比如,在yarn-site.xml中設置,相關參數如下:

yarn.scheduler.minimum-allocation-mb:最小可申請內存量,默認是1024

yarn.scheduler.minimum-allocation-vcores:最小可申請CPU數,默認是1

yarn.scheduler.maximum-allocation-mb:最大可申請內存量,默認是8096

yarn.scheduler.maximum-allocation-vcores:最大可申請CPU數,默認是4

????對于規整化因子,不同調度器不同,具體如下:

FIFO和Capacity?Scheduler,規整化因子等于最小可申請資源量,不可單獨配置。

Fair?Scheduler:規整化因子通過參數yarn.scheduler.increment-allocation-mb和yarn.scheduler.increment-allocation-vcores設置,默認是1024和1。

通過以上介紹可知,應用程序申請到資源量可能大于資源申請的資源量,比如YARN的最小可申請資源內存量為1024,規整因子是1024,如果一個應用程序申請1500內存,則會得到2048內存,如果規整因子是512,則得到1536內存。


注:轉載請說明出處

本文原文鏈接:http://blog.csdn.net/suifeng3051/article/details/45477773?

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Yarn 内存分配管理机制及相关参数配置的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 热99这里只有精品 | 亚洲精品尤物 | 老司机午夜影院 | 亚洲免费视频一区二区 | 国产探花在线精品一区二区 | 三级国产视频 | avtt亚洲 | 国产美女无遮挡永久免费 | 日韩精品成人免费观看视频 | 久久久久久久久国产精品 | 五月天av在线 | 久艹在线视频 | 欧美日韩中文国产一区发布 | 99蜜桃臀久久久欧美精品网站 | 色狠狠一区二区三区香蕉 | 久久青青草原亚洲av无码麻豆 | 91综合在线 | 不卡一区在线 | 性欧美bbw | 亚洲欧美一区二区三区孕妇 | 日韩精品人妻中文字幕有码 | 天堂а√在线中文在线新版 | 欧美高清性xxxx | 中文字幕av不卡 | 麻豆国产av超爽剧情系列 | 欧美一级日韩 | av色图| 国产精品久久久久久免费 | 爱爱福利社 | 足疗店女技师按摩毛片 | 精品国产伦一区 | 国产亚洲精品久久久久久久 | 懂色av一区二区三区蜜臀 | 91视频麻豆| 美女又爽又黄免费视频 | 午夜av福利 | 久久久久久中文 | 婷婷综合在线观看 | 国产操视频 | 亚洲美女福利 | 欧美色图中文字幕 | 精品久久久久久久久久久久久久 | 人人99| 国产亚洲电影 | 国产美女视频 | 久久9精品区-无套内射无码 | 日穴视频 | 国产精品一区久久久 | 国产女主播在线一区二区 | 日韩三级av| 欧美日韩一区二区区 | 欧美一区二区性久久久 | 最新成人 | 亚洲一区二区三区高清视频 | 三级在线看中文字幕完整版 | 黄色大片毛片 | 中文字幕在线观看二区 | 欧美黑人欧美精品刺激 | 国产精品大全 | 国产日本欧美一区二区 | 少妇高潮一区二区三区喷水 | 五月天综合色 | 天天看天天色 | 国产精品白嫩极品美女视频 | 午夜日韩电影 | 国产在线a| 国产色一区 | 中国浓毛少妇毛茸茸 | 欧洲亚洲女同hd | av网站在线观看不卡 | 亚洲 欧美 日韩 在线 | 北条麻妃一区二区三区在线观看 | 国产精品高清无码在线观看 | 一级免费黄色大片 | v片在线免费观看 | 看a网站 | 日本精品一区二区在线观看 | 国产美女一级视频 | 黄色一级片 | 一级毛片黄色 | 丰满岳乱妇国产精品一区 | 国产欧美日 | 国产女主播在线 | 午夜片在线观看 | 性少妇xxxxx| 99久久久无码国产精品性波多 | 高清免费视频日本 | 69av片| av看片网站 | 中文字幕一区二区三区久久久 | 国产精品亚洲视频 | 日韩免费一区二区 | 98在线视频 | 欧美高清大白屁股ass18 | 热久久精品 | 91视频xxx | 97无码精品人妻 | 爽爽窝窝午夜精品一区二区 | 欧美激情国产精品免费 |