如何选择合适的hadoop版本进行学习或企业应用 | 张恒镭的博客

如何选择合适的hadoop版本进行学习或企业应用

时间:13-11-27 栏目:hadoop 作者:恒镭, 张 评论:0 点击: 4,058 次

 

目前Apache Hadoop发行版越来越多,版本更新演进很快,如何进行区分? 众多厂家都发布了自己的商业版本,企业如何选择最适合自己的解决方案?

作为developer开发者或者administrator应该选择什么样的版本供自己学习和研究呢?本文针对这些问题,做一些简单的分析。

首先需要知道什么是Hadoop发行版( distribution),简单来说它就是基于开源的Apache Hadoop进行改造的商业解决方案。其中设计了包括一系列定制的管理工具和软件。

同时Apache Hadoop本身也存在着一些版本差异,甚至说apache的版本更加混乱。总体来说Hadoop内核分为了2个版本:

1、Hadoop 1.0(已有稳定版) 包括
 HDFS(Hadoop Distributed File System)
 MapReduce
2、Hadoop 2.0(已发布beta版)包括
 HDFS
 YARN(Yet Another Resource Negotiator)
 MapReduce

国外的一些商业公司,如 Hortonworks主要专注于Hadoop 1(不包括YARN、HCatalog等),也是因为其技术比较成熟且能够投入生产环境。Cloudera发行版包括Hadoop 1和Hadoop 2两种选择,但Cloudera不建议将Hadoop 2投入生产环境。其他跟进的发行版提供商倾向于使用Hadoop 2。

  不同的提供商还会选择在其发行版当中添加不同的Apache Hadoop子项目,如Hive、Zookeeper等。另外还会添加一些专有代码作为补充甚至替换原始的Apache Hadoop代码,这些代码主要用来提升Hadoop分布式文件系统(HDFS)的性能,还有一些是新的管理工具。发行版提供商的管理套件是其主要的增值项目,其中最明显的就是Cloudera。而Hortonworks则选择将开源的Ambari添加到管理工具当中。

  用户选择Hadoop发行版的另外一个原因是厂商会提供相关的技术支持,因为企业内部对于Hadoop的部署和使用经验不足。Cloudera和Hortonworks的技术支持是业界最佳的,同时一些大型厂商如Oracle等也会提供一些级别的技术支持,比如在Oracle大数据一体机上面提供Tier 1技术支持。同时Cloudera提供详细的安装配置文档,最方便管理员的使用。

  以下的几个提供商当中,我会列出其各自的优势,用户可以根据自己的需求选择不同的Hadoop供应商:

  • Cloudera

2008 年成立的 Cloudera 是最早将 Hadoop 商用的公司,为合作伙伴提供 Hadoop 的商用解决方案,主要是包括支持,咨询服务,培训。2009年hadoop的创始人 Doug Cutting也任职于 Cloudera 公司。Cloudera产品主要为CDH,Cloudera Manager,Cloudera Support。CDH是Cloudera的hadoop发行版,完全开源,比Apache hadoop在兼容性,安全性,稳定性上有增强。Cloudera Manager是集群的软件分发及管理监控平台,可以在几个小时内部署好一个hadoop集群,并对集群的节点及服务进行实时监控。Cloudera Support即是对hadoop的技术支持。cloudera的标价为每年每个节点4000美元。

其优势为:

  ·Cloudera的Hadoop管理工具非常成熟

  ·Cloudera还提供了应用导航的功能

  ·Cloudera在Hadoop领域是非常有经验的

  ·Cloudera对于Hadoop的发展起着重要作用

  ·Cloudera拥有广泛的合作伙伴支持

  ·Cloudera专攻Hadoop,同时资金充沛

  • Hortonworks

2011年成立的Hortonworks是雅虎与硅谷风投公司Benchmark Capital合资组建的公司。公司成立之初吸纳了大约25名至30名专门研究Hadoop的雅虎工程师,上述工程师均在2005年开始协助雅虎开发Hadoop,这些工程师贡献了hadoop 80%的代码。。雅虎工程副总裁、雅虎Hadoop开发团队负责人Eric Baldeschwieler出任Hortonworks的首席执行官。Hortonworks 的主打产品是Hortonworks Data Platform (HDP),也同样是100%开源的产品,HDP除了常见的项目外还包含了Ambari,一款开源的安装和管理系统。HCatalog,一个元数据管理系统。
优势为:

  ·Hortonworks拥有大量的Hadoop专家,同时对Hadoop的发展也起到了重要作用

  ·Hortonworks也拥有广泛的合作伙伴支持

  ·Hortonworks与Cloudera很相似,也专攻Hadoop

  ·Hortonworks对专有代码的依赖低于Cloudera,因此用户不必担心“厂商锁定”问题。

  •  Intel

Intel 的商业版本,主要是强调其能提供全面的软硬件解决方案设计,针对硬件具有更好的性能优化,以及提供集群管理工具和安装工具简化了 Hadoop 的安装和配置,能够提供项目规划到实施各阶段专业的咨询服务,实际中采购Intel版本貌似动力不足。

优势:

  ·Intel的Hadoop性能很好

  ·Intel的Hadoop发行版最先进入中国市场(在中国市场的一大重要优势),我所服务的浙江移动通信工程采购的Hadoop就是采购的Intelhadoop

  • EMC/Pivotal/Greenplum

  ·使用Greenplum数据库的用户别犹豫了,就选择新的Pivotal HD吧

  • MapR

  ·某种程度上说MapR的Hadoop发行版在性能方面具备优势

  • IBM

IBM’s InfoSphere BigInsights: 当前版本为1.3,在其中打包了文本分析、用于数据探索的BigSheets、开发工具。IBM扩展了M\R和灵活的调度器。并提供了一个HDFS的替代方案(GPFS),提供了企业级的安全,提供了一个基于WEB的管理界面,提供了高速数据连接器。

  ·信任IBM的服务就选择它的Hadoop发行版

  • 华为

华为在硬件上具有天然的优势,在网络,虚拟化,PC机等都有很强的硬件实力。华为的hadoop版本基于自研的Hadoop HA平台,构建NameNode、JobTracker、HiveServer的HA功能,进程故障后系统自动Failover,无需人工干预,这个也是对hadoop的小修补,远不如mapR解决的彻底。华为在hadoop社区中的Contributor和committer也是国内最多的,算是国内技术实力较强的公司。

对于Hadoop中的组件,做一些描述:

Apache Hadoop和MapReduce,这个就不用介绍了,太熟悉了,是通用的组件。

Apache HDFS,也不说了

Apache Pig,提供Pig Latin的查询语言,以及一个编译器将查询语言转换为MR程序执行

Apache Hive,提供HiveQL查询语言,然后转换为MR程序执行。使得可以想数据仓库一样被查询,也可以在语言中嵌入MR代码。

Jaql,跟前两者相似,不过是IBM自己的,不是Apache中包含的。可以查询结构化和非结构化数据。为使用JSON来设计。最终编译为MR程序执行。

Apache HBase,是列的NoSQL数据库,构建在HDFS上,提供随机读和写。

Apache Cassandra,列、点对点模式的NoSQL数据库,内建复制机制,为广泛的高可用和云支持设计,允许事务和分析负载同时承载。DataStax将其作为HDFS的替代

Apache ZooKeeper,提供中央的控制信息和同步。通常为Hbase提供节点见的协调。

Apache Flume,孵化中的项目,由Cloudera提供,用于收集来自多个数据源的日志,并将它输入到中央的数据存储中,比如HDFS。

Apache Oozie,孵化中的项目,由Yahoo提供,用于工作流、调度和协调。

Apache Mahout,用于机器学习,是一个数据挖掘算法的库,包括分群、分类和过滤等。

Apache Sqoop,孵化中的项目,由Cloudera提供,提供在RDBMS和Hadoop中的批量数据传输。

Apache Whirr,一组为了运行云服务而设计的代码库,比如可以用来在AWS上部署ZooKeeper

Apache Avro,被IBM和Cloudera使用,用于数据串行化,也就是将数据转换为紧密的二进制格式(JSON)在Hadoop上存储和使用。

Hue,包括在Cloudera中,提供一个基于WEB的Job Tracker,集群监控和文件浏览。IBM在自己的BigInsights管理台中提供了这个功能。

Cascading,包括在MarR中,定义了不依赖于M\R代码的复杂工作流,底层运行在Hadoop的MR上,通常跟Hbase一起提供。非Apache项目

Apache Lucene,一个文本搜索引擎

Apache Hcatalog,孵化项目,由Hortonworks提供,实现中央的元数据和模式管理,跨越Hadoop和RDBMS,利用Pig和Hive提供关系视图

Apache Ambari,提供Hadoop集群的监控、管理和生命周期管理。

 

自己建立Hadoop的软件栈和选择一个有支持的商业版本。最终结论是大部分的公司都应该选择后者,除非是像大型互联网公司这种将Hadoop视为核心和长期演进的才应该选择前者。

 

关于Hadoop的开发者或者使用者应该如何选择呢?

研究源码的:采用Apache Hadoop官方版本吧。或者采用CDH(Cloudera's 100% Open Source Distribution of Hadoop)。

image

CDH 发行版框架

同时对于使用者而言,CDH有更多的安装部署文档,比apache hadoop好一些。建议选择。

现在CDH最新的是5.0 CDH 5.0 (including Hadoop 2, YARN, Impala, and Search) ,对于学习者而言大家用的最多的是hadoop-0.20.2-cdh3u6.tar。

学习:推荐apache 官方版本和cdh版本.

Apache Hadoop最全版本:
http://svn.apache.org/repos/asf/hadoop/common/branches/,可直接导到eclipse中.

CDH3(在Apache Hadoop 0.20.2版本基础上演化而来的)和CDH4在Apache Hadoop 2.0.0版本基础上演化而来的),分别对应Apache的Hadoop 1.0和Hadoop 2.0.

CDH3:http://archive.cloudera.com/cdh/3/ CDH4:http://archive.cloudera.com/cdh4/cdh/4/ 

更详细的比较 可以参考文章http://wenku.baidu.com/link?url=CwltbuyGunXF_Wend2WfKHNTlAmbIz4Wi1U1MDV4FOL0PnIJf6TpelOXWiIU8aZnnYoh89PZDfwrGPbpaFeeuDzuR4N50uj08ZfbzIe1ha3

声明: 本文由( 恒镭, 张 )原创编译,转载请保留链接: 如何选择合适的hadoop版本进行学习或企业应用

如何选择合适的hadoop版本进行学习或企业应用:等您坐沙发呢!

发表评论




------====== 本站公告 ======------
欢迎关注我的博客。

其他