Yarn简介

Yarn也是主从结构,主要由ResourceManager、NodeManager、 ApplicationMaster和Container等几个组件构成。

一、ResourceManager 是根据任务的需要对集群资源的需求进行调度的 YARN 集群主控节点,负责协调和管理整个集群(所有 NodeManager)的资源。二、NodeManager 是 YARN 集群当中真正资源的提供者,是真正执行应用程序的容器的提供者, 监控应用程序的资源使用情况(CPU,内存,硬盘,网络),并通过心跳向集群资源调度器 ResourceManager 进行汇报以更新自己的健康状态。同时其也会监督 Container 的生命周期管理,监控每个 Container的资源使用(内存、CPU 等)情况,追踪节点健康状况,管理日志和不同应用程序用到的附属服务(auxiliary service)。三、ApplicationMaster 对应一个应用程序,职责是:向资源调度器申请执行任务的资源容器,运行任务,监控整个任务的执行,跟踪整个任务的状态,处理任务失败以异常情况。四、Container 容器是一个抽象出来的逻辑资源单位。容器是由 ResourceManager Scheduler 服务动态分配的资源构成,它包括了该节点上的一定量 CPU,内存,磁盘,网络等信息,MapReduce 程序的所有 Task 都是在一个容器里执行完成的,容器的大小是可以动态调整的。Container是Yarn对计算机计算资源的抽象,它其实就是一组CPU和内存资源,所有的应用都会运行在Container中。

关于Yarn的资源调度流程

客户端先通过RPC请求RM(ResourceManager)资源,ResourceManager返回一个jobid,并告知一个提交程序相关文件的路径。客户端会将相关的文件(.jar、.split、.xml)提交到HDFS的该路径下。并告知ResourceManager提交完毕。ResourceManager中有一个任务队列,会将RPC请求资源的信息封装到一个任务对象中。ResourceManager将任务对象分配给指定的nodemanager。nodemanager根据应用程序资源信息,创建一个container,并将HDFS中的文件信息放到其目录中。客户端发送启动程序的shell脚本命令,会先启动AppMaster,AppMaster向ResourceManager进行注册,这样用户可以直接通过RM査看应用程序的运行状态。然后AppMaster根据应用程序的任务需求资源在NodeManager上创建Container,AppMaster将相关的任务发送给这些NodeManager,利用创建出来的 Container去执行任务。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值