一文搞懂Yarn基础知识点

Yarn概述

Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台

Yarn基本架构
在这里插入图片描述

Resource Manager(RM)

处理客户端请求

监控Nodemanager

启动或监控ApplicationMaster

资源的分配与调度

NodeManager(NM)

管理单个节点上的资源

处理来自Resouremanager的命令

处理来自ApplicationMaster的命令

ApplicationMaster(AM)

负责数据的切分

为应用程序申请资源分配任务

任务的监控与容器

Container

资源抽象-封装某个节点上的多维资源、如内存、CPU、磁盘、网络

Yarn任务推测执行

基本假设

作业完成时间取决于最慢的任务完成时间

推测执行机制

前提条件

	每个Task只能有一个备份任务

	当前Job已完成Task必须不少于5%

	开启推测执行参数设置

		mapred-site.xml

不能使用推测执行机制的情况

	任务间存在严重的负载倾斜

	特殊任务,比如任务向数据库中写数据

Yarn资源调度器

FIFO

单队列,First In First Out

Capacity Scheduler

多队列,FIFO

如何选择进入哪一个队列

	正在运行的任务数/应分得的计算资源

	得出比值最小即最闲的队列

Fair Scheduler

多队列,可同时运行多个任务

优先级概念:理想获得资源-实际获得资源

详解Yarn工作机制

在这里插入图片描述

(1)MR程序提交到客户端所在的节点。

(2)YarnRunner向ResourceManager申请一个Application。

(3)RM将该应用程序的资源路径返回给YarnRunner。

(4)该程序将运行所需资源提交到HDFS上。

(5)程序资源提交完毕后,申请运行mrAppMaster。

(6)RM将用户的请求初始化成一个Task。

(7)其中一个NodeManager领取到Task任务。

(8)该NodeManager创建容器Container,并产生MRAppmaster。

(9)Container从HDFS上拷贝资源到本地。

(10)MRAppmaster向RM 申请运行MapTask资源。

(11)RM将运行MapTask任务分配给另外两个NodeManager,另两个NodeManager分别领取任务并创建容器。

(12)MR向两个接收到任务的NodeManager发送程序启动脚本,这两个NodeManager分别启动MapTask,MapTask对数据分区排序。

(13)MrAppMaster等待所有MapTask运行完毕后,向RM申请容器,运行ReduceTask。

(14)ReduceTask向MapTask获取相应分区的数据。

(15)程序运行完毕后,MR会向RM申请注销自己。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值