转自: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. WebDav的java客户端开发包:Jackrabbit

    上一篇帖子“WebDav的java客户端开发包:sardine”中说到,对于开发WebDav客户端 sardine是一个很好的选择,但sardine并未实现WevDav的全部规范,所以我又试了试 ap ...

  2. Externalizable的使用方法

    package com.itbuluoge.object; import java.io.Externalizable; import java.io.FileInputStream; import ...

  3. OpenCV245之SURF源代码分析

    一.fastHessianDetector函数分析 (1)參数 const Mat& sum                积分图片 const Mat& mask_sum vecto ...

  4. ios app 实现热更新(无需发新版本号实现app加入新功能)

    眼下可以实现热更新的方法,总结起来有下面三种 1. 使用FaceBook 的开源框架 reactive native,使用js写原生的ios应用 ios app能够在执行时从server拉取最新的js ...

  5. Sunisoft.IrisSkin.SkinEngine 设置winform皮肤

    Sunisoft.IrisSkin.SkinEngine se; se = new Sunisoft.IrisSkin.SkinEngine { SkinAllForm = true, SkinFil ...

  6. @RequestBody 处理类型 和 对象 和 json 相互转换

    1 @RequestBody 处理类型 在项目中经常看到controller 中有 @RequestBody 字样,他到底有什么作用? 一般使用表单提交数据时不需要使用@RequestBody 即可自 ...

  7. 为 Blade 模板引擎添加新文件扩展名

    因为一些原因,我准备把 Blessing Skin 的框架换成 Laravel 了(之前是自己搭建的一个框架),但是在模板迁移的时候遇到了一点问题. 之前我是使用的 XiaoLer/blade 这个从 ...

  8. ubuntu 12.04下如何编译hadoop2.4

    问题导读: 1.如果获取hadoop src  maven包?2.编译hadoop需要装哪些软件?3.如何编译hadoop2.4?扩展:编译hadoop为何安装这些软件? 一.首先下载hadoop源码 ...

  9. 【转】如何遍历json数据

    var value = { "china":{ "hangzhou":{"item":"1"}, "shang ...

  10. jQuery.extend()中的布尔值的作用

    jQuery.extend()中,第一个参数可以添加一个布尔值,表示是否深层拷贝,默认是false.但如果设置为true,则表示深层拷贝. 下面来看看什么是深层拷贝: <script type= ...