一文搞懂Yarn基础知识点

Yarn概述

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

Yarn基本架构
一文搞懂Yarn基础知识点_第1张图片

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工作机制

一文搞懂Yarn基础知识点_第2张图片

(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申请注销自己。

你可能感兴趣的:(大数据,linux,运维)