Hadoop YARN

文章转载自:https://blog.youkuaiyun.com/Mr_HHH/article/details/81127373

1、概述

Yarn的设计目标就是允许我们的各种应用以共享、安全、多租户的形式使用整个集群。
YARN主要有以下几个部分组成:

  1. Global ResourceManager,系统中资源分配的老大(Boss),主要由两部分:Scheduler and ApplicationManager。
    1.1 Scheduler:是ResourceManager专门进行资源管理的一个组件,负责分配NodeManager上的Container资源 。
    1.2 per-application ApplicationMaster(项目经理)
    每个application向RM申请resource
    与NM协作一起执行和监视任务
    重启失败的任务。
  2. per-machine NodeManager(小组长):分配container给作业使用,并且监控作业的运行、资源的使用(cpu、memory…),并把这些情况向RM汇报。
    2.1 Container(抽象概念):是Yarn对计算机计算资源的抽象,它其实就是一组CPU和内存资源,也是YARN框架的计算单元。

2、应用提交过程分析

在这里插入图片描述
这里从一个任务的提交开始分析这个任务在yarn中的具体流程:

1:用户提交任务到ResourceManager,ResourceManager中包含两个组件,其中一个是Scheduler,另一个是ApplicationManager,这个时候组件ApplicationManager负责接收job的提交请求,为应用分配第一个Container来运行ApplicationMaster,还有就是负责监控ApplicationMaster,在遇到失败时重启ApplicationMaster运行的Container。

2:ApplicationMaster向ResourceManager进行注册,注册之后客户端就可以查询ResourceManager获得自己ApplicationMaster的详细信息,以后就可以和自己的ApplicationMaster直接交互了,这个时候,客户端主动和ApplicationMaster交流,应用先向ApplicationMaster发送一个满足自己需求的资源请求,然后ApplicationMaster把这个资源请求以resource-request的形式发送给ResourceManager的Scheduler,Scheduler再在这个原始的resource-request中返回分配到的资源描述Container。ApplicationMaster在得到这些Containers后,还需要与分配Container所在机器上的NodeManager交互来启动Container并运行相关任务,当然Container的分配是需要认证的,以防止ApplicationMaster自己去请求集群资源。

3:应用程序的代码在启动的Container中运行,并把运行的进度、状态等信息通过application-specific协议发送给ApplicationMaster。

4:在应用程序运行期间,提交应用的客户端主动和ApplicationMaster交流获得应用的运行状态、进度更新等信息,交流的协议是application-specific协议。

5:一但应用程序执行完成并且所有相关工作也已经完成,ApplicationMaster向ResourceManager取消注册然后关闭,最后把所有的Container也归还给系统,任务运行结束!

3、Flink和YARN的交互

在这里插入图片描述

  1. 启动新的Flink YARN回话时,客户端首先检查所请求的资源是否可用。之后,将包含Flink和配置的jar上传到HDFS(步骤1)。
  2. 客户端请求(步骤2)RM来启动AM(步骤3)。由于客户端将配置和jar文件注册为容器的资源,因此在该特定机器上运行的YARN的NodeManager将负责准备容器(例如,下载文件)。完成后,将启动AM。
  3. 该JobManager和AM在同一容器中运行。一旦他们启动成功,AM就知道JobManager(它自己的主机)的地址。AM为TaskManagers生成一个新的Flink配置文件(以便他们可以连接到JobManager)。该文件也上传到HDFS。此外,AM容器还提供Flink的Web界面。YARN代码分配的所有端口都是临时端口,这允许用户并行执行多个Flink YARN回话。
  4. 之后,AM开始为Flink的TaskManagers分配容器(步骤4),TaskManagers将从HDFS下载jar文件和修改后的配置。完成这些步骤后,即可建立Flink并准备接收作业。
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值