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