YARN架构设计

YARN(Yet Another Resource Negotiator)设计旨在解决Hadoop1.0中NameNode的压力和TaskTracker的资源管理问题。YARN采用主从架构,由ResourceManager和NodeManager组成,其中ASM负责管理job,Scheduler负责资源调度。客户端提交job后,ResourceManager启动MRappmaster,MRappmaster向ResourceManager申请并管理Container来执行MapReduce任务,完成任务后向ResourceManager注销。
摘要由CSDN通过智能技术生成

一.设计思想
1.hadoop1.0的旧架构及缺陷
在这里插入图片描述
最初的hadoop1模型中并没有yarn,一个 Hadoop 集群可分解为两个抽象实体:MapReduce 计算引擎和分布式文件系统。当一个客户端向一个 Hadoop 集群发出一个请求时,此请求由 JobTracker 管理。JobTracker 与 NameNode 联合将任务分发到离它所处理的数据尽可能近的位置。然后JobTracker 将 Map 和 Reduce 任务安排到一个或多个 TaskTracker 上的可用插槽中。TaskTracker 与 DataNode一起对来自 DataNode 的数据执行 Map 和 Reduce 任务。当 Map 和 Reduce 任务完成时,TaskTracker 会告知 JobTracker,后者确定所有任务何时完成并最终告知客户作业已完成。

缺陷:
1.增加了NameNode的工作压力,Namenode内存有限容易宕机。
2.在TasktRracker端,以MapReduce task的数目为资源的表示过于简单,没有考虑到cpu/内存的占用情况,如果两个大内存消耗的task被调度在一起,很容易发生内存溢出错误。

2.YARN的基本原理

为了解决旧框架问题,YARN设计思想还是主从架构,分为ResourceManager 和每个slave节点的NodeManager
其中ResourceManager包含两个关键组件:
ASM(applicationsmanager): 负责管理所有job及job的启动、监控、重启、失败
Scheduler:为该job进行资源计算,得出该运行job任务的子节点以及调度任务的顺序,仅负责调度。

在这里插入图片描述
过程
1)客户端向resourcemanager发送一个提交job的请求
任务先提交给管理器AMS
ASM 将任务转交给调度器Scheduler
hadoop jar … jar … … …
2)一旦有资源,调度器Scheduler开始提交job的运行
resourcemanager(AMS)到对应资源启动当前应用程序MRappmaster
3)MRappmaster向resourcemanager申请运行maptask和reducetask的资源
4)resourcemanager向MRappmaster返回资源节点
5)MRappmaster到对应的节点上启动Container,并在Container中启动maptask任务
6)maptask和reducetask运行过程中向MRappmaster汇报自己的运行状况和进度
7)maptask或reducetask运行完成向MRappmaster汇报,进行资源销毁,释放资源
8)当所有的maptask和reducetask都运行完成,MRappmaster向resourcemanager进行注销自己

job提交过程
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值