分享

YARN/MRv2 Resource Manager深入剖析—NM管理

fanbells 2014-4-3 08:48:44 发表于 连载型 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 2 8509
本帖最后由 pig2 于 2014-4-3 10:28 编辑
1、NodeManager管理部分有哪些服务构成?
2、这些服务是怎样工作的?

已有(2)人评论

跳转到指定楼层
fanbells 发表于 2014-4-3 08:49:45
本帖最后由 pig2 于 2014-4-3 10:28 编辑

NodeManager管理部分主要由三个服务构成,分别是NMLivelinessMonitor、NodesListManager和ResourceTrackerService,它们共同管理NodeManager的生存周期,接下来我们依次介绍这三个服务。


NMLivelinessMonitor

该服务周期性遍历所有NodeManager,如果一个NodeManager在一定时间(可通过参数yarn.nm.liveness-monitor.expiry-interval-ms配置,默认为10min)内未汇报心跳信息,则认为它死掉了,它上面所有正在运行的Container将被置为运行失败(RM不会重新执行这些Container,它只会通过心跳机制告诉对应的AM,由AM决定是否重新执行,如果需要,则AM重新向RM申请资源)。

NodesListManager

NodesListManager维护正常节点和异常节点列表,它管理exlude(类似于黑名单)和inlude(类似于白名单)节点列表,这两个列表所在的文件分别可通过yarn.resourcemanager.nodes.include-path和yarn.resourcemanager.nodes.exclude-path配置(每个节点host占一行),其中,exlude节点是排外节点,它们无法与RM取得连接(直接在RPC层抛出异常,导致NM死掉),默认情况下,这两个列表均为空,表示任何节点均可接入RM。最重要的一点是,这两个文件均可以动态加载。

ResourceTrackerService

ResourceTrackerService负责处理来自各个NodeManager的请求,主要包括两种请求:注册和心跳,其中,注册是NodeManager启动时发生的行为,请求包中包含节点ID,可用的资源上限等信息,而心跳是周期性 行为,包含各个Container运行状态,运行的Application列表、节点健康状况(可通过一个脚本设置),而ResourceTrackerService则为NM返回待释放的Container列表、Application列表等。

当一个NM启动时,他所做的第一件事是向RM注册,这是通过RPC函数ResourceTracker.registerNodeManager()实现的。

NM启动时候,它会周期性的通过RPC函数ResourceTracker. nodeHeartbeat ()汇报心跳,具体包含各个Container运行状态、运行的Application列表、节点健康状况等信息,而RM则位置返回需要释放的Container列表,Application列表等。

原址:http://dongxicheng.org/mapreduce ... manager-nm-manager/


回复

使用道具 举报

zhujun182104906 发表于 2016-10-9 14:07:16
不错,学习一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条