在弄清楚yarn是什么之前,先来看一下MRv1。

它的由编程模型+数据处理引擎(map/reduceTask)+运行时环境组成(JobTracker/TaskTracker)。其中JobTracker存在很多问题,如下:

1、JobTracker本身承担了调度和计算的任务,太累了

2、JobTracker是单点的,不好扩展不能支持其他计算框架,还有单点故障风险

3、资源是以槽位的方式来调度。粗粒度,不合理。比如提交了一个特别占用资源的任务,整个节点就被占用了。还有map阶段往往reduce槽位就是闲置,反之也是这样。

针对以上问题,MRv2做了以下优化:

1、拆分为资源调度和作业管理两个独立的服务。

2、可以部署集群,可以在yarn上运行其他框架(比如内存计算、流式计算)

3、资源的管理方式是Container,他是一组硬件资源(内存、cpu)等的集合。控制的更细粒度。

这样,新版MRv2,的组成为:编程模型+数据处理引擎(map/reduceTask)+运行时环境组成(yarn),前两者基本实现原理不变。

yarn的概念呼之欲出:

YARN 是Hadoop 2.0 中的资源管理系统,它是一个通用的资源管理模块,可为各类应
用程序进行资源管理和调度。

1、管理系统资源(ResourceManager)

2、管理作业(监控、容错)(ApplicationMaster)

YARN 不仅限于MapReduce 一种框架使用,也可以供其他框架使用。

yarn都包含哪些基本模块呢?

1、ResourceManager(RM) 全局资源管理器。负责资源的管理和分配。

2、ApplicationMaster(AM)应用程序主管,每一个作业对应一个。协调资源,分配任务,与NM通信启动任务,监控任务等。

3、NodeManager(NM)各个节点上的资源管理器。它有两个作用,监控本机资源使用情况汇报到RM;接收来自AM的Container启动/停止等指令

4、Container逻辑意义上的资源隔离机制。

其中,RM有两个主要组成模块:

1、Scheduler调度器

2、ApplicationManager应用程序管理器,作用是接收作业->向Scheduler请求资源(Container)分配给AM->启动AM->监控AM->容错AM。

 学习yarn,主要应该从以下几个类入手:

Job,ResourceManager,NodeManager,MRAPPMaster,YarnClient,MapTask,ReduceTask

其中ResourceManager,NodeManager,MRAPPMaster是类似的实现机制。都是服务模型,都是事件监听机制。如下图:

本篇主要介绍了yarn的组成模块,下一篇将从代码级别分析一个job提交过程。

Hadoop总结篇之二--yarn的概况的更多相关文章

  1. Apache Hadoop 2.9.2 的YARN High Available 模式部署

    Apache Hadoop 2.9.2 的YARN High Available 模式部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.环境准备 1>.官方文档(htt ...

  2. Hadoop总结篇之一------开篇

    从今天开始新的系列:Hadoop总结篇 之前的hadoop学习篇由于是学习过程中随手记下来的一些内容,不具有系统性.所以在这个系列中,将凭着这段时间的研究心得,来记录一些自认为比较重要的东西. 本系列 ...

  3. Java提高篇(三二)-----List总结

    前面LZ已经充分介绍了有关于List接口的大部分知识,如ArrayList.LinkedList.Vector.Stack,通过这几个知识点可以对List接口有了比较深的了解了.只有通过归纳总结的知识 ...

  4. java提高篇(二九)-----Vector

    在java提高篇(二一)-–ArrayList.java提高篇(二二)-LinkedList,详细讲解了ArrayList.linkedList的原理和实现过程,对于List接口这里还介绍一个它的实现 ...

  5. Java提高篇(二六)-----hashCode

          在前面三篇博文中LZ讲解了(HashMap.HashSet.HashTable),在其中LZ不断地讲解他们的put和get方法,在这两个方法中计算key的hashCode应该是最重要也是最 ...

  6. Hadoop阅读笔记(二)——利用MapReduce求平均数和去重

    前言:圣诞节来了,我怎么能虚度光阴呢?!依稀记得,那一年,大家互赠贺卡,短短几行字,字字融化在心里:那一年,大家在水果市场,寻找那些最能代表自己心意的苹果香蕉梨,摸着冰冷的水果外皮,内心早已滚烫.这一 ...

  7. iOS开发Swift篇—(二)变量和常量

    iOS开发Swift篇—(二)变量和常量 一.语言的性能 (1)根据WWDC的展示 在进行复杂对象排序时Objective-C的性能是Python的2.8倍,Swift的性能是Python的3.9倍 ...

  8. 【重走Android之路】【路线篇(二)】知识点归纳

    [重走Android之路][路线篇(二)]知识点归纳   参考:http://blog.csdn.net/xujing81/article/details/7313507   第一阶段:Java面向对 ...

  9. java提高篇(二二)-----LinkedList

    摘自http://blog.csdn.net/chenssy/article/details/18099417  java提高篇(二二)-----LinkedList 一.概述 LinkedList与 ...

随机推荐

  1. HTTP消息结构

    HTTP 消息结构 HTTP是基于客户端/服务端(C/S)的架构模型,通过一个可靠的链接来交换信息,是一个无状态的请求/响应协议. 一个HTTP"客户端"是一个应用程序(Web浏览 ...

  2. BackTrack5-r3虚拟机安装

    ISOL INUX 3.63 Debian-2008-07-15 Copyright (C) 1994-2008 H. Peter Anvinboot:(按回车) 选择:BackTrack Text ...

  3. WPF(WP7、WP8)多个Listbox嵌套时滚动问题的解决

    内部的ListBox加属性 ScrollViewer.VerticalScrollBarVisibility="Disabled" 即可 如果不需要滚动,可以考虑嵌套换成 Item ...

  4. 第三个Sprint冲刺第八天

    讨论地点:宿舍 讨论成员:邵家文.李新.朱浩龙.陈俊金 讨论问题:做最后的工作

  5. Java语言的安全性的体现

    Java语言的安全性的体现 1.严格遵循面向对象的规范.这样封装了数据细节,只提供接口给用户.增加了数据级的安全性. 2.无指针运算.java中的操作,除了基本类型都是引用的操作.引用是不能进行增减运 ...

  6. 创建html模板

    打开写好的html 复制  在页面上右击------属性  --会出现下面情况

  7. iOS开发之APP上线

    APP 上线有两种途径: 一种是 Xcode->openDeveloperTool->applicationLoader,这种打开后登陆appleID就可以选取并且交付您的应用程序了.这种 ...

  8. git和SVN交互(待完善)

    右键 git bash here 然后从SVN同步代码,git status命令,用来确认版本库状态 右键 --> TortoiseGit -->  show log 打开日志  查看gi ...

  9. CSS背景色渐变

      试了下 渐变色  ,主要确定开始位置  结束位置,以及对应的color-stop;  以下是兼容不同浏览器的代码片段       代码:<style type="text/css& ...

  10. java 运算符使表达式结果类型自动提升

    1.表达式中的自动类型提升: 表达式求值时,Java自动的隐含的将每个byte.short或char操作数提升为int类型,这些类型的包装类型也是可以的. 例如:short s1 = 1; s1 = ...