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考虑了集群中每台计算机上的所有可用计算资源。 基于可用资源,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)或其中的置换。

转载于:https://my.oschina.net/summerdk/blog/758198

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值