Yahoo二月份在博客上发表的一篇关于Hadoop MapReduce框架改进的文章,大概翻译了一下。
原帖地址:http://developer.yahoo.com/blogs/hadoop/posts/2011/02/mapreduce-nextgen/
========================================
重构后的框架架构如下图所示:
重构MapReduce框架的基本的思想是将JobTracker的两个主要功能,资源管理和作业调度监控,分解为独立的模块。ResourceManager负责对应用(application)计算资源的分配,对于每一个应用,ApplicationMaster负责应用的调度和协作。一个应用可以是一个传统的MapReduce作业,也可以是又作业组成的DAG。ResourceManager和每个节点上运行的负责管理用户进程的NodeManager,共同组成计算框架。ApplicationMaster一个与此框架适用的类库,负责与ResourceManager协商资源,协同NodeManager执行监控任务。
ResourceManager支持多级应用队列,可以为这些队列指定一定资源配额。ResourceManager是一个纯粹的调度器,不负责应用运行状态的监控,也不负责软件或硬件造成应用失败后任务的重启。
ResourceManager的调度功能是基于应用资源请求量的,每个应用会有多种资源请求类型,不同类型的资源被封装到资源容器(container)中。资源的请求包括对内存,CPU,硬盘,网络等的请求。注意这和以前的基于资源槽slot模型有着很大的变化,资源槽模型给系统的利用率带来了很大的负面影响。
ResourceManager有一个调度策略插件,负责将集群中的资源分配到不同的资源队列中。调度策略插件可以基于现有的CapacityScheduler 和FairScheduler进行设计。
NodeManager运行在集群上的每一个节点上,负责启动应用容器,监控资源的利用情况,将利用情况报告给资源调度器。
ApplicationMaster负责和资源调度器协商资源,启动任务,跟踪任务运行状态和任务完成进度,处理任务失败。
将资源的管理和应用运行周期的跟踪分离后形成的系统具有更好的可扩展性。原来的Hadoop MapReduce框架中的JobTracker耗费了大量的资源跟踪应用生命周期,这是造成软件失误的重要原因。
ResourceManager使用了一个更通用的概念来表示计算资源。一个容器(container)是一组在逻辑上独立的进程集合,提供了很强的多租户支持。
下一代MapReduce支持MapReduce之外的编程模式,框架允许用户自定义ApplicationMaster。
分享到:
相关推荐
总结来说,NextGen MapReduce Architecture(MRv2/YARN)代表了Hadoop社区为应对大数据时代挑战所做的重大努力,解决了旧MapReduce框架面临的性能和扩展性问题,并为未来的大数据技术发展奠定了新的基础。
实验项目“MapReduce 编程”旨在让学生深入理解并熟练运用MapReduce编程模型,这是大数据处理领域中的核心技术之一。实验内容涵盖了从启动全分布模式的Hadoop集群到编写、运行和分析MapReduce应用程序的全过程。 ...
基于MapReduce实现决策树算法的知识点 基于MapReduce实现决策树算法是一种使用MapReduce框架来实现决策树算法的方法。在这个方法中,主要使用Mapper和Reducer来实现决策树算法的计算。下面是基于MapReduce实现决策...
MapReduce是一种分布式计算模型,由Google开发,用于处理和生成大量数据。这个模型主要由两个主要阶段组成:Map(映射)和Reduce(规约)。MapReduce的核心思想是将复杂的大规模数据处理任务分解成一系列可并行执行...
MapReduce是一种分布式计算模型,由Google在2004年提出,主要用于处理和生成大规模数据集。它将复杂的并行计算任务分解成两个主要阶段:Map(映射)和Reduce(化简)。在这个"MapReduce项目 数据清洗"中,我们将探讨...
【标题】Hadoop MapReduce 实现 WordCount MapReduce 是 Apache Hadoop 的核心组件之一,它为大数据处理提供了一个分布式计算框架。WordCount 是 MapReduce 框架中经典的入门示例,它统计文本文件中每个单词出现的...
MapReduce是一种分布式计算模型,由Google在2004年提出,主要用于处理和生成大规模数据集。这个模型将复杂的计算任务分解成两个主要阶段:Map(映射)和Reduce(化简),使得在大规模分布式环境下处理大数据变得可能...
### MapReduce基础知识详解 #### 一、MapReduce概述 **MapReduce** 是一种编程模型,最初由Google提出并在Hadoop中实现,用于处理大规模数据集的分布式计算问题。该模型的核心思想是将复杂的大型计算任务分解成较...
MapReduce是一种编程模型,用于大规模数据集的并行运算。它最初由Google提出,其后发展为Apache Hadoop项目中的一个核心组件。在这一框架下,开发者可以创建Map函数和Reduce函数来处理数据。MapReduce设计模式是对...
Hadoop MapReduce 编程实战 Hadoop MapReduce 是大数据处理的核心组件之一,它提供了一个编程模型和软件框架,用于大规模数据处理。下面是 Hadoop MapReduce 编程实战的知识点总结: MapReduce 编程基础 ...
基于MapReduce的Apriori算法代码 基于MapReduce的Apriori算法代码是一个使用Hadoop MapReduce框架实现的关联规则挖掘算法,称为Apriori算法。Apriori算法是一种经典的关联规则挖掘算法,用于发现事务数据库中频繁...
(2)打开网站localhost:8088和localhost:50070,查看MapReduce任务启动情况 (3)写wordcount代码并把代码生成jar包 (4)运行命令 (1):把linus下的文件放到hdfs上 (2):运行MapReduce (5):查看运行结果 ...
### MapReduce:大规模数据处理的简化利器 #### 引言:MapReduce的诞生与使命 在MapReduce问世之前,Google的工程师们,包括其发明者Jeffrey Dean和Sanjay Ghemawat,面临着一个共同的挑战:如何高效地处理海量...
【大数据Hadoop MapReduce词频统计】 大数据处理是现代信息技术领域的一个重要概念,它涉及到海量数据的存储、管理和分析。Hadoop是Apache软件基金会开发的一个开源框架,专门用于处理和存储大规模数据集。Hadoop的...
### 大数据实验四-MapReduce编程实践 #### 一、实验内容与目的 ##### 实验内容概述 本次实验的主要内容是使用MapReduce框架来实现WordCount词频统计功能,即统计HDFS(Hadoop Distributed File System)系统中多个...
MapReduce之数据清洗ETL详解 MapReduce是一种基于Hadoop的分布式计算框架,广泛应用于大数据处理领域。数据清洗(Data Cleaning)是数据处理过程中非常重要的一步,旨在清洁和转换原始数据,使其更加可靠和有用。...
MapReduce是一种分布式计算模型,由Google开发,广泛应用于大数据处理。在MapReduce中,计数器(Counter)是一个非常重要的工具,它允许开发者在MapReduce作业执行过程中收集和跟踪各种统计信息,帮助理解和优化程序...
单词计数是最简单也是最能体现 MapReduce 思想的程序之一,可以称为 MapReduce 版“Hello World”。单词计数的主要功能是统计一系列文本文件中每个单词出现的次数。本节通过单词计数实例来阐述采用 MapReduce 解决...
简单的在MapReduce中实现两个表的join连接简单的在MapReduce中实现两个表的join连接简单的在MapReduce中实现两个表的join连接