Hadoop新MapReduce框架Yarn详解

Hadoop MapReduceV2(Yarn) 框架简介

原 Hadoop MapReduce 框架的问题

对于业界的大数据存储及分布式 处理系统来说,Hadoop 是耳熟能详的卓越开源分布式文件存储及处理框架,对于 Hadoop 框架的介绍在此不再累述,读者 可参考 Hadoop 官方简介。使用和学习过老 Hadoop 框架(0.20.0 及之前版本)的同仁应该很熟悉如下的原 MapReduce 框 架图:

图 1.Hadoop 原 MapReduce 架构

从上图中可以清楚的看出原 MapReduce 程序 的流程及设计思路:

首先用户程序 (JobClient) 提交了一个 job,job 的信息会发送到 Job Tracker 中,Job Tracker 是 Map-reduce 框 架的中心,他需要与集群中的机器定时通信 (heartbeat), 需要管理哪些程序应该跑在哪些机器上,需要管理所有 job 失 败、重启等操作。

TaskTracker 是 Map-reduce 集群中每台机器都有的一个部分,他做的事情主要是监视自己所在机器的资源情况。

TaskTracker 同时监视当前机器的 tasks 运行状况。TaskTracker 需要把这些信息通过 heartbeat 发送给 JobTracker,JobTracker 会搜集这些信息以给新提交的 job 分配运行在哪些机器上。上图虚线箭头就是表示消息的发送 - 接收的过程。

可以看得出原来的 map-reduce 架构是简单明了的,在最初推出的几年,也得到了众多的成功案例,获得业界广泛的支 持和肯定,但随着分布式系统集群的规模和其工作负荷的增长,原框架的问题逐渐浮出水面,主要的问题集中如下:

JobTracker 是 Map-reduce 的集中处理点,存在单点故障。

JobTracker 完成了太多的任务,造成了过多的资源消耗,当 map-reduce job 非常多的时候,会造成很大的内存开销 ,潜在来说,也增加了 JobTracker fail 的风险,这也是业界普遍总结出老 Hadoop 的 Map-Reduce 只能支持 4000 节点 主机的上限。

在 TaskTracker 端,以 map/reduce task 的数目作为资源的表示过于简单,没有考虑到 cpu/ 内存的占用情况,如果 两个大内存消耗的 task 被调度到了一块,很容易出现 OOM。

在 TaskTracker 端,把资源强制划分为 map task slot 和 reduce task slot, 如果当系统中只有 map task 或者只有 reduce task 的时候,会造成资源的浪费,也就是前面提过的集群资源利用的问题。

源代码层面分析的时候,会发现代码非常的难读,常常因为一个 class 做了太多的事情,代码量达 3000 多行,,造成 class 的任务不清晰,增加 bug 修复和版本维护的难度。

从操作的角度来看,现在的 Hadoop MapReduce 框架在有任何重要的或者不重要的变化 ( 例如 bug 修复,性能提升和 特性化 ) 时,都会强制进行系统级别的升级更新。更糟的是,它不管用户的喜好,强制让分布式集群系统的每一个用户端 同时更新。这些更新会让用户为了验证他们之前的应用程序是不是适用新的 Hadoop 版本而浪费大量时间。

时间: 2024-10-03 15:59:50

Hadoop新MapReduce框架Yarn详解的相关文章

更快、更强——解析Hadoop新一代MapReduce框架Yarn

对于业界的http://www.aliyun.com/zixun/aggregation/13982.html">大数据存储及分布式处理系统来说,Hadoop 是耳熟能详的卓越开源分布式文件存储及处理框架,对于 Hadoop 框架的介绍在此不再累述,随着需求的发展,Yarn 框架浮出水面, @依然光荣复兴的 博客给我们做了很详细的介绍,读者通过本文中新旧 Hadoop MapReduce 框架的对比,更能深刻理解新的 yarn 框架的技术原理和设计思想. 背景 Yarn是一个分布式的资源管

介绍Hadoop新的map-reduce框架(Yarn)的原理

读者通过本文中新旧 hadoop map-reduce 框架的对比,更能深刻理解新的 yarn 框架的技术原理和http://www.aliyun.com/zixun/aggregation/8511.html">设计思想,文中的 Demo 代码经过微小修改即可用于用户基于 hadoop 新框架的实际生产环境. 原 Hadoop MapReduce 框架的问题 对于业界的大数据存储及分布式处理系统来说,Hadoop 是耳熟能详的卓越开源分布式文件存储及处理框架,对于 Hadoop 框架的介

Hadoop Yarn详解

一.Yarn简介 Yarn是Hadoop集群的资源管理系统.Hadoop2.0对MapReduce框架做了彻底的设计重构,我们称Hadoop2.0中的MapReduce为MRv2或者Yarn.在介绍Yarn之前,我们先回头看一下Hadoop1.x对MapReduce job的调度管理方式(可参考:Hadoop核心之MapReduce架构设计),它主要包括两部分功能: 1. ResourceManagement 资源管理 2. JobScheduling/JobMonitoring 任务调度监控

《Hadoop海量数据处理:技术详解与项目实战》一1.2 Hadoop和大数据

1.2 Hadoop和大数据 Hadoop海量数据处理:技术详解与项目实战 在人们对云计算这个词汇耳熟能详之后,大数据这个词汇又在最短时间内进入大众视野.云计算对于普通人来说就像云一样,一直没有机会能够真正感受到,而大数据则更加实际,是确确实实能够改变人们生活的事物.Hadoop从某个方面来说,与大数据结合得更加紧密,它就是为大数据而生的. 1.2.1 大数据的定义 "大数据"(big data),一个看似通俗直白.简单朴实的名词,却无疑成为了时下IT界最炙手可热的名词,在全球引领了新

《Hadoop海量数据处理:技术详解与项目实战》一1.1 Hadoop和云计算

1.1 Hadoop和云计算 Hadoop海量数据处理:技术详解与项目实战 Hadoop从问世之日起,就和云计算有着千丝万缕的联系.本节将在介绍Hadoop的同时,介绍Hadoop和云计算之间的关系,为后面的学习打下基础. 1.1.1 Hadoop的电梯演讲 如果你是一名创业者或者是一名项目经理,那么最好准备一份"电梯演讲".所谓电梯演讲,是对自己产品的简单介绍,通常都是1-2分钟(电梯从1层-30层的时间),以便如果你恰巧和投资人挤上同一部电梯的时候,能够说服他投资你的项目或者产品.

《Hadoop海量数据处理:技术详解与项目实战》一导读

前 言 Hadoop海量数据处理:技术详解与项目实战 为什么要写这本书 2013年被称为"大数据元年",标志着世界正式进入了大数据时代,而就在这一年,我加入了清华大学苏州汽车研究院大数据处理中心,从事Hadoop的开发.运维和数据挖掘等方面的工作.从出现之日起,Hadoop就深刻地改变了人们处理数据的方式.作为一款开源软件,Hadoop能让所有人享受到大数据红利,让所有人在大数据时代站在了同一起跑线上.Hadoop很好地诠释了什么是"大道至简,衍化至繁",Hadoo

《Hadoop海量数据处理:技术详解与项目实战》一 3.2 HDFS读取文件和写入文件

3.2 HDFS读取文件和写入文件 Hadoop海量数据处理:技术详解与项目实战我们知道在HDFS中,NameNode作为集群的大脑,保存着整个文件系统的元数据,而真正数据是存储在DataNode的块中.本节将介绍HDFS如何读取和写入文件,组成同一文件的块在HDFS的分布情况如何影响HDFS读取和写入速度. 3.2.1 块的分布HDFS会将文件切片成块并存储至各个DataNode中,文件数据块在HDFS的布局情况由NameNode和hdfs-site.xml中的配置dfs.replicatio

《Hadoop海量数据处理:技术详解与项目实战》一3.1 认识HDFS

3.1 认识HDFS Hadoop海量数据处理:技术详解与项目实战HDFS的设计理念源于非常朴素的思想:当数据集的大小超过单台计算机的存储能力时,就有必要将其进行分区(partition)并存储到若干台单独的计算机上,而管理网络中跨多台计算机存储的文件系统称为分布式文件系统(distribute filesystem).该系统架构于网络之上,势必会引入网络编程的复杂性,因此分布式文件系统比普通文件系统更为复杂,例如,使文件系统能够容忍节点故障且不丢失任何数据,就是一个极大的挑战.通过本章的介绍,

Android的搜索框架实例详解_Android

基础知识 Android的搜索框架将代您管理的搜索对话框,您不需要自己去开发一个搜索框,不需要担心要把搜索框放什么位置,也不需要担心搜索框影响您当前的界面.所有的这些工作都由SearchManager类来为您处理(以下简称"搜索管理器"),它管理的Android搜索对话框的整个生命周期,并执行您的应用程序将发送的搜索请求,返回相应的搜索关键字. 当用户执行一个搜索,搜索管理器将使用一个专门的Intent把搜索查询的关键字传给您在配置文件中配置的处理搜索结果的Activity.从本质上讲