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框架面临的性能和扩展性问题,并为未来的大数据技术发展奠定了新的基础。
### NextGen Infrastructure for Big Data: Key Insights and Technologies #### 概述 随着互联网的发展,数据量呈现出爆炸式的增长,形成了所谓的“大数据”。这些数据集规模庞大,传统的关系型数据库管理系统...
(又名NextGen MapReduce)对于构建容错的分布式应用程序非常有用。 但是编写,甚至可能成为。 好消息是,简化了与YARN交互的框架应运而生,并加入了Apache基金会: 。 虽然仍处于孵化阶段,但该项目看起来确实很...
python学习资源
jfinal-undertow 用于开发、部署由 jfinal 开发的 web 项目
基于Andorid的音乐播放器项目设计(国外开源)实现源码,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。
python学习资源
python学习资源
python学习一些项目和资源
【毕业设计】java-springboot+vue家具销售平台实现源码(完整前后端+mysql+说明文档+LunW).zip
HTML+CSS+JavaScarip开发的前端网页源代码
python学习资源
【毕业设计】java-springboot-vue健身房信息管理系统源码(完整前后端+mysql+说明文档+LunW).zip
成绩管理系统C/Go。大学生期末小作业,指针实现,C语言版本(ANSI C)和Go语言版本
1_基于大数据的智能菜品个性化推荐与点餐系统的设计与实现.docx
【毕业设计】java-springboot-vue交流互动平台实现源码(完整前后端+mysql+说明文档+LunW).zip
内容概要:本文主要探讨了在高并发情况下如何设计并优化火车票秒杀系统,确保系统的高性能与稳定性。通过对比分析三种库存管理模式(下单减库存、支付减库存、预扣库存),强调了预扣库存结合本地缓存及远程Redis统一库存的优势,同时介绍了如何利用Nginx的加权轮询策略、MQ消息队列异步处理等方式降低系统压力,保障交易完整性和数据一致性,防止超卖现象。 适用人群:具有一定互联网应用开发经验的研发人员和技术管理人员。 使用场景及目标:适用于电商、票务等行业需要处理大量瞬时并发请求的业务场景。其目标在于通过合理的架构规划,实现在高峰期保持平台的稳定运行,保证用户体验的同时最大化销售额。 其他说明:文中提及的技术细节如Epoll I/O多路复用模型以及分布式系统中的容错措施等内容,对于深入理解大规模并发系统的构建有着重要指导意义。
基于 OpenCV 和 PyTorch 的深度车牌识别
【毕业设计-java】springboot-vue教学资料管理系统实现源码(完整前后端+mysql+说明文档+LunW).zip
此数据集包含有关出租车行程的详细信息,包括乘客人数、行程距离、付款类型、车费金额和行程时长。它可用于各种数据分析和机器学习应用程序,例如票价预测和乘车模式分析。