YARN—分布式资源管理框架 架构 组件 工作流程

5 篇文章 0 订阅

Yet Another Resource Negotiator

Apache Hadoop YARN 是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。

架构

ResourceManager(RM)

全局的资源管理器,整个集群只有一个,负责集群资源的统一管理和调度分配。

主要接收客户端任务请求,接收和监控NodeManager(NM)的资源情况汇报,负责资源的分配与调度,启动和监控ApplicationMaster(AM)。

NodeManager(NM)

整个集群有多个,负责单节点资源管理和使用

主要是节点上的资源管理,启动Container运行task计算,上报资源、container情况给RM和任务处理情况给AM。

NodeManager管理抽象容器,这些容器代表着可供一个特定应用程序使用的针对每个节点的资源。

定时地向RM汇报本节点上的资源使用情况和各个Container的运行状态。

ApplicationMaster(AM)

管理一个在YARN 内运行的应用程序的每个实例

主要是单个Application(Job)的task管理和调度,向RM进行资源的申请,向NM发出launch Container指令,接收NM的task处理状态信息。

Container

YARN中的资源抽象,封装某个节点上多维度资源,如内存、CPU、磁盘、网络等,当AM向RM申请资源时,RM向AM返回的资源便是用Container表示的。

YARN 会为每个任务分配一个Container,且该任务只能使用该Container中描述的资源。

 对任务运行环境的抽象,描述一系列信息, 任务运行资源(节点、内存、CPU),任务启动命令,任务运行环境

Job工作流程

  1. client submit一个job到RM,进入RM中的Scheduler队列供调度
  2. RM根据NM汇报的资源情况(NM会定时汇报资源和container使用情况),请求一个合适的NM launch container,以启动运行AM
  3. AM启动后,注册到RM上,以使client可以查到AM的信息,便于client直接和AM通信
  4. AM启动后,根据Job 相关的split的task情况,会和RM协商申请container资源
  5. RM分配给AM container资源后,根据container的信息,向对应的NM 请求launch container
  6. NM启动container运行task,运行过程中向AM汇报进度状态信息,类似于MRv1中 task的汇报;同时NM也会定时的向RM汇报container的使用情况。
  7. 在application(job)执行过程中,client可以和AM通信,获取application相关的进度和状态信息。
  8. 在application(job)完成后,AM通知RM clear自己的相关信息,并关闭,释放自己占用的container。

YARN优势

更快地MapReduce计算

YARN利用异步模型对MapReduce框架的一些关键逻辑结构(如JobInprogress、TaskInProgress等)进行了重写,相比于MRv1,具有更快地计算速度。

对多框架支持

YARN不再是一个单纯的计算框架,而是一个框架管理器,用户可以将各种各样的计算框架移植到YARN之上。

框架升级更容易

 在YARN中,各种计算框架不再是作为一个服务部署到集群的各个节点上(比如MapReduce框架,不再需要部署JobTracler、TaskTracker等服务),而是被封装成一个用户程序库(lib)存放在客户端,当需要对计算框架进行升级时,只需升级用户程序库即可。

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值