yarn入门学习介绍

本篇将从以下几个方面阐述yarn

  • 1、产生的原因
  • 2、简介
  • 3、适用情况
1、产生的原因

yarn的出现是由于hadoop1.0版本中的 jobtracker负载过重,导致计算上限极小,无法满足大量数据工作的需求。


首先来看一看hadoop1.0的架构图,以便整体了解
yarn入门学习介绍_第1张图片
此时MapReduce计算模型是直接运行在hdfs上的,因此造成了以下的问题。


看一看hadoop1.0中的MapReduce架构图
yarn入门学习介绍_第2张图片
在当前版本中,jobtracker既要负责作业的分发、监控,还要负责资源的的调度,因此会存在极其严重的单点故障,而且作业的运行上限十分低,在此极限下很难完成极其大数据的操作。


在hadoop2.0中的架构图是这样的
yarn入门学习介绍_第3张图片
此时将所有的计算模型放到了yarn之上


再来看看当前hadoop2.0版本下yarn的架构图。

yarn入门学习介绍_第4张图片
在hadoop2.0中,增加了yarn将作业管理和资源调度分离开,资源调度统一由Resource Manager管理,而作业的管控则交给了结点上的Node Manager,这样实现了资源管理和作业管理的分离,增加了效率,可操作数据上限大幅上升。

2、简介
  • 运行机制

看一下yarn的运行时图
yarn入门学习介绍_第5张图片
可以看成是这样的
yarn入门学习介绍_第6张图片

  • yarn情况

yarn的核心服务由两类长期运行的进程提供:管理资源Resource Manager和运行在集群所有节点上的启动和监控容器的Node Managere,容器是用于执行特定的应用的程序的进程,每个容器有资源限制,详细可以配置(如内存、CPU等)。

  • yarn运行

客户端向资源管理器发送一个请求,要求其运行一个application master,资源管理器(Resource Manager)便在集群容器中找到一个能运行application Master的节点管理器,application master启动后将要做什么由其自己决定,可向资源管理器请求更多的容器或在所处的容器中进行一个简单的计算并将结果返回给客户端(而各个进程或节点间的通信是由hadoop RPC提供的,yarn本身不提供通信机制,但是yarn有API,可一般不调用,基本用更高级的如MapReduce的API)。

  • yarn资源请求

yarn的资源请求遵从优先最近原则,既本节点为首要选择,其次为本机架,如再不满足可取本集群任意节点。yarn的资源请求可在任意时刻提出,既动态申请。理想情况下,yarn的资源申请应立即给予满足,但由于现实情况下资源有限所以一个应用请求资源经常需要进行等待,这就涉及到yarn的资源调度方式,调度方式的区别决定了资源请求的速度。

  • 资源调度

资源调度的方式通常有三种:FIFO调度器,容器调度器、公平调度器,以下分别是三种的调度图。
yarn入门学习介绍_第7张图片

yarn入门学习介绍_第8张图片


  • FIFO调度器,既先来先出。既A、B两个作业,A先到,则A占用所有资源当B来时等待直至A完成调度,B方可使用。
  • 容量调度器,既可以提前限定当前队列所使用的资源占比。如有两个队列,A作业位于队列1,2队列有两个作业B、C,队列1占比25%,队列2占比75%,则整个过程中A作业不会因为作业过大关系调用队列2资源,B、C也同理。
  • 公平调度器,A、B两个用户,当A用户资源先到时B用户没有需求则A占用整个资源,B来到后逐渐占用一半资源,如当接下来B用户有第二个作业而其他作业仍在工作,则第二个作业随即占用B用户一半资源既整个集群资源的1/4,实现资源在用户之间共享。
通常使用后两者,效率较高。
3、适用情况

当前基本上所有的计算框架都可运行在yarn上。

你可能感兴趣的:(大数据)