4.1 Hadoop主要发行版本
主流的Hadoop生态圈除了前面介绍的ApacheHadoop以外,还有Cloudera、HortonWorks、MapR三个不同版本。这三个版本既有相似之处,又有各自的特点。它们都提供整合后的企业级Hadoop发行版本,提高整体的部署效率。三者都提供了可以自由下载的免费版本,但Cloudera和MapR还有收费版本。它们都建立了自己的社区,帮助用户解决面临的问题,以满足商业应用的需求,在稳定性与安全性方面也都经受住了时间的考验。
4.1.1 Cloudera Distribution for Hadoop(CDH)
Cloudera是第一个商业Hadoop发行版本,也是Hadoop用户最为熟悉的版本,是Hadoop生态圈中活跃的代码贡献者,其创新性的工具广受欢迎。Cloudera Manager是一个管理控制台,它包括丰富的用户界面,能够在一个框架内清晰地显示Hadoop及其各项服务的所有信息,非常便于用户使用。专有的Cloudera Management套件将Hadoop安装过程自动化,并为用户提供大量的增强功能,如实时显示节点数量、自动部署服务等。
CDH的特性如下:
● 能够在Hadoop集群中自由添加或删除服务。
● 支持多集群管理。
● 提供节点模板。允许在Hadoop集群中建立多组节点,各组节点可以有不同的配置。
● 依赖于HDFS的DataNode、NameNode架构,将数据处理与元数据保存分离。
CDH的优点在于提供了包含大量工具和特性的用户友好界面,缺点是相对于其他版本的Hadoop,性能不是很好,速度较慢。
4.1.2 Hortonworks Data Platform(HDP)
Hortonworks公司是由Yahoo的工程师创建的,它为Hadoop提供了一种“service only”的分发模型。有别于另外两种Hadoop版本,Hortonworks是一个可以自由使用的开放式企业级数据平台。其Hadoop发行版本即HDP,可以被自由下载并整合到各种应用当中。
Hortonworks是第一个提供基于Hadoop 2.0版产品的厂商,也是目前唯一支持Windows平台的Hadoop分发版本。用户可以通过HDInsight服务,在Windows Azure上部署Hadoop集群。
HDP的特性如下:
● HDP通过其新的Stinger项目,使Hive的执行速度更快。
● HDP承诺是一个Hadoop的分支版本,对专有代码的依赖极低,避免了厂商锁定。
● 专注于提升Hadoop平台的可用性。
HDP的优势在于它是唯一支持Windows平台的Hadoop版本,劣势是它的Ambari管理界面过于简单,没有提供丰富的特性。
4.1.3 MapR Hadoop
MapRHadoop是这三种Hadoop版本中运行最快的,它的理念是市场驱动实体,因此需要支持更快的市场需求。与Cloudera和Hortonworks不同,MapR使用更加分布式的方法,将元数据存储在处理节点上。MapRHadoop建立在MapRFS文件系统之上,因此没有NameNode的概念。MapR的Hadoop发行版本不依赖于Linux的文件系统。
MapR Hadoop的特性如下:
● MapR Hadoop依赖于MapRFS,因此它是唯一包含没有任何Java依赖的Pig、Hive和Sqoop的Hadoop发行版本。
● MapR是产品化程度最高的Hadoop发行版本,它的速度更快,可靠性更高。
● MapR允许多个节点直接访问NFS,用户可以在NFS之上挂载MapR文件系统,因此可以使用传统方式访问Hadoop的数据。
● MapR Hadoop提供完整的数据保护功能,没有单点故障。
● MapR Hadoop被认为是最快的Hadoop发行版本。
MapR Hadoop优点是速度快,没有单点故障,缺点是没有好的用户界面控制台。
Cloudera、HortonWorks、MapR这三个都是Hadoop开源产品的商业分发版,其价值主要体现在两个方面:
● 对Hadoop生态圈中各种各样的组件进行兼容性测试并打包。
● 提供工具简化Hadoop集群的安装和建立。
Hadoop开源版本的主要挑战在于,要搞清楚哪些组件的哪些版本是相互兼容的。事实证明,保持Hadoop生态圈开源社区中众多相关项目的版本同步是非常困难的。实际上基于版本的兼容性是会随着版本改变的。保持对这些依赖性的跟踪并了解哪些版本可以在一起协同工作并不容易。为了使Hadoop的部署更加顺利,许多公司已经把多种兼容的组件打包在一起。
集群的建立和管理是另一个主要挑战。安装集群并在安装后监控集群的健康状况都比较困难。Hadoop主要发行版本通过提供多种工具,使集群的建立和管理简化了很多。从后面介绍的开源版本Hadoop和CDH安装可以看到两者的区别。
每种主要发行版本所包含的组件集合都不尽相同。例如,Cloudera包含Impala,而HortonWorks里就没有。这些区别会给选择发行版本带来烦恼——并不是每一个分发版本都包含Hadoop生态圈的所有工具。