今天聊一下Hadoop发行版。
在正式介绍Hadoop发行版之前,先说一下Hadoop遵从的开源协议(License)。在开源界,主要存在六中开源许可协议,分别是GPL、Mozilla、LGPL、BSD、MIT和Apache,不同的开源协议对代码是否可修改、是否可贩卖等有不同的要求。Hadoop采用的是Apache许可协议,该协议允许用户对源代码进行任何修改,且修改后可以进行贩卖,甚至可以将之变为闭源,但新增的源代码必须添加apache协议,即该协议具有传递性。正是由于Apache许可协议,才使得hadoop变得如此流行,但同时也使得Hadoop发行版变得异常多样化,甚至看起来有些混乱。
总体说来,Hadoop当前存在两种发行版,分别是闭源发行版和开源发行版,其中,Intel发行版、华为发行版、IBM发行版等商业公司发行的版本属于闭源发行版,这几个公司在开源Hadoop基础上进行了若干改进和优化,提出了自己的发行版,并打包到硬件中出售,目前intel和华为发行版卖很不错,今天不细谈闭源发行版,主要谈开源发行版。目前主要有三大非常有名的开源发行版,分别是apache、hortonworks和cloudera,第一个是一个开源公益组织,后两个是开源公司(通过开源赚钱的公司,主要是提供咨询和解决方案,属于软件服务公司),而apache开源组织的主要代码贡献来自后两个公司。我们分别聊一下这三个开源发行版。
Apache发行版(http://hadoop.apache.org/),最有名的发行版,所有其他发行版最初均源自该发行版,它是其他发行版的源泉,当前,全世界各个公司都在往apache发行版中提交patch,以完善这个版本。目前,绝大多数公司直接采用apache的发行版。
Hortonworks发行版(http://hortonworks.com/)。Hortonworks这个公司是从yahoo!分出来的一个公司,我们知道,yahoo!是hadoop的提出者和主要贡献者,而hortonworks从一成立就成为apache hadoop的主要贡献者,它目前推出了自己的版本HDP(Hortonworks Data Platform),目前刚刚发布了HDP2,是基于最新的apachehadoop 2.2.0开发的。

Cloudera发行版(http://www.cloudera.com)。最有名的Hadoop开源公司,hadoop创始人do cutting就职于该公司。该公司已经融资多次,发展势头迅猛。它推出的Hadoop发行版为CDH(Cloudera Distributed Hadoop),截至目前,已经推出了基于apache hadoop0.20.2的cdh3和基于apache hadoop 2.0.0的cdh4,但这两个版本均不会再更新。据官方博客介绍,cloudera即将推出基于apache hadoop 2.2.0的cdh5。
HDP和CDH两个版本在hadoop内核(即hdfs、mapreduce和yarn)上基本是一样的,不同之处是上层系统,比如,HDP主张优化hive让其支持交互式查询和近实时查询,而CDH则开发了一个新系统Impala与其对抗;HDP开源了Hadoop自动化部署工具ambari,以对抗CDH收费的Cloudera Manager(按节点数目收费,太狠了)。
由于hortonworks和cloudera的竞争关系,它们的员工经常在apache的一些论坛或者项目管理系统上争吵,但竞争归竞争,他们仍存在合作关系,即共同推进apache hadoop朝积极的方向前进,使Hadoop的影响力越来越大,逐步渗透到各行各业。
(封面贴图摘自阮一峰的博客,一张图让你看懂各开源License)




