Hadoop YARN

Hadoop YARN将资源管理和作业调度分离,由ResourceManager全局管理资源,NodeManager监控container资源使用。ApplicationMaster负责与ResourceManager协商资源并协调任务执行。Scheduler基于资源请求分配,支持CapacityScheduler和FairScheduler。ApplicationsManager接收作业请求并重启失败的ApplicationMaster。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

YARN的基本原理是,将资源管理和作业调度/监控的功能分离成独立的守护进程。也就是说,有一个全局的ResourceManager(RM),以及每个应用有一个ApplicationMaster(AM)。一个应用可以是单个的作业,也可以是一个作业有向无环图。

ResourceManager和NodeManager组成数据计算框架。在系统中,所有应用的资源分配由ResourceManager负责。每台机器是一个NodeManager,它负责监控container的资源使用(cpu,内存,磁盘,网络),并向ResourceManager/Scheduler报告。

实际上,每个应用的ApplicationMaster是一个特定库的框架,负责与ResourceManager协商资源,并监控和协调NodeManager执行任务。

在这里插入图片描述

ResourceManager有两个主要的组成部分:Scheduler和ApplicationsManager。

Scheduler负责分配资源,Scheduler不监控或追踪应用的状态。所以,它也不负责重启由于应用失败或硬件错误导致的失败任务。Scheduler基于应用的资源请求来执行分配功能。它是基于Container来分配内存、cpu、磁盘和网络等资源。

Scheduler有一个插拔式的策略,这个策略是,在各种队列、应用中,能够对集群资源进行分区。当前支持的插拔的调度有CapacityScheduler和FairScheduler。

ApplicationsManager负责接收作业提交请求,协调指定执行应用的第一个container为ApplicationMaster,并在失败的时候,提供重启ApplicationMaster的服务。每个应用的ApplicationMaster有责任从Scheduler协商获取资源container,并追踪这些container的状态信息。

通俗来讲:
1、客户端(client)有个作业需要提交,找到ResourceManager,然后ResourceManager告诉client,我有两个小弟,Scheduler和ApplicationsManager,Scheduler负责资源调度,ApplicationsManager负责作业请求;
2、然后,client找到ApplicationsManager,ApplicationsManager接受了作业请求,并找其老大要了一个container来执行作业,并把这个container作为ApplicationMaster;
3、最后,ApplicationMaster会负责作业新的container的申请,及作业的监控。

参考文献:

  1. http://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/YARN.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值