转自:http://blog.csdn.net/colorant/article/details/9146201

== 目标问题 ==

下一代的Hadoop框架,支持10,000+节点规模的Hadoop集群,支持更灵活的编程模型

== 核心思想 ==

固定的编程模型,单点的资源调度和任务管理方式,使得Hadoop 1.0的应用在模式上和规模上都日益表现出它的局限性。

YARN的核心思想是采用两级分布式的资源调度和任务管理框架,支持模块化的任务调度组件和自定义的任务管理模块,以适应多样化的编程模式和日益增大的集群规模。

YARN以container为单位调度资源和任务,可调度的资源类型为Memory(长期目标包括CPU/DISK/IO等),通过在各个任务管理框架间分配和共享资源来提高集群利用率,整体思想和Mesos十分接近。

== 实现 ==

YARN的主要组成部分包括:

一个全局的RM(ResourceManager),每个Job一个的AM(ApplicationMaster) 和 每个节点一个的NM(NodeManager)

RM内部又进一步分为调度模块(scheduler)和应用管理模块(Applications Manager),调度模块负责在各个Job间调度分配资源,而应用管理模块则负责监听客户端创建Job的请求和启动Per Job的AM

在应用管理模块启动AM以后,AM就接管了自身Job之后的管理工作,AM负责与调度模块协商获取任务运行所需的资源,通过NM创建得到所需资源的任务进程,并监控任务的完成情况。

从AM和RM的通讯协议上看,对资源的调度接口已经简化为一个AM所需Container的配置,数量和位置的列表,因此具有很大的通用性,当然,由于调度模块只是简单的根据Job的需求和优先级等调度资源,而不考虑任何任务具体细节和执行情况的相关信息,也就会损失一些可以作为调度依据的信息。以MapReduce为例,MapSplit相关的信息是调度模块所无法得知的。Locality等要求就需要由AM来保证。

== 相关研究,项目等 ==

Mesos所要解决的问题和整体思路和YARN十分相似。同样的两级资源调度,可模块化的调度策略,由具体的运算框架负责第二级资源调度,隔离的资源管理方式和相似的任务执行方式。不过在资源的一级调度方式上,Mesos采用Push的方式,而YARN采用Pull的方式,Mesos号称是为了使接口更加简单和通用化,YARN采用Pull的方式看起来则似乎更灵活一些。但是光从API上看,个人理解AM在做调度请求前还需要获取全局资源的状态,可能需要付出更大的通讯代价?

Facebook的Corona同样是为Hadoop开发的,基本上也是将MapReduce1.0中的Job tracker以Job为单位进行拆分。同样采用Pull的方式向中央调度模块Cluster manager请求资源。不过Scope大概比YARN要小,目测纯粹是通过分布是调度的方是解决集群规模问题,而YARN同时还希望能灵活适配不同的运算框架。

YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework的更多相关文章

  1. 论文阅读笔记 - YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...

  2. Apache Hadoop YARN: 背景及概述

    从2012年8月开始Apache Hadoop YARN(YARN = Yet Another Resource Negotiator)成了Apache Hadoop的一项子工程.自此Apache H ...

  3. hadoop错误org.apache.hadoop.yarn.exceptions.YarnException Unauthorized request to start container

    错误: 14/04/29 02:45:07 INFO mapreduce.Job: Job job_1398704073313_0021 failed with state FAILED due to ...

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

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

  5. Apache Hadoop集群安装(NameNode HA + YARN HA + SPARK + 机架感知)

    1.主机规划 序号 主机名 IP地址 角色 1 nn-1 192.168.9.21 NameNode.mr-jobhistory.zookeeper.JournalNode 2 nn-2 192.16 ...

  6. Apache hadoop namenode ha和yarn ha ---HDFS高可用性

    HDFS高可用性Hadoop HDFS 的两大问题:NameNode单点:虽然有StandbyNameNode,但是冷备方案,达不到高可用--阶段性的合并edits和fsimage,以缩短集群启动的时 ...

  7. Apache Hadoop集群离线安装部署(二)——Spark-2.1.0 on Yarn安装

    Apache Hadoop集群离线安装部署(一)——Hadoop(HDFS.YARN.MR)安装:http://www.cnblogs.com/pojishou/p/6366542.html Apac ...

  8. Apache Hadoop集群离线安装部署(一)——Hadoop(HDFS、YARN、MR)安装

    虽然我已经装了个Cloudera的CDH集群(教程详见:http://www.cnblogs.com/pojishou/p/6267616.html),但实在太吃内存了,而且给定的组件版本是不可选的, ...

  9. Yarn 踩坑 : Could not find or load main class org.apache.hadoop.mapreduce.v2.app.MRAppMaster

    原因:yarn-site.xml 中,yarn.application.classpath 未配置 解决:其中 hadoop 版本对应更改 <property> <name>y ...

随机推荐

  1. RHCE7 管理II-4计划将来的Linux任务

    (1) at 一次性的计划任务 语法: # at [参数] [时间] at> 执行的指令 退出at命令 ctrl+d [root@localhost ~]# at now at> mkdi ...

  2. 摘:VC开发数据库基础之ADO篇

    一.ADO简介ADO(ActiveX Data Object)是Microsoft数据库应用程序开发的新接口,是建立在OLE DB之上的高层数据库访问技术,请不必为此担心,即使你对OLE DB,COM ...

  3. Python3 列表 clear() 方法

    描述 Python3 列表 clear() 方法用于清空列表,类似于 del a[:]. 语法 clear() 方法语法: L.clear() 参数 无. 返回值 该方法没有返回值. 实例 以下实例展 ...

  4. log4j 输出到 数据库

    # LOG4J配置 log4j.rootCategory=ERROR,stdout,errorfile,jdbc # 控制台输出 log4j.appender.stdout=org.apache.lo ...

  5. Win8.1的IE11无法打开,必须使用管理员身份运行

    不知道大家有没有遇到这种情况,在毫不知情的情况下 IE11 突然打不开了,必须要用管理员身份运行才可以打开,而且重置浏览器这个方法也不奏效. 今天本人也遇到了,上网查找发现是注册表权限的问题,原因尚不 ...

  6. 批处理学习笔记2 - 编写批处理的for循环

    批处理中的for循环集成的功能比较多,可以直接对文件操作. ====================================================================== ...

  7. Top 40 Static Code Analysis Tools

    https://www.softwaretestinghelp.com/tools/top-40-static-code-analysis-tools/ In this article, I have ...

  8. [小技巧]Mac上chrome打开触控板双指前进后退功能

    Orz,本以为是默认开启的,结果发现并不是,从系统里找了半天发现没找到-就搜了一下,原来可以命令开启来 defaults write com.google.Chrome AppleEnableSwip ...

  9. [原]零基础学习SDL开发之在Android使用SDL2.0显示BMP图

    关于如何移植SDL2.0到安卓上面来参考我的上一篇文章:[原]零基础学习SDL开发之移植SDL2.0到Android 在一篇文章我们主要使用SDL2.0来加载一张BMP图来渲染显示. 博主的开发环境: ...

  10. Spring Boot干货系列:(七)默认日志框架配置

    Spring Boot干货系列:(七)默认日志框架配置 原创 2017-04-05 嘟嘟MD 嘟爷java超神学堂 前言 今天来介绍下Spring Boot如何配置日志logback,我刚学习的时候, ...