首页 > 编程知识 正文

hadoop配套版本,简述hadoop版本区别

时间:2023-05-06 12:28:57 阅读:56640 作者:638

ApacheHadoop

Apache版本衍化

ApacheHadoop的版本分为两代,第一代Hadoop称为Hadoop 1.0,第二代Hadoop称为Hadoop 2.0。 第一代Hadoop包含0.20.x、0.21.x和0.22.x三个大版本。 其中,0.20.x最终将进化为1.0.x并成为稳定版,0.21.x和0.22.x将成为NameNode HA等新的重要特性。 第二代Hadoop包含0.23.x和2.x两个版本。 它们与Hadoop 1.0完全不同,包含两个系统: HDFS Federation和YARN,其中2.x比0.23.x添加了NameNodeHA和wire-cire更粗略,说明如下总之,用于区分Hadoop版本的特性如下。

)1) Append支持文件添加功能,如果想使用HBase,则需要此特性。

)2) RAID在保证数据可靠性的基础上,通过引入校验码来减少数据块数。

)3) Symlink支持HDFS文件链接

)4)安全硬件安全。

请注意,Hadoop 2.0主要由独立于雅虎的hortonworks公司主持开发。

2013年10月,Hadoop 2.0发布。关键特性包括:

a) YARN

YARN是“YetAnother Resource Negotiator”的简称,是Hadoop 2.0中引入的新的通用资源管理系统,在此基础上运行MapReduce、Tez、Storm等各种APP应用程序和框架YARN是基于MRv1派生的,是MapReduce发展到一定程度的必然产物。 随着它的出现,Hadoop计算APP应用进入了平台化时代。 我的博客包含很多介绍YARN的文章,感兴趣的读者可以阅读: http://dongxi cheng.org/category/maprededy

b) HDFS单点故障得以解决

Hadoop2.2.0同时解决了NameNode的单点故障和内存限制问题。 其中,单点故障是通过切换主NameNode实现的。 这是一个解决服务单点故障的旧解决方案,由于在主NameNode之间在共享存储上同步元数据信息,因此选择共享存储系统被称为重中之重。 Hadoop提供三个可选的共享存储系统: NFS、mmdct和Bookeeper。 具体请参阅Hadoop 2.0单点故障问题方案概述。

c)HDFS Federation

上述HDFS中的NameNode存在内存限制问题,此问题在2.2.0版中也得到了解决。 这是通过HDFS Federation实现的,在一个HDFS群集中有多个NameNode,每个NameNode管理部分目录,在不同NameNode之间独立共享所有DataNode的存储资源请注意。 名称融合中的每个名称

d)HDFS快照

HDFS快照是指某个时间点的HDFS文件系统或子系统的只读镜像。 这样,管理员就可以定期拍摄重要文件或目录的快照,以防止数据被意外删除或丢失。 具体请参阅Snapshots for HDFS、Support for RW/ROsnapshots in HDFS。

从NFSv3访问HDFS

在NFS中,用户可以像访问本地文件系统一样访问远程文件系统。 此外,当将NFS导入HDFS时,如下图所示,通过导入将NFS协议转换为HDFS访问协议的NFS网关服务,用户能够与本地文件同样地读取和写入HDFS上的文件,因此HDFS 有兴趣的朋友可以阅读support NFS v3接口到HDFS和HDFS NFS网关的设计文档。

e)支持Windows操作系统

在2.2.0版之前,Hadoop仅支持Linux操作系统,Windows仅用作实验平台。 从2.2.0开始,Hadoop现在支持Windows。 具体来说,可以阅读以前写的文章《windows的Hadoop》。

f)兼容1.x上运行的MapReduce应用程序与Hadoop生态系统其他系统进行了充分的集成测试

除了HDFS、MapReduce、YARN三个核心系统外,Hadoop生态系统还包括Hbase、Hive、Pig等系统,这些系统的基础依赖于Hadoop内核,Hadoop 1.0哟

op 2.0的最大变化出现在内核(HDFS、MapReduce和YARN),但与生态系统中其他系统进行集成测试是必需的。

除了以上特性外,Apache官方还给出了两个特殊说明:

(1)HDFS变化:HDFS的symlinks(类似于Linux中的软连接)被将移到了2.3.0版本中

(2)YARN/MapReduce注意事项:管理员在NodeManager上设置ShuffleHandler service时,要采用“mapreduce_shuffle”,而非之前的“mapreduce.shuffle”作为属性值

新版本不仅增强了核心平台的大量功能,同时还修复了大量bug。新版本对HDFS做了两个非常重要的增强:(1)、支持异构的存储层次;(2)、通过数据节点为存储在HDFS中的数据提供了内存缓存功能。

借助于HDFS对异构存储层次的支持,我们将能够在同一个Hadoop集群上使用不同的存储类型。此外我们还可以使用不同的存储媒介——例如商业磁盘、企业级磁盘、SSD或者内存等——更好地权衡成本和收益。如果你想更详细地了解与该增强相关的信息,那么可以访问这里。类似地,在新版本中我们还能使用Hadoop集群中的可用内存集中地缓存并管理数据节点内存中的数据集。MapReduce、Hive、Pig等类似的应用程序将能够申请内存进行缓存,然后直接从数据节点的地址空间中读取内容,通过完全避免磁盘操作极大地提高扫描效率。Hive现在正在为ORC文件实现一个非常有效的零复制读取路径,该功能就使用了这项新技术。

在YARN方面,令我们非常兴奋的事情是资源管理器自动故障转移功能已经进入尾声,虽然在2.3.0这个版本中该功能还没有被发布,但是极有可能会包含在Hadoop-2.4中。此外,2.3.0版本还对YARN做了一些关键的运维方面的增强,例如更好的日志、错误处理和诊断等。

MapReduce的一个关键增强MAPREDUCE-4421。借助于该功能我们已经不再需要在每一台机器上安装MapReduce二进制程序,仅仅需要通过YARN分布式缓存将一个MapReduce包复制到HDFS中就可以了。当然,新版本还包含大量的bug修复以及其他方面的增强。例如:

(1)YarnClientImpl类中的异步轮询操作引入了超时;

(2)修复了RMFatalEventDispatcher没有记录事件原因的问题;

(3)HA配置不会影响节点管理器的RPC地址;

(4)RM Web UI和REST API统一使用YarnApplicationState;

(5)在RpcResponseHeader中包含RPC错误信息,而不是将其分开发送;

(6)向jetty/httpserver中添加了请求日志;

(7)修复了将dfs.checksum.type定义为NULL之后写文件和hflush会抛出java.lang.ArrayIndexOutOfBoundsException的问题。

2014年4月,Hadoop 2.4.0发布。关键特性包括:

(1)HDFS支持访问控制列表(ACLs,Access Control Lists);

(2)原生支持HDFS滚动升级;

(3)HDFS FSImage用到了 protocol-buffers,从而可以平滑地升级;

 (4)HDFS完全支持HTTPS;

(5)YARN ResourceManager支持自动故障转移,解决了YARNResourceManager的单点故障;

(6)对YARN的Application History Server和 pplication Timeline Server上的新应用加强了支持;

(7)通过抢占使得YARN Capacity Scheduler支持强SLAs协议;

安全对于Hadoop来说至关重要,所以在Hadoop 2.4.0版本中对HDFS的所有访问(包括WebHDFS, HsFTP甚至是web-interfaces)都支持了HTTPS。在Hadoop 2.4.0解决了ResourceManager的单点故障。这样会在集群中存在两个ResourceManager,其中一个处于Active;另一个处于  standby。当Active的出现故障,这样Hadoop可以自动平滑地切换到另外一个ResourceManager,这个新的ResourceManager将会自动的重启那些提交的applications。在下一阶段,Hadoop将会增加一个热standby(add a hot standby),这个standby可以继续从故障点运行的应用程序,以保存任何已经完成的工作。

2014年8月,Hadoop 2.5.0发布。关键特性包括:

1. Common

a) 使用HTTP代理服务器时认证改进。当通过代理服务器使用WebHDFS时这是非常有用的。

b) 增加了一个新的Hadoop指标监控sink,允许直接写到Graphite。

c) Hadoop文件系统兼容相关的规范工作。

2. HDFS

a) 支持POSIX风格的扩展文件系统。更多细节查看Extended Attributes in HDFS文档。

b) 支持离线image浏览,客户端现在可以通过WebHDFS的API浏览一个fsimage。

c) NFS网关得到大量可支持性的改进和bug修复。Hadoop portmapper不在需要运行网关,网关现在可以拒绝没有权限的端口的连接。

d)SecondaryNameNode, JournalNode, and DataNode 的web UI已经使用HTML5和JS美化。

3. YARN

a) YARN的RESTAPI现在支持写/修改操作。用户可以用REST API提交和杀死应用程序。

b) 时间线存储到YARN,用来存储一个应用通用的和特殊的信息,支持Kerberos认证。

c) 公平调度器支持动态分层用户队列,运行时,用户队列在任一指定的父队列中被动态的创建。

2014年11月,Hadoop 2.6.0发布。关键特性包括:

1. Common

 Hadoop Key Management Server(KMS)是一个基于HadoopKeyProvider API编写的密钥管理服务器。他提供了一个client和一个server组件,client和server之间基于HTTP协议使用REST API通信。Client是一个KeyProvider的实现,使用KMS HTTP REST API与KMS交互。KMS和它的client有内置的安全机制,支持HTTP SPNEGO Kerberos认证和HTTPS安全传输。KMS是一个Java Web应用程序,运行在与Hadoop发行版绑定在一起的预先配置好的Tomcat服务器上。

2. Tracing

HDFS-5274增加了追踪通过HDFS的请求的功能,此功能使用了开源的库,HTrace。大家可以看一下HTrace,功能很强大,Cloudera开源出来的。

3. HDFS

a) TransparentEncryption,HDFS实现了一个透明的,端到端的加密方式。一旦配置了加密,从HDFS读出数据解密和写入数据加密的过程对用户应用程序代码带来说都是透明的。加密过程是端到端的,这意味着数据只能在客户端被加密解密。HDFS从来不存储,也不访问未加密的数据和数据加密密钥。这样满足了加密过程的两个典型的需求:at-rest encryption(静态加密,也就是说,数据持久化在像硬盘这样的媒介上),in-transit encryption(在途加密,例如,当数据在网络中传输的时候)。

b) StorageSSD&& Memory。ArchivalStorage(档案存储器)是将计算能力与不断增长的存储能力分离。拥有高密度低成本的存储但是计算能力较低的节点将变得可用,可以在集群中做冷存储。增加更多的节点作为冷存储可以提高集群的存储能力,跟集群的计算能力无关。

4. MapReduce

这一部分主要是一些bug的修复和改进。增加了两个新的新特,在2.5.2里已经有所描述了。这里在简单看一下。

a) ResourceMangerRestart

b) 允许AM发送历史事件信息到timeline server。

5. YARN

a) NodeManagerRestart:这个特性可以使NodeManager在不丢失运行在节点中的活动的container的情况下重新启动。

b) DockerContainer Executor:DockerContainer Executor(DCE)允许YARN NodeManager在Docker container中启动YARN container。用户可以指定他们想用来运行YARN container的Docker的镜像。这些container提供了一个可以自定义的软件环境,用户的代码可以运行在其中,与NodeManager运行的环境隔离。这些运行用户代码的container可以包含应用程序需要的特定的库,它们可以拥有与NodeManager不同版本的Perl,Python甚至是Java。事实上,这些container可以运行与NodeManager所在的OS不同版本的Linux。尽管YARNcontainer必须定义运行Job所需的所有的环境和库,但是NodeManager中的所有的东西都不会共享。

Docer为YARN提供了一致和隔离两种模式,一致模式下,所有的YARN container将拥有相同的软件环境,在隔离模式下,不管物理机器安装了什么都不干扰。

2015年7月,Hadoop 2.7.0发布。关键特性包括:

1. Common

支持WindowsAzure Storage,BLOB作为Hadoop中的文件系统。

Hadoop HDFS

a) 支持文件截断(file truncate);

b) 支持每个存储类型配额(Support for quotas per storage type);

c) 支持可变长度的块文件

2. YARN

1、YARN安全模块可插拔

a)YARN的本地化资源可以自动共享,全局缓存(测试版)

HadoopMapReduce

b)能够限制运行的Map/Reduce作业的任务

c)为非常的大Job(有许多输出文件)加快了FileOutputCommitter。

2. HDFS

a) 支持文件截断(file truncate);

b) 支持每个存储类型配额(Support for quotas per storage type);

c) 支持可变长度的块文件

2. MAPREDUCE

a) 能够限制运行的Map/Reduce作业的任务

b) 为非常的大Job(有许多输出文件)加快了FileOutputCommitter。

2015年7月,Hadoop 2.7.1发布。关键特性包括:

本版本属于稳定版本,是自Hadoop 2.6.0以来又一个稳定版,同时也是Hadoop 2.7.x版本线的第一个稳定版本,也是 2.7版本线的维护版本,变化不大,主要是修复了一些比较严重的Bug(其中修复了131个Bugs和patches)

6.参考文献

Hadoop官方网站http://hadoop.apache.org/

     《Hadoop核心技术》花痴的绿草

     CSDN Hadoop技术社区

     过往记忆的博客http://www.iteblog.com/

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。