Hadoop总结篇之二--yarn的概况
在弄清楚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的概况的更多相关文章
- Apache Hadoop 2.9.2 的YARN High Available 模式部署
Apache Hadoop 2.9.2 的YARN High Available 模式部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.环境准备 1>.官方文档(htt ...
- Hadoop总结篇之一------开篇
从今天开始新的系列:Hadoop总结篇 之前的hadoop学习篇由于是学习过程中随手记下来的一些内容,不具有系统性.所以在这个系列中,将凭着这段时间的研究心得,来记录一些自认为比较重要的东西. 本系列 ...
- Java提高篇(三二)-----List总结
前面LZ已经充分介绍了有关于List接口的大部分知识,如ArrayList.LinkedList.Vector.Stack,通过这几个知识点可以对List接口有了比较深的了解了.只有通过归纳总结的知识 ...
- java提高篇(二九)-----Vector
在java提高篇(二一)-–ArrayList.java提高篇(二二)-LinkedList,详细讲解了ArrayList.linkedList的原理和实现过程,对于List接口这里还介绍一个它的实现 ...
- Java提高篇(二六)-----hashCode
在前面三篇博文中LZ讲解了(HashMap.HashSet.HashTable),在其中LZ不断地讲解他们的put和get方法,在这两个方法中计算key的hashCode应该是最重要也是最 ...
- Hadoop阅读笔记(二)——利用MapReduce求平均数和去重
前言:圣诞节来了,我怎么能虚度光阴呢?!依稀记得,那一年,大家互赠贺卡,短短几行字,字字融化在心里:那一年,大家在水果市场,寻找那些最能代表自己心意的苹果香蕉梨,摸着冰冷的水果外皮,内心早已滚烫.这一 ...
- iOS开发Swift篇—(二)变量和常量
iOS开发Swift篇—(二)变量和常量 一.语言的性能 (1)根据WWDC的展示 在进行复杂对象排序时Objective-C的性能是Python的2.8倍,Swift的性能是Python的3.9倍 ...
- 【重走Android之路】【路线篇(二)】知识点归纳
[重走Android之路][路线篇(二)]知识点归纳 参考:http://blog.csdn.net/xujing81/article/details/7313507 第一阶段:Java面向对 ...
- java提高篇(二二)-----LinkedList
摘自http://blog.csdn.net/chenssy/article/details/18099417 java提高篇(二二)-----LinkedList 一.概述 LinkedList与 ...
随机推荐
- C#在Dictionary中使用枚举作为键
Enum类型没有实现IEquatable接口,Dictionary中使用Enum作为键时,将发生装箱,使效率降低. 此时可用Dictionary中一个接收IEqualityComparer<T& ...
- 将DataTable 导出为csv
//测试用的 导出查询的DataTable public static void Export(DataTable dtResult) { string strHeader =null; string ...
- 安装MySql for Visual Studio后,打开IDE找不到MySql选项
只能说安装程序功能不健全,找不到Visual Studio也不问,自己随便找了个地儿把插件放下了...这程序员真2! 原文在这里,作者思路对头.原文:"安装MySql for Visual ...
- inux如何查看当前占用CPU或内存最多的进程
一.可以使用以下命令查使用内存最多的进程 方法1: ps -aux | sort -k4nr | head -K 如果是10个进程,K=10,如果是最高的三个,K=3 说明:ps -aux中(a指代a ...
- html默认属性
对于display为block来说width默认是满长的,即父级得100%,而高度是0,除非手动设置为100%或指定高度.
- ListView 的优化(原)
随着ListView的不断深入使用,对于其的优化是必不可免的一个过程,现把其常见的优化步骤分享下,一些粗浅见识... 优化分四步走: 第一,复用convertView对象,如果之前有条目对象,就复用, ...
- 设为首页 添加到收藏夹 (share)
设为首页,添加到收藏夹 分享自:http://my.oschina.net/lyx2012/blog/60036 设为首页 和 收藏本站js代码 兼容IE,chrome,ff <script t ...
- ulua 路径小记 以及 lua require 机制整理
ulua 路径小记 在学习ulua时,require模块的根路径可以为项目的Lua文件夹或者ToLua文件夹(Editor下),但是在package.path和package.cpath中并没有看到当 ...
- 无后台的网站 内容暂存json
当网站无后台时,将数据暂存储为json文档,然后通过调用json文件获取数据填充前端页面 存储json格式的文件 [ { "id": 1, "cat": &qu ...
- Please allow Subclipse team to receive anonymous usage statistics for this Eclipse intance(info)
本文转载自:http://blog.csdn.net/myfxx/article/details/21096949 今天在用eclipse启动项目的时候发现了一个问题,就是每次启动项目的时候,ecli ...