Apache Hadoop 下一代的MapReduce(YARN)

原文链接

MapReduce已经在hadoop-0.23中经历了彻底的检修,现在,我们有了称之为MapReduce2.0(MRv2) 或者 YARN的新的框架。

MRv2基本的理念是将JobTracker中两个主要的功能(资源管理和作业调度/监控),拆分为单独的守护进程。想法就是有一个全局的ResourceMaager(RM)和对应每个应用的ApplicationMaster(AM)。一个Application是传统意义上的一个Map-Reduce 或者DAG 的作业。

ResourceManager和每台节点上从属的NodeManager(NM),构成了数据计算的框架。RM是最终权威仲裁系统资源在所有应用中(的分配)。

事实上,每个应用的ApplicationMaster 是一个用来向RM协商资源,与NodeManager(s)一起工作,执行和监控任务的特定框架库。

ResourceManager有两个重要的组件:Scheduler和ApplicationsManager。

Scheduler负责为各式各样运行中的应用分配受限制的资源,比如相似的约束,容量,队列等等。Scheduler就只是一个scheduler,不监控和跟踪应用的状态。还有,他不会保证重启那些由于应用失败或是硬件失败的任务。Scheduler基于applications的资源需求来执行他的调度功能;基于将memory、cpu、network、disk等元素合并进来的抽象概念--资源容器Container。在第一个版本中,只支持memory。

Scheduler有一个可插入策略的插件,负责在不同队列,应用间对集群的资源进行分区。当前Map-Reduce schedulers,比如CapacityScheduler,FairScheduler就是这个插件的一些例子。

CapacityScheduler顾及共享的集群资源更容易预测,支持分层级的队列。

ApplicationsManager负责接收任务的提交,协商第一个用来执行特定ApplicationMaster的容器,提供在(任务?)失败时重启ApplicationMaster容器的服务。

NodeManager是每台机器的代理框架,负责containers,监控他们(机器)的资源使用情况(cpu,memory,disk,network),同时报告给ResourceManager/Scheduler。

每个应用的ApplicationMaster负责与Scheduler协商合适的资源容器,并跟踪他们的状态,监控进展。

MRV2 兼容之前的稳定版本(hadoop-1.x),这意味着所愿的Map-Reduce jobs 只需要重统计一下就可以奔跑在MRV2之上了。

 

 

理解:YARN框架是建立在之前的Map-Reduce之上,将之前JobTracker的两个主要功能进行了拆分,分家,资源一家(RM老大),监控一家(NM,ApplicationMaster),各自分工明确。

RM又把他的活分派给了两个小头目(Scheduler,ApplicationsManager),job的接收就交给ApplicationsManager来做,job的调度就交给Scheduler,ApplicationsManager还要负责失败时重启ApplicationMaster,兼任多职啊。

监控的活也细分了,节点的情况(内存,CPU,硬盘,网络等)就由NM来负责监控并上报给领导(RM),再细点说,应该是上报给Scheduler小头目,这样他在调度的时候就会根据你这台节点的状态来分配任务。而每个应用的状态和进展,就交由各自的ApplicationMaster来监控了,如果ApplicationMaster挂了(任务?),没事,ApplicationsManager来帮你重启。

时间: 2024-08-25 05:58:02

Apache Hadoop 下一代的MapReduce(YARN)的相关文章

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

HDFS高可用性Hadoop HDFS 的两大问题:NameNode单点:虽然有StandbyNameNode,但是冷备方案,达不到高可用--阶段性的合并edits和fsimage,以缩短集群启动的时间--当NameNode失效的时候,Secondary NN并无法立刻提供服务,Secondary NN甚至无法保证数据完整性--如果NN数据丢失的话,在上一次合并后的文件系统的改动会丢失NameNode扩展性问题:单NameNode元数据不可扩展,是整个HDFS集群的瓶颈 Hadoop HDFS高

YARN Apache Hadoop 的下一代MapReduce

之前自己做的hadoop项目是基于0.20.2版本的,查了一下资料,知道了自己以前学的是原map/reduce模型. 官方说明: 1.1.X - current stable version, 1.1 release 1.2.X - current beta version, 1.2 release 2.X.X - current alpha version 0.23.X - simmilar to 2.X.X but missing NN HA. 0.22.X - does not inclu

Apache Hadoop YARN: Moving beyond MapReduce and Batch Processing with Apache Hadoop 2

Apache Hadoop YARN: Moving beyond MapReduce and Batch Processing with Apache Hadoop 2 .mobi: http://www.t00y.com/file/79497801 Apache Hadoop YARN: Moving beyond MapReduce and Batch Processing with Apache Hadoop 2.pdf: http://www.t00y.com/file/8034244

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/yarn/util/Apps Hadoop2.6.0编程问题与解决

从hadoop 1.2.1升级到 Hadoop2.6.0,调试写代码,还是遇到一些问题的.这里记录一下,后续如果自己再遇到类似问题,那也好找原因了. 在eclipse里编译运行 WordCount,出现以下错误. Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/yarn/util/Apps at java.lang.ClassLoader.defineClass1(Native M

Apache Hadoop YARN: 背景及概述

从2012年8月开始Apache Hadoop YARN(YARN = Yet Another Resource Negotiator)成了Apache Hadoop的一项子工程.自此Apache Hadoop由下面四个子工程组成: Hadoop Comon:核心库,为其他部分服务 Hadoop HDFS:分布式存储系统 Hadoop MapReduce:MapReduce模型的开源实现 Hadoop YARN:新一代Hadoop数据处理框架 概括来说,Hadoop YARN的目的是使得Hado

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: Application application_1398704073313_0021 failed 2 times due to Error launching appattempt_1398704073313_0021_000002. Got exception:     org.apache

# Apache Hadoop Yarn: Yet Another Resource Negotiator论文解读

纯属云平台管理学习菜鸟的笔记,参照许多大牛的博客,如有侵权,请联系,立刻删除. Abstract 1) tight coupling of a specific programming model with the re- source management infrastructure, forcing developers to abuse the MapReduce programming model, and 2) centralized handling of jobs' contro

hadoop MapReduce Yarn运行机制

原 Hadoop MapReduce 框架的问题 原hadoop的MapReduce框架图 从上图中可以清楚的看出原 MapReduce 程序的流程及设计思路: 首先用户程序 (JobClient) 提交了一个 job,job 的信息会发送到 Job Tracker 中,Job Tracker 是 Map-reduce 框架的中心,他需要与集群中的机器定时通信 (heartbeat), 需要管理哪些程序应该跑在哪些机器上,需要管理所有 job 失败.重启等操作. TaskTracker 是 Ma

Apache Hadoop YARN

1. Yarn通俗介绍Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统和调度平台,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率.资源统一管理和数据共享等方面带来了巨大好处.可以把yarn理解为相当于一个分布式的操作系统平台,而mapreduce等运算程序则相当于运行于操作系统之上的应用程序,Yarn为这些程序提供运算所需的资源(内存.cpu).l