您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Hadoop版本说明以及Hadoop2中的几个重要概念

2025/7/17 5:04:03发布25次查看
当我们现在(2014年7月)访问apache的hadoop官方网站,可以看到目前官网提供了三个推荐版本。像我一样的初学者必然感到困惑: 1.2.x - current stable version, 1.2 release 2.4.x - current stable 2.x version 0.23.x - similar to 2.x.x but missing nn h
当我们现在(2014年7月)访问apache的hadoop官方网站,可以看到目前官网提供了三个推荐版本。像我一样的初学者必然感到困惑:
1.2.x - current stable version, 1.2 release
2.4.x - current stable 2.x version
0.23.x - similar to 2.x.x but missing nn ha.
1、为什么会提供这么奇怪的版本,我做了一些了解
       hadoop一代:原来hadoop最初的开发时候出现了0.20,0.21,0.22,0.23这样的版本,后来0.20.x版本最后演化成了现在的1.0.x版本,也就是hadoop第一代的稳定版本。也就是说第一代hadoop包含三个大版本,分别是0.20.x,0.21.x和0.22.x,其中,0.20.x最后演化成1.0.x,变成了稳定版,也就是现在官网推荐的一代稳定产品1.2.x。 0.21.x和0.22.x是下一代hadoop中的mapreduce实现,只不过资源管理系统还是用的jobtracker,没有使用yarn。
hadoop二代:而最初的0.23版本,完全不同于第一代hadoop,是一套全新的架构,包含hdfs federation和yarn两个系统,后来也由0.23演化出了2.0.x系列的二代版本。 至于0.23和2.0.x系列的不同,那就是相比于0.23.x,2.x增加了namenode ha和wire-compatibility两个重大特性。
那么,我们就可以非常清楚的明白,hadoop官网给出的三个下载链接:
1.2.x代表第一代的hadoop框架; 2.4.x代表第二代的hadoop框架;0.23.x也是第二代框架,只是缺少了nn ha特性。
什么是nn ha? 答:namenode high available,即namenode高可用性。这里有一篇关于ha解决方案的介绍:
http://wenku.baidu.com/link?url=apnxlqjy3rxyxswgn_9u4-7fuvmuw6wnmldlr3yfq7_rzjfr7yodjpk-psbgyhbx2az9bzb5eyeir09lo_ecsa6kmdnjn4r-3imzuvgwjl_
http://www.infoq.com/cn/articles/hadoop-2-0-namenode-ha-federation-practice-zh
http://blog.csdn.net/wf1982/article/details/7793166
2、我们应该下载哪个版本?
      由于我本次实验室所工作的事情初次接触该框架,而且需要用到较多的特性,故果断选择第二代框架。而且,作为使用者,我们必然要选择stable版本,我们看到官网提供的2.4.x确实是stable版本,而且当我进入下载,找到华科大的镜像服务器时,其stable目录下,正是2.4.1,因此本次项目我们使用2.4.1的版本。
想看最全的hadoop版本,就去这里:http://svn.apache.org/repos/asf/hadoop/common/branches/
实际上,当前hadoop只有两个版本:hadoop 1.0(我觉得应该叫他一代)和hadoop 2.0(我觉得应该叫他二代,中文免得混乱),其中,hadoop 1.0由一个分布式文件系统hdfs和一个离线计算框架mapreduce组成,而hadoop 2.0则包含一个支持namenode横向扩展的hdfs,一个资源管理系统yarn和一个运行在yarn上的离线计算框架mapreduce。相比于hadoop 1.0,hadoop 2.0功能更加强大,且具有更好的扩展性、性能,并支持多种计算框架。
当我们决定是否采用某个软件用于开源环境时,通常需要考虑以下几个因素:
(1)是否为开源软件,即是否免费。
(2) 是否有稳定版,这个一般软件官方网站会给出说明。
(3) 是否经实践验证,这个可通过检查是否有一些大点的公司已经在生产环境中使用知道。
(4) 是否有强大的社区支持,当出现一个问题时,能够通过社区、论坛等网络资源快速获取解决方法。
3、chd基于开源hadoop的另一个分发版本------
我们在关注hadoop时可能会经常看到cdh3或cdh4之类的hadoop版本,那么他们就是由一家叫做cloudera的公司发行的,就像linux操作系统领域有redhat一样,hadoop是apache的开源项目,然后有一家公司cloudera就利用hadoop改造成另一个发行版。cdh是在apache的基础上进行优化的版本。这家云计算公司发展非常强劲,大有成为下一个redhat之势。
可以在官网了解到相关知识:http://www.cloudera.com/content/support/en/downloads.html
4、hadoop2代中的相关概念
(1) hadoop 1.0
第一代hadoop,由分布式存储系统hdfs和分布式计算框架mapreduce组成,其中,hdfs由一个namenode和多个datanode组成,mapreduce由一个jobtracker和多个tasktracker组成,对应hadoop版本为hadoop 1.x和0.21.x,0.22.x。
(2)  hadoop 2.0
第二代hadoop,为克服hadoop 1.0中hdfs和mapreduce存在的各种问题而提出的。针对hadoop 1.0中的单namenode制约hdfs的扩展性问题,提出了hdfs federation,它让多个namenode分管不同的目录进而实现访问隔离和横向扩展;针对hadoop 1.0中的mapreduce在扩展性和多框架支持方面的不足,提出了全新的资源管理框架yarn(yet another resource negotiator),它将jobtracker中的资源管理和作业控制功能分开,分别由组件resourcemanager和applicationmaster实现,其中,resourcemanager负责所有应用程序的资源分配,而applicationmaster仅负责管理一个应用程序。对应hadoop版本为hadoop 0.23.x和2.x。
(3) mapreduce 1.0或者mrv1(mapreduce version 1)
第一代mapreduce计算框架,它由两部分组成:编程模型(programming model)和运行时环境(runtime environment)。它的基本编程模型是将问题抽象成map和reduce两个阶段,其中map阶段将输入数据解析成key/value,迭代调用map()函数处理后,再以key/value的形式输出到本地目录,而reduce阶段则将key相同的value进行规约处理,并将最终结果写到hdfs上。它的运行时环境由两类服务组成:jobtracker和tasktracker,其中,jobtracker负责资源管理和所有作业的控制,而tasktracker负责接收来自jobtracker的命令并执行它。
(4)mapreduce 2.0或者mrv2(mapreduce version 2)或者nextgen mapreduc
mapreduce 2.0或者mrv2具有与mrv1相同的编程模型,唯一不同的是运行时环境。mrv2是在mrv1基础上经加工之后,运行于资源管理框架yarn之上的mrv1,它不再由jobtracker和tasktracker组成,而是变为一个作业控制进程applicationmaster,且applicationmaster仅负责一个作业的管理,至于资源的管理,则由yarn完成。
简而言之,mrv1是一个独立的离线计算框架,而mrv2则是运行于yarn之上的mrv1。
(5) yarn
hadoop 2.0中的资源管理框架,它是一个框架管理器,为各种框架进行资源分配和提供运行时环境。而mrv2则是运行在yarn之上的第一个计算框架,其他计算框架,比如spark、storm等,都正在往yarn上移植。yarn类似于几年前的资源管理系统mesos和更早的torque。yarn的官方介绍http://hadoop.apache.org/docs/r2.2.0/hadoop-yarn/hadoop-yarn-site/yarn.html
(6) hdfs federation
hadoop 2.0中对hdfs进行了改进,使namenode可以横向扩展成多个,其中,每个namenode分管一部分目录,这不仅增强了hdfs的扩展性,也使hdfs具备了隔离性。
5、分布式计算相关的其他概念
spark:spark是一个高效的分布式计算系统,发源于美国加州大学伯克利分校amplab的集群计算平台。 spark被称为“hadoop的瑞士军刀”,拥有非凡的速度和易用性。spark立足于内存计算,相比hadoop mapreduce,spark在性能上要高100倍,而且spark提供了比hadoop更上层的api,同样的算法在spark中实现往往只有hadoop的1/10或者1/100的长度。 apache spark? is a fast and general engine for large-scale data processing.
storm:分布式实时计算系统。按照storm作者的说法,storm对于实时计算的意义类似于hadoop对于批处理的意义。我们都知道,根据google mapreduce来实现的hadoop为我们提供了map, reduce原语,使我们的批处理程序变得非常地简单和优美。同样,storm也为实时计算提供了一些简单优美的原语。 有一篇介绍strom的博客:http://www.searchtb.com/2012/09/introduction-to-storm.html
------------本文引用出处-----------
http://dongxicheng.org/mapreduce-nextgen/how-to-select-hadoop-versions/
http://dongxicheng.org/mapreduce-nextgen/hadoop-2-0-terms-explained/
http://dongxicheng.org/mapreduce-nextgen/hadoop-2-2-0/
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product