整套大数据学习资料(视频+笔记)百度网盘无门槛下载:http://www.edu360.cn/news/content?id=3377

9.5.1 YARN守护进程的重要属性

hadoop 小红牛 11℃ 0评论

当在YARN上运行MapReduce时,mapred_site.xml文件仍被用于记录通用
MapReduce属性,只是与jobtracker和tasktracker相关的属性已经废弃了。 除了
mapred.child.java.opts以外(以及两个相关属性 mapreduce.map. java.opts 和 mapreduce.
reduce. java.opts,分别针对map和reduce任务),表9-4中的其他属性都不再适用于YARN。该属性
所对应的JVM选项被用于启动运行map或者reduce任务的YARN子 进程。

范例9-4中的配置文件显示一些配置属性,这些属性对于MapReduce在 YARN上的运行很重要。

范例9-4. 一组在YARN上运行MapReduce的站点配置文件样例

<?xml version="l.0"?>!-- mapred-site.xml -->
<configuration>
    <property>
        <name>mapred.child.java.opts</name>
        <value>-Xmx400m</value>
        <!-- Not marked as final so jobs can include DVM debugging options -->
    </property>
<configuration>


<?xml version="l.0"?>
<!-- yarn-site.xml -->
<configuration>
    <property>
        <name>yarn.resourcemanager.address</name>
        <va1ue>resourcemanager:8032</value>
    </property>
    <property>
        <name>yarn.nodemanager•local-dirs</name>
        <value>/diskl/nm-local-dir,/disk2/nm-local-dir</value>
        <final>true</final>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services"<name>
        <value>mapreduce.shuffle</value>
    </property>
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>8192</value>
    </property>
</configuration>

YARN资源管理器的地址由yarn.resourcemanager.address指定,其格式为:主机:端口。在客户端配置中,这个属性用于连接到资源管理器(使用
RPC)。此外,mapreduce.framework.name 属性必须要设置为 yarn,这样客户端才会使用YARN而非其他。

尽管YARN不再使用mapred.local.dir属性项,但是它有一个功能相同的属性项,即:yarn.nodemanager.local-dirs,以指定本地磁盘位置来存储中间数据。该属性值是一个以逗号分隔的本地目录列表,以供循环访 问各个目录。

 tasktracker会将map任务的输出转到reduce任务中。鉴于YARN舍弃了
tasktracker,因此它依赖于shuffler句柄来完成此项功能,它是长期运行于
节点管理器的附加服务。由于YARN是一个通用目的的服务,MapReduce
的shuffle句柄还需要被显式地启用,即:将yarn.site.xml中的yarn, nodemanager.aux-services
属性设置为 mapreduce. shuffle。

表9-9总结了 YARN的重要配置属性。

表9-9.YARN守护进程的重要性

属性名称

类型

默认值

说明

yam. resourcemanager. address

主机名和端口

0.0.0.0:8032

主机名称和资源管理器的RPC服 务器的监听端口

yarn.nodemanager. local-dirs

逗号分隔的目录名称

/tmp/nm-local-dir

目录列表,节点管理器允许存储 器将中间数据存于其中。当应用 结束时,中间数据被清除

yarn.nodemanager.aux-services

逗号分隔的服务名称

节点管理器运行的附加服务列表。每 项服务由 yarn.nodemanager.aux- services. service-name .class所指定类实现。默认情况下,并 未指定附加服务

yarn.nodemanager. resource.memory-mb

int

8192

被分配到节点管理器的物理内存 量(单位是MB)

yarn.nodemanager.vmem-pmem-ratio

float 2.1 虚拟内存和物理内存间的比率。 虚拟内存的用量可能超过该数字

内存

与早期MapReduce的基于槽的模型相比,YARN以更加精细化的方式来管理内存。YARN并不为可同时在tasktracker上执行的map和reduce槽的最多数量设定一个固定值,它允许应用程序为任务请求任意规模的内存量(该内存量需在预定范围之内)。在YARN模型中,节点管理器从一个内存池中
分配内存,这意味着可同时运行的任务数量依赖于内存需求总量,而非槽数量。

基于槽的模型可能导致集群未被充分利用,原因是map槽与reduce槽之间
的比率在整个集群内是固定如。然而,在不同时段内,作业对map槽和
reduce槽的需求会不断变化。在初始阶段,作业仅需要map槽,在末尾阶段,作业仅需要reduce槽。在包含多个并发作业的大规模集群中,这种需
求变迁也许并不那么剧烈,但是浪费现象仍然显著。YARN并不区分这两 种类型的槽,从而避免了该问题。

以下讨论节点管理器的内存需求以正常执行作业,相关分析与9.4.5节讨论
内存时所提到的类似。每个Hadoop守护进程使用1000 MB内存,因而需 要2000
MB内存来运行1个datanode和1个节点管理器。还要为运行在本
机上的其他进程保留足够内存。节点管理器的内存分配量可以通过yarn.odemanager. resource.memory-mb 来设定,单位是
MB(默认值是 8192 MB)。

还需要考虑如何分别为各个作业设定内存选项。共有两个控制参数。
mapred.child.java.opts 用于设置 map 或者 reduce 任务的 JVM 堆大 小;mapreduce .map
.memory.mb(或者 mapreduce. reduce. memory
.mb)用于指定内存大小以运行map(或redeuce)任务。应用宿主会使用后一个参数
设置以从集群中请求资源;此外,节点管理器也会使用该参数来运行、监 控所有任务的内存使用情况^。

例如,假设
mapred.child.java.opts 被设为-Xmx800m, mapreduce. map.memory.mb被设为默认值(1024
MB)。当map任务启动时,节点管理 器会为该任务分配1024 MB内存(在该任务运行期间,系统的内存池也会相 应降低1024
MB),并启动配置为具有最大堆为800 MB的任务JVM。JVM 进程的内存开销比该堆的规模要大,差距的大小依赖于所使用的本地库 (native
libraries)、永久生成空间(generation space)等因素。需要注意的是,
JVM进程所使用的物理内存必须不超出分配给他的内存大小(1024 MB),这
包括它创建的任何进程,如Streaming或者Pipe等。否则,JVM进程会被 节点管理器终止,并标记为失败。

调度器会指定一个最小和最大内存分配量。例如,容量调度器的默认最小
内存分配量是 1024 MB(由 yarn.scheduler.capacity.minimum-allocation-
mb设置),默认最大内存分配量是10 240 MB(由yarn, scheduler .capacity,
maximum-allocation-mb 设置)。

除了对物理内存有限制之外,对虚拟内存也有限制。如果进程所使用的虚拟内存量超出预定系数和物理内存限制的乘积,则节点管理器也会终止进 程。该系数由yarn.nodemanager.vmem-pmem-ratio属性指定,默认值

是2.1。在前面的例子中,虚拟内存规模的上限值为2150 MB,即2.1×1024 MB。

除了使用参数来配置内存使用上限之外,还可以使用MapReduce任务计数
器来监控任务执行过程中的真实内存消费量。这些计数器包括:PHYSICAL_ EMORY_BYTES、VIRTUAL_MEMORY_BYTES 和
COMMITTED_HEAP_BYTES(参见

表8-2),分别描述了在某一时刻各种内存的使用情况。

转载请注明:全栈大数据 » 9.5.1 YARN守护进程的重要属性

喜欢 (0)or分享 (0)
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址