解析Hadoop 2.3.0版本的新特性


本博客微信公共账号:hadoop123(微信号为:hadoop-123),分享hadoop技术内幕,hadoop最新技术进展,发布hadoop相关职位和求职信息,hadoop技术交流聚会、讲座以及会议等。二维码如下:


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/

本博客的文章集合:

Leave a Comment

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

14 Comments to “解析Hadoop 2.3.0版本的新特性”

董大神~~

[回复]

回复

期待。

[回复]

回复

不知道storm如何与前台交互?(就是前台的structs或者jsp向storm发送待处理数据,接受处理后的结果)目前好像都没看到这些平台如何与前端衔接

[回复]

回复

为什么不建议使用ResourceManager的HA功能呢

[回复]

回复

[...] Hadoop 2.3.0版在2014年2月20日正式发布了,新增了很多不错的新特性。(董大师对这些特性的介绍:http://dongxicheng.org/mapreduce-nextgen/hadoop-2-3-0-new-features/ )。下面是Hadoop 2.3版搭建分布式集群的全部过程。 [...]

回复

请问,基于QJM的HDFS HA配置完后,对于其上层的HBASE的hbase-site.xml如何配置,谢谢

[回复]

回复

请问,使用2.3.0搭建的分布式集群,start-all.sh启动后,jps查看,只有
4319 SecondaryNameNode
4114 NameNode
3593 ResourceManager
4526 Jps
是否正常?

[回复]

Dong 回复:

不清楚,如果这个节点只装了ResourceManager NameNode 和SecondaryNameNode,就是正常的,如果还有其他服务,就不正常了。如果你只有一个节点,不正常。

[回复]

回复

集群共7台主机,
每一台主机里hadoop的core-site.xml里配置fs.default.name值都为hdfs://192.168.1.240:9000,这个是master主控机的IP。
mapred-site.xml里配置mapreduce.framework.name值为yarn。
slaves文件里配置了6台从属机的主机名。
在master机开始格式化,信息都是info,没有报错。start-all.sh启动集群也没有报错。在master上jps只看到上面3个进程,在slave上jps只看到datanode进程。
在master上stop-all.sh也没用报错,但提示 no nodemanager。

[回复]

回复

[...] Hadoop 2.3.0版在2014年2月20日正式发布了,新增了很多不错的新特性。(董大神对这些特性的介绍:http://dongxicheng.org/mapreduce-nextgen/hadoop-2-3-0-new-features )。下面是Hadoop 2.3版搭建分布式集群的全部过程。 [...]

回复

[...] Hadoop 2.4.0版本于2014年4月7日发布,相比于hadoop 2.3.0,有了很多重大改进,主要包括: [...]

回复

[...] About Us 当前位置:首页 > Hadoop > 正文 Hadoop 2.4.0版本发布了浏览10+ 作者:deepminder   发布:2014-04-16   分类:Hadoop   Hadoop 2.4.0版本于2014年4月7日发布,相比于hadoop 2.3.0,有了很多重大改进,主要包括: [...]

回复

[...] Hadoop 2.4.0版本于2014年4月7日发布,相比于hadoop 2.3.0,有了很多重大改进,主要包括: [...]

回复

[...] Hadoop 2.3.0版在2014年2月20日正式发布了,新增了很多不错的新特性。(董大神对这些特性的介绍:http://dongxicheng.org/mapreduce-nextgen/hadoop-2-3-0-new-features )。下面是Hadoop 2.3版搭建分布式集群的全部过程。 [...]

回复