`
zhangxiong0301
  • 浏览: 360751 次
社区版块
存档分类
最新评论

hadoop1.0和hadoop2.0的区别

阅读更多

1. Hadoop 1.0中的资源管理方案

Hadoop 1.0指的是版本为Apache Hadoop 0.20.x、1.x或者CDH3系列的Hadoop,内核主要由HDFS和MapReduce两个系统组成,其中,MapReduce是一个离线处理框架,由编程模型(新旧API)、运行时环境(JobTracker和TaskTracker)和数据处理引擎(MapTask和ReduceTask)三部分组成。
Hadoop 1.0资源管理由两部分组成:资源表示模型和资源分配模型,其中,资源表示模型用于描述资源的组织方式,Hadoop 1.0采用“槽位”(slot)组织各节点上的资源,而资源分配模型则决定如何将资源分配给各个作业/任务,在Hadoop中,这一部分由一个插拔式的调度器完成。
Hadoop引入了“slot”概念表示各个节点上的计算资源。为了简化资源管理,Hadoop将各个节点上的资源(CPU、内存和磁盘等)等量切分成若干份,每一份用一个slot表示,同时规定一个task可根据实际需要占用多个slot 。通过引入“slot“这一概念,Hadoop将多维度资源抽象简化成一种资源(即slot),从而大大简化了资源管理问题。
更进一步说,slot相当于任务运行“许可证”,一个任务只有得到该“许可证”后,才能够获得运行的机会,这也意味着,每个节点上的slot数目决定了该节点上的最大允许的任务并发度。为了区分Map Task和Reduce Task所用资源量的差异,slot又被分为Map slot和Reduce slot两种,它们分别只能被Map Task和Reduce Task使用。Hadoop集群管理员可根据各个节点硬件配置和应用特点为它们分配不同的map slot数(由参数mapred.tasktracker.map.tasks.maximum指定)和reduce slot数(由参数mapred.tasktrackerreduce.tasks.maximum指定)。
Hadoop 1.0中的资源管理存在以下几个缺点:
(1)静态资源配置。采用了静态资源设置策略,即每个节点实现配置好可用的slot总数,这些slot数目一旦启动后无法再动态修改。
(2)资源无法共享。Hadoop 1.0将slot分为Map slot和Reduce slot两种,且不允许共享。对于一个作业,刚开始运行时,Map slot资源紧缺而Reduce slot空闲,当Map Task全部运行完成后,Reduce slot紧缺而Map slot空闲。很明显,这种区分slot类别的资源管理方案在一定程度上降低了slot的利用率。
(3) 资源划分粒度过大。这种基于无类别slot的资源划分方法的划分粒度仍过于粗糙,往往会造成节点资源利用率过高或者过低 ,比如,管理员事先规划好一个slot代表2GB内存和1个CPU,如果一个应用程序的任务只需要1GB内存,则会产生“资源碎片”,从而降低集群资源的利用率,同样,如果一个应用程序的任务需要3GB内存,则会隐式地抢占其他任务的资源,从而产生资源抢占现象,可能导致集群利用率过高。
(4) 没引入有效的资源隔离机制。Hadoop 1.0仅采用了基于jvm的资源隔离机制,这种方式仍过于粗糙,很多资源,比如CPU,无法进行隔离,这会造成同一个节点上的任务之间干扰严重。
该部分具体展开讲解可阅读我的新书《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》 中“第6章 JobTracker内部实现剖析” 中的“6.7	Hadoop资源管理”。

2. Hadoop 2.0中的资源管理方案

Hadoop 2.0指的是版本为Apache Hadoop 0.23.x、2.x或者CDH4系列的Hadoop,内核主要由HDFS、MapReduce和YARN三个系统组成,其中,YARN是一个资源管理系统,负责集群资源管理和调度,MapReduce则是运行在YARN上离线处理框架,它与Hadoop 1.0中的MapReduce在编程模型(新旧API)和数据处理引擎(MapTask和ReduceTask)两个方面是相同的。
让我们回归到资源分配的本质,即根据任务资源需求为其分配系统中的各类资源。在实际系统中,资源本身是多维度的,包括CPU、内存、网络I/O和磁盘I/O等,因此,如果想精确控制资源分配,不能再有slot的概念,最直接的方法是让任务直接向调度器申请自己需要的资源(比如某个任务可申请1.5GB 内存和1个CPU),而调度器则按照任务实际需求为其精细地分配对应的资源量,不再简单的将一个Slot分配给它,Hadoop 2.0正式采用了这种基于真实资源量的资源分配方案。
Hadoop 2.0(YARN)允许每个节点(NodeManager)配置可用的CPU和内存资源总量,而中央调度器则会根据这些资源总量分配给应用程序。节点(NodeManager)配置参数如下:
(1)yarn.nodemanager.resource.memory-mb
可分配的物理内存总量,默认是8*1024,即8GB。
(2)yarn.nodemanager.vmem-pmem-ratio
任务使用单位物理内存量对应最多可使用的虚拟内存量,默认值是2.1,表示每使用1MB的物理内存,最多可以使用2.1MB的虚拟内存总量。
(3)yarn.nodemanager.resource.cpu-vcore
可分配的虚拟CPU个数,默认是8。为了更细粒度的划分CPU资源和考虑到CPU性能异构性,YARN允许管理员根据实际需要和CPU性能将每个物理CPU划分成若干个虚拟CPU,而每管理员可为每个节点单独配置可用的虚拟CPU个数,且用户提交应用程序时,也可指定每个任务需要的虚拟CPU个数。比如node1节点上有8个CPU,node2上有16个CPU,且node1 CPU性能是node2的2倍,那么可为这两个节点配置相同数目的虚拟CPU个数,比如均为32,由于用户设置虚拟CPU个数必须是整数,每个任务至少使用node2 的半个CPU(不能更少了)。
此外,Hadoop 2.0还引入了基于cgroups的轻量级资源隔离方案,这大大降低了同节点上任务间的相互干扰,而Hadoop 1.0仅采用了基于JVM的资源隔离,粒度非常粗糙。
分享到:
评论

相关推荐

    Hadoop1.0&2.0快速入门

    自2006年成为Apache顶级项目以来,Hadoop已经经历了多个版本的迭代,其中Hadoop 1.0和2.0是两个主要的版本,它们对大数据技术的发展产生了深远的影响。 Hadoop 1.0是该框架的最初版本,它主要由两个核心组件构成:...

    hadoop1.0\2.0学习笔记及

    本学习笔记涵盖了Hadoop 1.0和2.0两个主要版本,旨在帮助读者全面理解Hadoop的核心概念、架构以及实际操作。 在Hadoop 1.0中,核心组件主要包括HDFS(Hadoop Distributed File System)和MapReduce。HDFS是一种...

    详解hadoop

    详解hadoop Hadoop1.0架构 Hadoop1.0编程 Hadoop1.0弊端 Hadoop2.0架构 Hadoop2.0编程 Hadoop2.0部署

    《Hadoop大数据开发实战》教学教案—06Hadoop2.0新特性.pdf

    在大数据处理领域,Hadoop是一个不可或缺的开源框架,其发展历经多个版本,其中Hadoop2.0是重要的里程碑,它针对Hadoop1.0的一些关键问题进行了显著的改进。本章节我们将深入探讨Hadoop2.0的新特性,包括YARN资源...

    大数据处理--hadoop2.0核心架构技术

    大数据处理--hadoop2.0核心架构技术,主要介绍了大数据面临的挑战,而hadoop正是解决这些挑战的重要技术,接着分别介绍了hadoop1.0和hadoop2.0的区别,进而重点讲到hadoop2.0 YARN,详细分析MapReduce及HDFS架构。

    hadoop详解

    无论是Hadoop1.0还是Hadoop2.0,都在不断进步和完善之中,为用户提供更加高效、可靠的大数据处理方案。随着未来数据量的持续增长,Hadoop将继续发挥其重要作用,引领大数据处理领域的发展方向。

    大数据系列-Hadoop 2.0

    本文将深入探讨Hadoop 2.0的主要组件、架构、以及其相较于Hadoop 1.0的改进。 一、Hadoop 2.0概述 Hadoop 2.0是Apache软件基金会开发的开源大数据处理框架,基于Java实现,旨在提供高可靠性、高扩展性和高效的数据...

    细解Hadoop

    【细解Hadoop】 Hadoop是一个开源的分布式计算框架,主要解决...从Hadoop 1.0到Hadoop 2.0的演进,反映了大数据处理领域对高可用性、可扩展性和灵活性的需求。随着技术的发展,Hadoop将继续在大数据时代扮演重要角色。

    hadoop口述知识点,新手必备

    *****1.如何实现wordcount ***2.hadoop1.0和hadoop2.0的区别 ***3.搭建hadoop伪分布式/完全分布式集群的步骤

    云计算第三版精品课程配套PPT课件含习题(30页)第5章 Hadoop 2.0 主流开源云架构(四).rar

    Hadoop 2.0是在Hadoop 1.0的基础上进行的一次重大升级,主要引入了两个核心组件:YARN(Yet Another Resource Negotiator)和HDFS Federation。YARN的引入解决了Hadoop 1.0中JobTracker资源管理与作业调度的瓶颈问题...

    hadoop2.X新特性介绍

    综上所述,Hadoop2.0在HDFS、MapReduce和YARN等方面都进行了重大的改进和优化,不仅解决了Hadoop1.0中的许多局限性,还极大地提升了系统的可扩展性、可靠性和资源利用率,为大数据处理领域带来了新的突破。

    11大数据处理平台Hadoop & Spark及其生态系统1

    Hadoop 1.0的核心组件包括HDFS(Hadoop Distributed File System)和MapReduce。HDFS是Google GFS的开源实现,它将大数据分块存储在集群的不同节点上,以提供高可用性和容错性。NameNode作为主节点管理文件系统的元...

    Hadoop2.0分布式HA环境部署

    Hadoop2.0相比Hadoop1.0,在集群稳定性与可用性方面进行了显著增强,特别是引入了High Availability (HA)机制。Hadoop1.0中仅存在单一的NameNode作为元数据管理器,这构成了单点故障的风险。一旦该节点宕机,整个...

    云计算第三版精品课程配套PPT课件含习题(29页)第6章 Hadoop 2.0 大家族(三).pptx

    Hadoop 2.0 是一个开源的分布式计算框架,是Hadoop生态系统的核心组成部分,它在Hadoop 1.0的基础上进行了重大改进,引入了YARN(Yet Another Resource Negotiator),使得系统更加灵活和可扩展。Hadoop 2.0家族包括...

    云计算第三版精品课程配套PPT课件含习题(26页)第5章 Hadoop 2.0 主流开源云架构(二).pptx

    Hadoop 2.0通常指代的是2.X及其以后的版本,而1.X及0.23.X被称为Hadoop 1.0。 Hadoop 2.0的核心包括两个主要模块:分布式存储系统HDFS(Hadoop Distributed File System)和分布式操作系统YARN(Yet Another ...

    第2章-大数据处理架构Hadoop.pdf

    Hadoop的版本演变分为两个主要的阶段:Hadoop 1.0和Hadoop 2.0。其中,1.0系列包括了三个主要版本0.20.x、0.21.x和0.22.x,其中0.20.x演变为稳定版1.0.x。2.0系列引入了YARN(Yet Another Resource Negotiator),这...

    Hadoop学习资料

    CDH至今共发布了四个版本,其中前两个版本已停止更新,最新两个版本CDH3和CDH4分别基于Apache Hadoop 0.20.2和2.0.0版本,对应Apache的Hadoop 1.0和2.0版本。 Hadoop生态圈由多个与Hadoop核心功能相关的项目组成,...

    云计算第三版精品课程配套PPT课件含习题(33页)第6章 Hadoop 2.0 大家族(四).rar

    Hadoop 2.0是对Hadoop 1.0的重大升级,其中最重要的一项改进是引入了YARN(Yet Another Resource Negotiator),它作为资源管理系统,负责集群中的任务调度和资源分配。YARN将原本Hadoop 1.0中的JobTracker功能拆分...

    Hadoop2.0YARN

    Hadoop 2.0 YARN,全称Yet Another Resource Negotiator,是Apache Hadoop生态系统中的一个核心组件,它在Hadoop 1.0 MapReduce的基础上进行了重大改进,旨在解决资源管理和调度的问题,以提高分布式计算的效率和...

    hadoop培训视频training stuff

    首先,关于Hadoop技术的介绍,文件中提到了Hadoop的多个版本的架构,Hadoop 1.0和Hadoop 2.0架构是重要的知识点。Hadoop 2.0引入了YARN(Yet Another Resource Negotiator),这是Hadoop 2.0架构中的关键改进之一,...

Global site tag (gtag.js) - Google Analytics