如何挑选合适的大数据或Hadoop平台?

发表于:2013-10-21来源:InfoQ作者:Kai Wähner点击数: 标签:大数据
如何挑选合适的大数据或Hadoop平台?.今年,大数据在很多公司都成为相关话题。虽然没有一个标准的定义来解释何为 “大数据”,但在处理大数据上,Hadoop已经成为事实上的标准。IBM、Oracle、SAP、甚至Microsoft等几乎所有的大型软件提供商都采用了Hadoop。然而,当你已经

  今年,大数据在很多公司都成为相关话题。虽然没有一个标准的定义来解释何为 “大数据”,但在处理大数据上,Hadoop已经成为事实上的标准。IBM、Oracle、SAP、甚至Microsoft等几乎所有的大型软件提供商都采用了Hadoop。然而,当你已经决定要使用Hadoop来处理大数据时,首先碰到的问题就是如何开始以及选择哪一种产品。你有多种选择来安装Hadoop的一个版本并实现大数据处理。本文讨论了不同的选择,并推荐了每种选择的适用场合。

  Hadoop平台的多种选择

  下图展示了Hadoop平台的多种选择。你可以只安装Apache 发布版本,或从不同提供商所提供的几个发行版本中选择一个,或决定使用某个大数据套件。每个发行版本都包含有Apache Hadoop,而几乎每个大数据套件都包含或使用了一个发行版本,理解这一点是很重要的。

  下面我们首先从Apache Hadoop开始来好好看看每种选择。

  Apache Hadoop

  Apache Hadoop项目的目前版本(2.0版)含有以下模块:

  Hadoop通用模块:支持其他Hadoop模块的通用工具集。

  Hadoop分布式文件系统(HDFS):支持对应用数据高吞吐量访问的分布式文件系统。

  Hadoop YARN:用于作业调度和集群资源管理的框架。

  Hadoop MapReduce:基于YARN的大数据并行处理系统。

  在本地系统上独立安装Apache Hadoop是非常容易的(只需解压缩并设置某些环境变量,然后就可以开始使用了)。但是这只合适于入门和做一些基本的教程学习。

  如果你想在一个或多个“真正的节点”上安装Apache Hadoop,那就复杂多了。

  问题1:复杂的集群设置

  你可以使用伪分布式模式在单个节点上模拟多节点的安装。你可以在单台服务器上模拟在多台不同服务器上的安装。就算是在该模式下,你也要做大量的配置工作。如果你想设置一个由几个节点组成的集群,毫无疑问,该过程就变得更为复杂了。要是你是一个新手管理员,那么你就不得不在用户权限、访问权限等诸如此类的问题中痛苦挣扎。

  问题2: Hadoop生态系统的使用

  在Apache中,所有项目之间都是相互独立的。这是很好的一点!不过Hadoop生态系统除了包含Hadoop外,还包含了很多其他Apache项目:

  Pig:分析大数据集的一个平台,该平台由一种表达数据分析程序的高级语言和对这些程序进行评估的基础设施一起组成。

  Hive:用于Hadoop的一个数据仓库系统,它提供了类似于SQL的查询语言,通过使用该语言,可以方便地进行数据汇总,特定查询以及分析存放在Hadoop兼容文件系统中的大数据。

  Hbase:一种分布的、可伸缩的、大数据储存库,支持随机、实时读/写访问。

  Sqoop:为高效传输批量数据而设计的一种工具,其用于Apache Hadoop和结构化数据储存库如关系数据库之间的数据传输。

  Flume:一种分布式的、可靠的、可用的服务,其用于高效地搜集、汇总、移动大量日志数据。

  ZooKeeper:一种集中服务,其用于维护配置信息,命名,提供分布式同步,以及提供分组服务。

  还有其他一些项目。

  你需要安装这些项目,并手动地将它们集成到Hadoop中。

  你需要自己留意不同的版本和发布版本。不幸的是,不是所有的版本都能在一起完美地运行起来。你要自己比较发布说明并找出解决之道。Hadoop提供了众多的不同版本、分支、特性等等。跟你从其他项目了解的1.0、1.1、2.0这些版本号不同,Hadoop的版本可远没这么简单。如果你想更进一步了解关于“Hadoop版本地狱”的细节,请阅读“大象的家谱(Genealogy of elephants)”一文。

  问题3:商业支持

  Apache Hadoop只是一个开源项目。这当然有很多益处。你可以访问和更改源码。实际上有些公司使用并扩展了基础代码,还添加了新的特性。很多讨论、文章、博客和邮件列表中都提供了大量信息。

  然而,真正的问题是如何获取像Apache Hadoop这样的开源项目的商业支持。公司通常只是为自己的产品提供支持,而不会为开源项目提供支持(不光是Hadoop项目,所有开源项目都面临这样的问题)。

  何时使用Apache Hadoop

  由于在本地系统上,只需10分钟左右就可完成其独立安装,所以Apache Hadoop很适合于第一次尝试。你可以试试WordCount示例(这是Hadoop的“hello world”示例),并浏览部分MapReduce的Java代码 。

  如果你并不想使用一个“真正的”Hadoop发行版本(请看下一节)的话,那么选择Apache Hadoop也是正确的。然而,我没有理由不去使用Hadoop的一个发行版本——因为它们也有免费的、非商业版。

  所以,对于真正的Hadoop项目来说,我强烈推荐使用一个Hadoop的发行版本来代替Apache Hadoop。下一节将会说明这种选择的优点。

  Hadoop发行版本

  Hadoop发行版本解决了在上一节中所提到的问题。发行版本提供商的商业模型百分之百地依赖于自己的发行版本。他们提供打包、工具和商业支持。而这些不仅极大地简化了开发,而且也极大地简化了操作。

  Hadoop发行版本将Hadoop生态系统所包含的不同项目打包在一起。这就确保了所有使用到的版本都可以顺当地在一起工作。发行版本会定期发布,它包含了不同项目的版本更新。

  发行版本的提供商在打包之上还提供了用于部署、管理和监控Hadoop集群的图形化工具。采用这种方式,可以更容易地设置、管理和监控复杂集群。节省了大量工作。

  正如上节所提到的,获取普通Apache Hadoop项目的商业支持是很艰难的,而提供商却为自己的Hadoop发行版本提供了商业支持。

  Hadoop发行版本提供商

  目前,除了Apache Hadoop外, HortonWorks、Cloudera和MapR三驾马车在发布版本上差不多齐头并进。虽然,在此期间也出现了其他的Hadoop发行版本。比如EMC公司的Pivotal HD、IBM的InfoSphere BigInsights。通过Amazon Elastic MapReduce(EMR),Amazon甚至在其云上提供了一个托管的、预配置的解决方案。

原文转自:http://www.infoq.com/cn/articles/BigDataPlatform