YARN

YARN通过Resource Manager和Node Manager提供核心服务,管理应用程序的资源使用。应用运行涉及client与RM交互,启动Application Master(AM)。YARN提供灵活的资源请求模型,支持动态资源申请。与MapReduce1相比,YARN将作业调度和任务监控分离,由RM和AM负责。调度器包括FIFO、Capacity和Fair Scheduler,其中Fair Scheduler实现资源在应用间的公平共享。配置文件如capacity-scheduler.xml和fair-scheduler.xml用于定义队列、权重和调度策略。
摘要由CSDN通过智能技术生成

YARN通过两类长期运行的守护进程提供核心服务:管理集群上资源使用的资源管理器resource manager(RM),能够启动和监控容器(container)的节点管理器node manager(NM),container用于执行特定的应用程序进程。与HDFS一样,YARN也是master/slave结构,一个RM管理着多个NM。

YARN应用运行机制

1)client首先联系RM,要求它运行一个application master(AM);

2)RM找到一个能够在container中启动AM的NM;

3)AM运行起来之后做什么依赖于应用本身,有可能在所处的container中简单地执行一个计算并将结果返回给客户端,或是像RM请求更多的container,用于运行一个分布式计算,例如MapReduce。

YARN资源请求

YARN有一个灵活的资源请求模型,请求多个container时可以指定每个container的资源,还可以治container的本地限制要求。

本地化对于确保分布式数据处理算法高效使用集群带宽非常重要,本地限制有时也存在无法被满足的情况,例如一个NM节点已经运行了别的container而无法再启动新的container,此时若有应用请求该节点,则YARN会尝试在同一机架的其他节点上启动一个container,如果还不行则会尝试集群中的任意节点。

YARN应用可以在运行中的任意时刻提出资源申请,可以在最开始提出所有的请求,或者为满足不断变化的应用需要,采取更为动态的方式在需要更多资源时提出请求。Spark采用的就是第一种方式,MapReduce采用的就是第二种方式,在最开始时申请map任务的container,后期再申请reduce任务的container,如果任何任务出现失败,会另外申请容器重新运行失败的任务。

YARN和MapReduce1的对比

MapReduce1中由两类守护进程控制作业执行:一个jobtracker以及一个或多个tasktracker。jobtracker同时负责作业调度和任务进度监控,而在YARN中作业调度由RM负责,任务监控由每个MapReduce作业的AM负

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值