日韩性视频-久久久蜜桃-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 内存分配管理机制及相关参数配置的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 久久岛国 | 国产一级在线视频 | 国产又粗又猛又黄又爽无遮挡 | 日本三级黄在线观看 | 在线观看国产三级 | 国产呦小j女精品视频 | 91丨九色丨丰满 | 国产精品自拍合集 | 久久久精品电影 | 日本三级视频在线播放 | 国产精品三级久久久久久电影 | 亚洲av无码精品一区二区 | 日夜夜操| 中国人与拘一级毛片 | 国产日韩欧美日韩大片 | 在线黄av | 欧美日韩视频在线观看免费 | 少妇高潮一区二区三区在线 | 久久avav | 欧美一区二区三区久久久 | 日本加勒比一区 | xxxxwwww在线观看 | 黄色网久久 | 成人深夜免费视频 | 丁香七月婷婷 | 72成人网 | 欧美日韩亚洲第一 | 男人肌肌桶女人肌肌 | 欧美夫妻性生活视频 | 国产淫语对白 | 欧美中文字幕在线观看 | 欧美特黄一区二区三区 | 久久理论视频 | 国产精品自偷自拍 | 欧美 日韩 国产 激情 | 全部免费毛片在线播放 | 91av精品 | www.99在线 | 亚洲欧美第一页 | 日韩亚洲欧美综合 | 四虎影视www在线播放 | 99精品久久 | 在线播放av网址 | 姐姐的秘密韩剧免费观看全集中文 | 少妇被狂c下部羞羞漫画 | av不卡免费观看 | 欧美一级免费片 | 成人黄色av网址 | www.伊人网 | 精品视频www | 国产第一草草影院 | 欧美性在线视频 | 亚洲69视频 | 亚洲在线观看免费视频 | 免费欧美一级片 | av电影在线观看网址 | 久久精品播放 | 在线观看欧美一区 | 高清一区二区三区四区五区 | 亚洲一区二区精华 | 极品人妻一区二区三区 | 丰满人妻熟妇乱偷人无码 | 嫩草视屏 | 特大黑人巨交吊性xx | 日本护士做爰视频 | 久久一区二区三区四区 | 成年免费视频 | 国产免费不卡视频 | 亚洲人人爽 | 国产麻豆精品一区二区 | 九九热精品视频在线观看 | www色| 影音先锋在线播放 | 国产精品国产精品国产专区蜜臀ah | 色综综| 成人动漫免费在线观看 | 98成人网 | 亚洲网站视频 | 日本熟妇毛茸茸丰满 | 蜜桃网站 | 成人精品一区二区三区中文字幕 | 亚洲免费一级 | 国产成人精品久久 | 青娱乐国产盛宴 | 波多野结衣午夜 | 中文字幕在线播放 | 超碰免费观看 | 免费在线观看高清影视网站 | 一区二区三区亚洲视频 | 欧美不卡一区二区三区 | av手机在线免费观看 | 国产一区二区三区成人 | aaaaaa毛片 | 日韩在线视频一区 | 黄视频免费观看 | 天天夜夜骑 | 久久久久国产精品无码免费看 | 九九精品免费 | 亚洲高清福利 |