您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關(guān)Hadoop中如何配置Yarn的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
作為HDP 2.0 Beta的一部分,YARN采用MapReduce中的資源管理功能,并將它們打包,以便新引擎可以使用它們。 這也簡(jiǎn)化了MapReduce做它做的最好的處理數(shù)據(jù)。 使用YARN,您現(xiàn)在可以在Hadoop中運(yùn)行多個(gè)應(yīng)用程序,所有這些應(yīng)用程序共享一個(gè)公共資源管理。
在本博文中,我們將介紹如何規(guī)劃和配置企業(yè)HDP 2.0集群部署中的處理能力。 這將覆蓋YARN和MapReduce 2.我們將使用一個(gè)示例物理群集的從節(jié)點(diǎn),每個(gè)具有48 GB RAM,12個(gè)磁盤(pán)和2個(gè)Hex核CPU(總共12個(gè)核)。
YARN考慮了集群中每臺(tái)計(jì)算機(jī)上的所有可用計(jì)算資源。 基于可用資源,YARN將協(xié)商在集群中運(yùn)行的應(yīng)用程序(如MapReduce)的資源請(qǐng)求。 然后,YARN通過(guò)分配容器為每個(gè)應(yīng)用程序提供處理能力。 容器是YARN中處理能力的基本單元,是資源元素(內(nèi)存,cpu等)的封裝。
配置YARN
在Hadoop集群中,平衡RAM,CPU和磁盤(pán)的使用至關(guān)重要,這樣處理不受任何一個(gè)集群資源的限制。 作為一般建議,我們發(fā)現(xiàn),每個(gè)磁盤(pán)和每個(gè)核心允許1-2個(gè)容器為集群利用率提供最佳平衡。 因此,對(duì)于具有12個(gè)磁盤(pán)和12個(gè)核心的示例集群節(jié)點(diǎn),我們將允許為每個(gè)節(jié)點(diǎn)分配20個(gè)最大容器。
我們集群中的每臺(tái)機(jī)器都有48 GB的RAM。 某些RAM應(yīng)保留用于操作系統(tǒng)。 在每個(gè)節(jié)點(diǎn)上,我們將分配40 GB RAM供YARN使用,并為操作系統(tǒng)保留8 GB。 以下屬性設(shè)置YARN可以在節(jié)點(diǎn)上使用的最大內(nèi)存:
In yarn-site.xml
<name>yarn.nodemanager.resource.memory-mb</name> <value>40960</value>
下一步是提供YARN指導(dǎo)如何分解容器中可用的總資源。 通過(guò)指定要為容器分配的RAM的最小單位來(lái)執(zhí)行此操作。 我們要允許最多20個(gè)容器,因此需要(總共40 GB內(nèi)存)/(20個(gè)容器)=每個(gè)容器最少2 GB:
In yarn-site.xml
<name>yarn.scheduler.minimum-allocation-mb</name> <value>2048</value>
YARN將分配容量大于yarn.scheduler.minimum-allocation-mb的RAM容量。
配置MAPREDUCE 2
MapReduce 2在YARN之上運(yùn)行,并使用YARN容器來(lái)調(diào)度和執(zhí)行其映射和減少任務(wù)。
在YARN上配置MapReduce 2資源利用率時(shí),有三個(gè)方面需要考慮:
每個(gè)Map和Reduce任務(wù)的物理RAM限制
每個(gè)任務(wù)的JVM堆大小限制
每個(gè)任務(wù)將獲得的虛擬內(nèi)存量
您可以定義每個(gè)Map和Reduce任務(wù)將占用的最大內(nèi)存量。 由于每個(gè)Map和每個(gè)Reduce將在單獨(dú)的容器中運(yùn)行,因此這些最大內(nèi)存設(shè)置應(yīng)至少等于或大于YARN最小容器分配。
對(duì)于我們的示例集群,我們有一個(gè)容器的最小RAM(yarn.scheduler.minimum-allocation-mb)= 2 GB。 因此,我們將為Map任務(wù)容器分配4 GB,為Reduce任務(wù)容器分配8 GB。
In mapred-site.xml
:
<name>mapreduce.map.memory.mb</name> <value>4096</value> <name>mapreduce.reduce.memory.mb</name> <value>8192</value>
每個(gè)容器將運(yùn)行Map和Reduce任務(wù)的JVM。 JVM堆大小應(yīng)設(shè)置為低于上面定義的Map和Reduce內(nèi)存,以使它們?cè)赮ARN分配的Container內(nèi)存的邊界內(nèi)。
In mapred-site.xml
:
<name>mapreduce.map.java.opts</name> <value>-Xmx3072m</value> <name>mapreduce.reduce.java.opts</name> <value>-Xmx6144m</value>
以上設(shè)置配置Map和Reduce任務(wù)將使用的物理RAM的上限。 每個(gè)Map和Reduce任務(wù)的虛擬內(nèi)存(物理+分頁(yè)內(nèi)存)上限由每個(gè)YARN容器允許的虛擬內(nèi)存比率決定。 這是通過(guò)以下配置設(shè)置的,默認(rèn)值為2.1:
In yarn-site.xml
:
<name>yarn.nodemanager.vmem-pmem-ratio</name> <value>2.1</value>
因此,使用我們的示例集群上的上述設(shè)置,每個(gè)Map任務(wù)將獲得以下內(nèi)存分配,并具有以下內(nèi)容:
總物理RAM分配= 4 GB
Map任務(wù)中的JVM堆空間上限Container = 3 GB
虛擬內(nèi)存上限= 4 * 2.1 = 8.2 GB
使用YARN和MapReduce 2,不再有用于Map和Reduce任務(wù)的預(yù)配置靜態(tài)槽。 整個(gè)集群可用于Maps的動(dòng)態(tài)資源分配,并可根據(jù)作業(yè)的需要進(jìn)行縮減。 在我們的示例集群中,通過(guò)上述配置,YARN將能夠在每個(gè)節(jié)點(diǎn)上分配多達(dá)10個(gè)映射器(40/4)或5個(gè)reducer(40/8)或其中的置換。
感謝各位的閱讀!關(guān)于“Hadoop中如何配置Yarn”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。