hadoop教程(六) 2.x的mapreduce过程图解

从业界使用分布式系统的变化趋势和 hadoop 框架的长远发展来看,MapReduce 的 JobTracker/TaskTracker 机制需要大规模的调整来修复它在可扩展性,内存消耗,线程模型,可靠性和性能上的缺陷。在过去的几年中,hadoop 开发团队做了一些 bug 的修复,但是最近这些修复的成本越来越高,这表明对原框架做出改变的难度越来越大。

为从根本上解决旧 MapReduce 框架的性能瓶颈,促进 Hadoop 框架的更长远发展,从 0.23.0 版本开始,Hadoop 的 MapReduce 框架完全重构,发生了根本的变化。新的 Hadoop MapReduce 框架命名为 MapReduceV2 或者叫 Yarn,其架构图如下图所示:

重构根本的思想是将 JobTracker 两个主要的功能分离成单独的组件,这两个功能是资源管理和任务调度 / 监控。新的资源管理器全局管理所有应用程序计算资源的分配,每一个应用的 ApplicationMaster 负责相应的调度和协调。一个应用程序无非是一个单独的传统的 MapReduce 任务或者是一个 DAG( 有向无环图 ) 任务。ResourceManager 和每一台机器的节点管理服务器能够管理用户在那台机器上的进程并能对计算进行组织。

事实上,每一个应用的 ApplicationMaster 是一个详细的框架库,它结合从 ResourceManager 获得的资源和 NodeManager 协同工作来运行和监控任务。

上图中 ResourceManager 支持分层级的应用队列,这些队列享有集群一定比例的资源。从某种意义上讲它就是一个纯粹的调度器,它在执行过程中不对应用进行监控和状态跟踪。同样,它也不能重启因应用失败或者硬件错误而运行失败的任务。

ResourceManager 是基于应用程序对资源的需求进行调度的 ; 每一个应用程序需要不同类型的资源因此就需要不同的容器。资源包括:内存,CPU,磁盘,网络等等。可以看出,这同现 Mapreduce 固定类型的资源使用模型有显著区别,它给集群的使用带来负面的影响。资源管理器提供一个调度策略的插件,它负责将集群资源分配给多个队列和应用程序。调度插件可以基于现有的能力调度和公平调度模型。

上图中 NodeManager 是每一台机器框架的代理,是执行应用程序的容器,监控应用程序的资源使用情况 (CPU,内存,硬盘,网络 ) 并且向调度器汇报。

每一个应用的 ApplicationMaster 的职责有:向调度器索要适当的资源容器,运行任务,跟踪应用程序的状态和监控它们的进程,处理任务的失败原因。

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/webkf/tools/

时间: 2024-08-30 11:32:18

hadoop教程(六) 2.x的mapreduce过程图解的相关文章

hadoop教程(五) 1.x的mapreduce过程图解

官方shuffle的架构图 从全局宏观上,解释了数据的走向和原理 细化架构图 从jobtracker和tasker解释了map/reduce的细节 从上图中可以清楚的看出原 MapReduce 程序的流程及设计思路: 1 首先用户程序 (JobClient) 提交了一个 job,job 的信息会发送到 Job Tracker 中,Job Tracker 是 Map-reduce 框架的中心,他需要与集群中的机器定时通信 (heartbeat), 需要管理哪些程序应该跑在哪些机器上,需要管理所有

Nutch Hadoop 教程

怎样安装Nutch和 Hadoop 搜寻网页和邮件列表,似乎很少有关于如何使用Hadoop (曾经的DNFS)分布式文件系统( HDFS )和MapReduce来安装Nutch的文章 . 本教程的目的是通过逐步讲解的方法,来讲解了如何在多节点的Hadoop文件系统上运行Nutch,包括能够同时索引(爬取)和搜寻多台机器. 这篇文档没有涉及到Nutch或Hadoop架构.它只是讲述了如何让系统启动和运行. 然而,在教程的最后,如果您想更多地了解Nutch和Hadoop的体系结构,我将指给您相关的资

大数据处理——Hadoop解析(二):MapReduce

大http://www.aliyun.com/zixun/aggregation/14345.html">数据处理模型MapReduce (接<大数据处理--Hadoop解析(一)>) 大数据时代生产的数据最终是需要进行计算的,存储的目的也就是为了做大数据分析.通过计算.分析.挖掘数据背后的东西,才是大数据的意义所在.Hadoop不仅提供了数据存储的分布式文件系统,更重要的是提供了分布式编程模型和分布式计算系统,通过该编程模型和分布式计算架构可以解决大数据时代所面临的数据处理问

微信公众帐号开发教程(六) 文本消息的内容长度限制揭秘

相信不少朋友都遇到过这样的问题:当发送的文本消息内容过长时,微信将不做任何响应.那么到底微信 允许的文本消息的最大长度是多少呢?我们又该如何计算文本的长度呢?为什么还有些人反应微信好像支持的 文本消息最大长度在1300多呢?这篇文章会彻底解除大家的疑问. 接口文档中对消息长度限制为 2048 开发教程(六) 文本消息的内容长度限制揭秘-揭秘时政的微信公众号"> 可以看到,接口文档中写的很明确:回复的消息内容长度不超过2048字节.那为什么很多人测试反应消息 内容长度在1300多字节时,微信

Android简明开发教程六:用户界面设计

Activity是Android应用用户界面的基本组成部件.但Activity本身并不提供用户界面(User Interface).从程序结构层次上 来说,一个Android应用是类android.app.Application的一个实例, Application中可以包含多个android.app.Activity实例. 每个Activity 带一个Window类,这个类在Android平台上没有提供太多功能,主要可以用来控制标题栏(屏幕顶端).比如设置 UI全屏显示可以使用如下代码: req

MVC5+EF6 入门完整教程六

原文:MVC5+EF6 入门完整教程六 本篇我们谈谈分部视图(Partial View). 上篇文章提到过Partial和Action这两个helper, 本篇文章主要就结合这两个helper来讲解分部视图(Partial View)的应用. 文章提纲 理论基础 详细步骤 总结 理论基础 – 分部视图 Partial View指可以应用于View中以作为其中一部分的View的片段(类似于之前的user control), 可以像类一样,编写一次, 然后在其他View中被反复使用. 一般放在"Vi

黄聪:Microsoft Enterprise Library 5.0 系列教程(六) Security Application Block

原文:黄聪:Microsoft Enterprise Library 5.0 系列教程(六) Security Application Block   开发人员经常编写需要安全功能的应用程序.这些应用程序通常需要执行一系列不同的安全操作,而且它们还经常与不同的基础安全提供程序(如 Microsoft Active Directory 目录服务.授权管理器.Active Directory 应用程序模式 (ADAM) 和自定义数据库等)进行交互.     安全应用程序块通过收集开发人员必须执行的许

MyBatis学习教程(六)-调用存储过程_java

一.提出需求 查询得到男性或女性的数量, 如果传入的是0就女性否则是男性 二.准备数据库表和存储过程 create table p_user( id int primary key auto_increment, name varchar(), sex char() ); insert into p_user(name,sex) values('A',"男"); insert into p_user(name,sex) values('B',"女"); insert

求 大神 导入 hadoop 教程

问题描述 求 大神 导入 hadoop 教程 本人想将hadoop源码导入到 eclipse 或者其他的工具中, 求大神指教怎么将 hadoop源码导入 求 求,,,,,,,,,啊,啊,,啊,,啊,,啊,啊,啊, 所有币在这跪谢了 解决方案 Protocol Buffer compiler The version of Protocol Buffer compiler, protoc, must match the version of the protobuf JAR. If you have