Hadoop Yarn NodeManger架构分析

NodeManger分析

NM主要保持与RM的同步,管理该节点containers的生命周期,监控每个container的资源使用率,跟踪节点状态,日志管理和各种应用服务的辅助服务。

 总体架构



 NodeStatusUpdater

在NM启动阶段,NodeStatusUpdater负责向RM注册,将该可用资源发送给RM。在运行节点提供该节点containers的状态给RM。RM还会给NodeStatusUpdater发送消息杀死正在运行的containers。

 ContainerManager

这部分是NM的关键部分,该部分由如下组件组成,每个节点缺一不可:
1) RPC server:介绍来着AMS的请求消息去启动或者关闭一下消息。与ContainerTokenSecretManager 一起工作,有日志可以回滚;
2) ResourceLocalizationService:负责安全下载和组织containers 需要的文件资源,尽力将文件分布到本机的所用磁盘上面,对下载的文件进行权限控制;后面的研究重点;
3) ContainersLauncher:保持一个线程池去准备和尽快启动containers ,当RM和Ams发送消息时清理一些Containers;
4) AuxServices:NM提供了一个架构去拓展他的功能通过配置辅助服务,这个功能值得关注;
5) ContainersMonitor:获取正在运行container 的资源利用率,去隔离和共享资源,每个container 会被RM分配一些资源,如果container 占用超过自己的资源会被kill掉;
6) LogHandler:记录日志,打包发送到hdfs上面;

 ContainerExecutor

与地层操作系统交付,安全放置containers 文件和目录,以安全的方式启动和清理Container相应进程。

 NodeHealthCheckerService

定时运行脚本去检验节点的健康状态,会检查放置零时文件的磁盘的健康状态。当系统有任何改变都会通知NodeStatusUpdater ,NodeStatusUpdater 然后通知RM。

 ContainerTokenSecretManager

保证 authorized users可以获得相关的权限。

 ApplicationACLsManagerNM

确保所有请求都被RM批准。

 Container Launch

NM 使用如下步骤启动一个container:
a) 将需要资源拷贝到本地;
b) 隔离工作目录,目录下面有需要的本地资源;
c) 启动命令行运行container;

 MR shuffle with Auxservices

运行MapReduce程序所需的shuffle功能是通过附属服务实现的,该服务会启动一个Netty Server,它知道如何处理来自Reduce Task的MR相关的shuffle请求。MR(MapReduce) AM(ApplicationMaster)为shuffle服务定义服务ID,和可能需要的安全令牌,而NM向AM提供shuffle服务的运行端口号,并由AM传递给各个Reduce Task。

【注】mapreudce程序的优化点,后面我们专门分析。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值