Hadoop 2.0稳定版本2.2.0新特性剖析
网址: http://dongxicheng.org/mapreduce-nextgen/hadoop-2-2-0/
本博客的文章集合: http://dongxicheng.org/recommend/
重大消息:我的Hadoop新书《Hadoop技术内幕:深入解析MapReduce架构设计与实现原理》已经开始在各大网站销售了,购书链接地址: 当当购书网址, 京东购书网址, 卓越购书网址。新书官方宣传主页: http://hadoop123.com/。
Hadoop 2.0的第一个稳定版本2.2.0于2013年10月15如发布了,这个版本是 继1.0.0版本后,又一个具有里程碑意义的版本,这意味着Hadoop进入2.0时代。本文尝试解析Hadoop 2.2.0中包含的新特性。
下图是 Apache Hadoop官网发布的2.2.0中涉及到的新特性,主要有8个特性,具体如下:
特性1:引入一个新的资源管理系统YARN
YARN是“Yet Another Resource Negotiator”的简称,它是Hadoop 2.0引入的一个全新的通用资源管理系统,可在其之上运行各种应用程序和框架,比如MapReduce、Tez、Storm等,它的引入使得各种应用运行在一个集群中成为可能。YARN是在MRv1基础上衍化而来的,是MapReduce发展到一定程度的必然产物,它的出现使得Hadoop计算类应用进入平台化时代,我的博客中包含大量介绍YARN的文章,有兴趣的读者可阅读: http://dongxicheng.org/category/mapreduce-nextgen/
特性2:HDFS单点故障得以解决
Hadoop 2.2.0同时解决了NameNode单点故障问题和内存受限问题,其中,单点故障是通过主备NameNode切换实现的,这是一种古老的解决服务单点故障的方案,主备NameNode之间通过一个共享存储同步元数据信息,因此共享存储系统的选择称为关键,而Hadoop则提供了NFS、QJM和Bookeeper三种可选的共享存储系统,具体可阅读我的这篇文章: Hadoop 2.0单点故障问题方案总结。
特性3:HDFS Federation
前面提到HDFS 的NameNode存在内存受限问题,该问题也在2.2.0版本中得到了解决。这是通过HDFS Federation实现的,它允许一个HDFS集群中存在多个NameNode,每个NameNode分管一部分目录,而不同NameNode之间彼此独立,共享所有DataNode的存储资源,注意,NameNode Federation中的每个NameNode仍存在单点问题,需为每个NameNode提供一个backup以解决单点故障问题。
特性4:HDFS快照
HDFS快照是指HDFS文件系统(或者子系统)在某一时刻的只读镜像,它的出现使得管理员可定时为重要文件或目录做快照,以防止数据误删、丢失等。具体可阅读: Snapshots for HDFS(使用说明), Support for RW/RO snapshots in HDFS。
特性5:通过NFSv3访问HDFS
NFS允许用户像访问本地文件系统一样访问远程文件系统,而将NFS引入HDFS后,用户可像读写本地文件一样读写HDFS上的文件,大大简化了HDFS使用,这是通过引入一个NFS gateway服务实现的,该服务能将NFS协议转换为HDFS访问协议,具体如下图所示。有兴趣的读者可阅读: Support NFSv3 interface to HDFS,以及相关设计文档: HDFS NFS Gateway。
特性6:支持Windows操作系统
在2.2.0版本之前,Hadoop仅支持Linux操作系统,而Windows仅作为实验平台使用。从2.2.0开始,Hadoop开始支持Windows操作系统,具体可阅读我之前写的一篇文章: Hadoop For Windows。
特性7:兼容1.x上运行的MapReduce应用程序
我在文章“ 浅谈MRv1和MRv2的API兼容性”一文中已经有详细介绍。
特性8:与Hadoop生态系统其他系统进行了充分的集成测试
除了HDFS、MapReduce和YARN这三个核心系统外,Hadoop生态系统还包括Hbase、Hive、Pig等系统,这些系统底层依赖于Hadoop内核,而相比于Hadoop 1.0,Hadoop 2.0的最大变化出现在内核(HDFS、MapReduce和YARN),但与生态系统中其他系统进行集成测试是必需的。
除了以上8个特性外,Apache官方还给出了两个特殊说明:
(1)HDFS变化:HDFS的symlinks(类似于Linux中的软连接)被将移到了2.3.0版本中
(2)YARN/MapReduce注意事项:管理员在NodeManager上设置ShuffleHandler service时,要采用“mapreduce_shuffle”,而非之前的“mapreduce.shuffle”作为属性值(参考: YARN-1229),即:
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
原创文章,转载请注明: 转载自 董的博客
本文链接地址: http://dongxicheng.org/mapreduce-nextgen/hadoop-2-2-0/
作者: Dong,作者介绍: http://dongxicheng.org/about/
本博客的文章集合: http://dongxicheng.org/recommend/
Copyright © 2013
This feed is for personal, non-commercial use only.
The use of this feed on other websites breaches copyright. If this content is not in your news reader, it makes the page you are viewing an infringement of the copyright. (Digital Fingerprint:
)