这篇文章给大家分享的是有关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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。