解析Hadoop 2.3.0版本的新特性

2014年2月20日,Hadoop 2.3.0版本发布,这是apache 在2014年发布的第一个Hadoop版本,揭开了Hadoop 2014发展的序幕。

该版本引入了很多大家期待已久的特性,包括HDFS 的异构层次化存储架构、DataNode Cache,YARN的单点故障解决方案,以及MapReduce的自动化部署等。本文尝试为大家解析这些特性,并给出一些资料供大家深入了解。

HDFS新特性。 2.3.0中引入了两个大的HDFS特性,分别是异构层次化存储架构和DataNode Cache。首先是异构层次化存储架构,在之前的版本,HDFS默认DataNode上所有的存储介质是磁盘,即用户所有数据存储在磁盘上,不管是热数据还是冷数据。但随着近几年存储介质的高速发展,SSD、Flash等新型介质日益成熟,HDFS开始尝试支持异构介质,即同一个Hadoop集群中可以同时存在多种存储介质,用户可根据需要将不同类型的数据存放到不同介质中,比如热点数据存到SSD中,海量的网页数据放到磁盘中。异构层次化存储架构的引入,使得HDFS应用范围更广。第二个特性是DataNode Cache。在旧版本中,HDFS DataNode并未考虑数据缓存,毕竟HDFS定位是一个分布式磁盘存储系统,但随着HDFS之上计算框架多样化的出现,比如流式计算框架Storm,内存计算框架Spark、DAG计算框架Tez等,Hadoop不再仅仅把自己局限在离线处理和分析上,而是能够同时支持离线分析和在线处理,为此,为了能够更好地支持在线处理,降低在线应用的延迟,提高性能,DataNode Cache出现了(值得一提的是,Spark生态系统中的Tachyon存储系统,便是一个构建在HDFS之上的内存系统)。这两个功能都是Hadoop全功能型系统发展的必然产物,HDFS从此不再局限于存储一些离线的批处理数据,也开始尝试支持存储在线数据。这两个功能的设计文档可参考:

https://issues.apache.org/jira/browse/HDFS-2832

https://issues.apache.org/jira/browse/HDFS-4949

需要注意的是,目前这两个特性正处于初期发展阶段,尽管愿景很美好,但目前仅仅实现了最基本的功能,很多功能尚未实现,比如异构层次化存储架构中,想让一个block的三个副本,一个存储在SSD上,另外两个存储在磁盘上。

YARN新特性。YARN目前存在最大的问题是ResourceManager单点故障,该问题是目前最急需解决的遗留问题之一,若不解决,YARN作为资源管理系统就无法承载更多类型的应用。在2.3.0版本中,该问题基本得到了解决,解决方案类似于NameNode HA,是通过Zookeeper实现的。但还不推荐大家使用该版本中的HA方案,而是建议在下一个版本2.4.0中使用。除了HA外,还有两个非常重要的功能将在下一个版本中发布,分别是Generic Application Timeline和Generic Application Timeline Log。第一个特性是Generic Application Timeline,该特性提供了一个共享存储模块,供YARN之上的应用程序存储一些自己的数据,比如运行事件、运行日志等;第二个特性则解决了YARN之上应用程序历史日志管理问题,目前仅有MapReduce可以查看和管理history log,其他应用程序,比如Spark等,不能查看,需要由各个框架/应用程序自行解决该问题,为了防止重复造轮子,YARN干脆提供了一个通用的历史日志管理模块。这两个功能的设计文档可参考:

https://issues.apache.org/jira/browse/YARN-1530

https://issues.apache.org/jira/browse/YARN-321

MapReduce新特性。在Hadoop 2.0中,MapReduce jar包是同YARN和HDFS jar包打包在一起的,部署Hadoop时会一同被分发到各个节点上的,这实际上违背了YARN的设计初衷。YARN是一个资源管理系统,其上面所有应用程序不需要事先部署到各个节点上,只需在客户端存在一份jar包,然后由YARN自动分发到各个节点上即可,为此,Hadoop 2.3.0对此进行了修正。值得一提的是,Spark和Storm等程序不存在这个问题,这使得同一集群中可以运行不同版本的Spark和Storm实例。具体可参考:

https://issues.apache.org/jira/browse/MAPREDUCE-4421

原创文章,转载请注明: 转载自董的博客

本文链接地址: http://dongxicheng.org/mapreduce-nextgen/hadoop-2-3-0-new-features/

作者:Dong,作者介绍:http://dongxicheng.org/about/

本博客的文章集合:http://dongxicheng.org/recommend/

解析Hadoop 2.3.0版本的新特性

时间: 2024-08-27 20:24:50

解析Hadoop 2.3.0版本的新特性的相关文章

JDK各个版本的新特性jdk1.5-jdk8

JDK各个版本的新特性 对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言.今天先为大家介绍一下JDK1.5版本到JDK1.7版本的特性.希望能给予帮助. JDK1.5新特性: 1.自动装箱与拆箱: 自动装箱的过程:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中. 自动拆箱的过程:每当需要一个值时,被装箱对象中的值就被自动地提取出来,没必要再去调用intValue(

JDK各个版本的新特性jdk1.5-jdk8(转)

原文:JDK各个版本的新特性jdk1.5-jdk8 JDK各个版本的新特性 对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言.今天先为大家介绍一下JDK1.5版本到JDK1.7版本的特性.希望能给予帮助. JDK1.5新特性: 1.自动装箱与拆箱: 自动装箱的过程:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中. 自动拆箱的过程:每当需要一个值时,被装箱对象中的值

JDK各个版本的新特性

JDK各个版本的新特性 对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言.今天先为大家介绍一下JDK1.5版本到JDK1.7版本的特性.希望能给予帮助. JDK1.5新特性: 1.自动装箱与拆箱: 自动装箱的过程:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中. 自动拆箱的过程:每当需要一个值时,被装箱对象中的值就被自动地提取出来,没必要再去调用intValue(

JDK各个版本的新特性jdk1.5-jdk8[转]

JDK各个版本的新特性 对于很多刚接触java语言的初学者来说,要了解一门语言,最好的方式就是要能从基础的版本进行了解,升级的过程,以及升级的新特性,这样才能循序渐进的学好一门语言.今天先为大家介绍一下JDK1.5版本到JDK1.7版本的特性.希望能给予帮助. JDK1.5新特性: 1.自动装箱与拆箱: 自动装箱的过程:每当需要一种类型的对象时,这种基本类型就自动地封装到与它相同类型的包装中. 自动拆箱的过程:每当需要一个值时,被装箱对象中的值就被自动地提取出来,没必要再去调用intValue(

JDK几个高版本的新特性

JDK 高版本的新特性 1.JDK5的新特性: 自动拆装箱 见Integer部分笔记 泛型 增强for循环 静态导入 可变参数 见集合部分笔记 枚举 是指将变量的值一一列出来,变量的值只限于列举出来的值的范围内.举例:一周只有7天,一年只有12个月等. 回想单例设计模式:单例类是一个类只有一个实例 那么多例类就是一个类有多个实例,但不是无限个数的实例,而是有限个数的实例.这才能是枚举类. 我们自己定义枚举类比较麻烦,所以,java就提供了枚举类供我们使用. 格式是:只有枚举项的枚举类 publi

MySQL 8.0.2复制新特性(翻译)

译者:知数堂星耀队 MySQL 8.0.2复制新特性 MySQL 8 正在变得原来越好,而且这也在我们MySQL复制研发团队引起了一阵热潮.我们一直致力于全面提升MySQL复制,通过引入新的和一些有趣的功能.此外,我们还听取了社区的建议和反馈.因此,我们很荣幸能够与你一同见证最新版本(MySQL 8.0.2)的里程碑式的发布,为此我们总结了其中的一些值得注意的变化.跟随我们下面的博客,我们将会分享这些新功能的一些见解. 我们对MySQL 组复制进行了加强,主要有以下几个方面: 不允许对离开组的成

MQ7.1及高版本的新特性

MQ 认证 认证,通常是指验证一个用户或者应用程序真实合法的过程.在 MQ 中,主要分为基于连接的认证和基于消息的认证.基于连接的认证,是通过 MQ 通道实现的:基于消息的认证,则是通过 MQ 高级消息安全(MQ AMS)实现的.在本文中,主要讲述基于连接的认证. MQ 主要支持三种不同的认证方式:断言认证,起源认证和证书认证.在 MQ 7.0 及以前的版本中,这些认证方式主要是依靠用户编写代码,即安全出口来实现.MQ 7.1 和 MQ 7.5 集成了这三种常用的认证功能.在 MQ 7.1/7.

(数据科学学习手札73)盘点pandas 1.0.0中的新特性

本文对应脚本及数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 毫无疑问pandas已经成为基于Python的数据分析领域最重要的包,而就在最近,pandas终于迎来了1.0.0版本,对于pandas来说这是一次更新是里程碑式的,删除了很多旧版本中臃肿的功能,新增了一些崭新的特性,更加专注于高效实用的数据分析,本文就将针对pandas 1.0.0在笔者眼中比较重要的特性进行介绍,对于想要完整彻底了解新版

C# 6.0可能的新特性

C# 6.0可能的新特性 1.主构造函数(Primary Constructors) 主构造函数给类中的变量赋值 Before public class Point { private int x, y; public Point(int x, int y) this.x = x; this.y = y; } } After public class Point(int x, int y) { private int x, y; } 2.自动属性赋值(Auto Properties) Befor