【51CTO 4月19日外电头条】 今年已经被认为是云计算时代的“大数据”元年,各大平台即服务(PaaS)提供商备受媒体的关注,比如亚马逊、谷歌、Heroku、IBM和微软。但是哪些提供商在公共云领域真正提供最全面的Apache Hadoop实现方案?
这一点很显然:由于许多企业日益采用平台即服务(PaaS)云模式用于企业数据仓库,Apache Hadoop以及Hadoop分布式文件系统(HDFS)、MapReduce、Hive、Pig及其他子组件日益受到追捧,用于大数据分析环境。Apache基金会将Hadoop升级到了版本1.0,这表明Hadoop已日趋成熟,准备好用于生产型分析云环境。
能够借助托管型的MapReduce处理技术,在提供商的数据中心为批处理任务建立高可扩展性的、按需支付的Hadoop集群,这让企业的IT部门得以避免为零星使用的预置型(on-premise)服务器投入资本开支。因而,Hadoop对亚马逊、谷歌、IBM和微软等财力雄厚的PaaS提供商来说已成为标准,以便将Hadoop、MapReduce或两者封装成预制服务。
AWS弹性MapReduce
亚马逊网络服务公司(AWS)在2009年4月第一个推出了弹性MapReduce(EMR)。EMR可处理Hadoop集群配置,运行和终止任务,并且在亚马逊弹性计算云(EC2)和亚马逊简单存储服务(S3)之间传送数据。EMR还提供Apache Hive,它基于Hadoop,面向数据仓库服务。
图1:面向亚马逊网络服务公司弹性MapReduce特性的CloudWatch任务工作流度量标准示例。
EMR提供了容错机制,防止从属系统出现故障;亚马逊建议在现货实例(spot instance)上只运行任务实例组(Task Instance Group),以便充分利用较低的成本,同时仍维持可用性。不过,AWS直到2011年8月才添加了支持现货实例的功能。
亚马逊就EMR向小集群到超大集群的EC2实例收取每小时0.015美元到每小时0.50美元的额外费。据AWS声称,一旦你开启了作业流程,亚马逊弹性MapReduce就处理亚马逊EC2实例配置、安全设置、Hadoop配置和设置、日志收集、运行状况监控及其他与硬件有关的复杂任务,比如自动从运行中的作业流程中移除有故障的实例。AWS最近宣布了为EMR实例提供免费的CloudWatch度量标准(见图1)。
谷歌应用引擎-MapReduce
据谷歌的开发人员Mike Aizatskyi声称,谷歌的所有团队都使用MapReduce,谷歌早在2004年就引入了MapReduce。谷歌发布了一套应用引擎-MapReduce 应用编程接口(API),这是“MapReduce API的早期试验版”,旨在支持在谷歌应用引擎上运行的Hadoop 0.20程序。谷歌团队后来在2011年3月发布了低级文件API v1.4.3,为采用Blobs存储的中间结果提供了一种类似文件的系统,还提供了经过改进的开源用户空间Shuffler功能(见图2)。
图2:在I/O 2012大会上演示的谷歌应用引擎-MapReduce的Shuffle过程。
谷歌应用引擎-MapReduce API通过谷歌Pipeline API来协调Map、Shuffle和Reduce等操作。该公司在2012年I/O大会上的视频演讲中描述了应用引擎-MapReduce的现状。不过直到2012年春天,谷歌都没有改变其“早期试验版”这一描述。应用引擎-MapReduce面向Java和Python编程人员,而不是面向大数据科学家和分析专业人员。Shuffler只能处理最大约100MB的数据集,这样的数据称不上是大数据。你可以请求使用谷歌的BigShuffler,以处理更庞大的数据集。
Heroku Treasure Data Hadoop附件
Heroku的Treasure Data Hadoop附件让开发和运营(DevOps)员工能够使用Hadoop和Hive,分析托管型应用日志和事件,这是这项技术的主要功能之一。其他Heroku大数据附件包括:实现了Apache CouchBase的Cloudant系统、来自MongoLab的MongoDB、MongoHQ、Redis To Go、Neo4j(面向Java的图形数据库的公共测试版)以及RESTful Metrics。AppHarbor被一些人称为是“面向.NET的Heroku”,它提供了一系列类似的附件,使用了Cloudant、MongoLab、MongoHQ和Redis To Go,外加RavenHQ NoSQL数据库附件。Heroku和AppHarbor都不托管通用的Hadoop实现系统。
智慧云中的IBM Apache Hadoop
IBM在2011年10月就开始提供基于Hadoop的数据分析产品,具体表现为基于IBM企业智慧云(IBM SmartCloud Enterprise)的InfoSphere BigInsights Basic。BigInsights Basic最多可以管理10TB的数据,它还提供面向Linux系统的免费下载版;BigInsights Enterprise是一款收费的下载版。这两个可以下载的版本都提供了Apache Hadoop、HDFS和MapReduce框架,另外提供了一整套Hadoop子项目。可下载的企业版包括基于Eclipse的插件,该插件用于编写基于文本的分析工具、类似电子表格的数据发现和探究工具,还可用于编写JDBC与Netezza和DB2实现连接的代码。这两个版本都提供了集成的安装和管理工具(见图3)。
图3:IBM的大数据平台和愿景。
我之前通过分为上下两部分的教程,试用了IBM的企业智慧云基础架构即服务,里面描述了2011年春天提供的一款免费的企业智慧云试用版具有的管理功能。IBM的技术资料没有明确地表明可下载的BigInsight版本在公共云中提供什么样的功能特性。面向IT专业人员的云计算:社区服务页面(http://www.ibm.com/developerworks/cloud/devtest.html)只列出了一个BigInsights Basic 1.1:Hadoop主节点和数据节点(http://www.ibm.com/developerworks/downloads/im/biginsights/)软件镜像;一位IBM代表证实了智慧云版本不包括MapReduce或其他Hadoop子项目。智慧云版Hadoop方面的现有教程解释了如何配置和测试企业智慧云上由3个节点组成的集群。IBM现有的BigInsights云版本似乎缺少数据分析方面的一些关键组件。
基于Windows Azure的微软Apache Hadoop
微软请来从雅虎分立出来的、专门提供Hadoop咨询服务的Hortonworks公司,帮助自己在Windows Azure上实现Apache Hadoop,即Hadoop on Azure(HoA)。自2011年12月14日以来,HoA就处于凭邀请才能试用的社区技术预览版(CTP或邀请测试版)阶段。
微软在搭上Hadoop这股潮流之前,依赖由微软研究中心开发的图形数据库Dryad以及高性能计算附件(LINQ to HPC)来处理大数据分析任务。Hadoop on Azure CTP让用户可以选择预先定义的Hadoop集群,这些集群从小集群(4个计算节点,存储容量为4TB)到超大集群(32个节点,存储容量为16TB)不等,从而简化了MapReduce操作。可以免费加入CTP,获取预览版计算节点或存储容量。
图4:微软提供了四个示例的Hadoop/MapReduce项目:计算圆周率、执行Terasort和WordCount基准测试,以及演示如何使用C#来编写一款用于流传送数据的MapReduce程序。
微软还提供了新的JavaScript库,借助Hadoop,让JavaScript成为一门一流的编程语言。这意味着,JavaScript编程人员可以用JavaScript来编写MapReduce程序,并且从Web浏览器中运行这些任务,这降低了Hadoop/MapReduce的准入门槛。CTP还包含一个面向Excel的Hive附件,让用户可以用Hadoop来处理数据。用户可以通过附件发布Hive查询,在Excel用户熟悉的界面中分析来自Hadoop的非结构化数据。预览版还包括一个Hive ODBC驱动程序,将Hadoop与微软的其他商业智能工具集成起来。最近我在Apache Hadoop Services for Windows Azure(http://oakleafblog.blogspot.com/2012/01/introducing-apache-hadoop-services-for.html)上写了一篇博文,里面解释了如何运行Terasort基准测试,这是四项示例的MapReduce任务之一(见图4)。
定于2012年年中面向Windows Azure推出新的、经过改良的功能特性,到时HoA会有相应的升级。该升级将让HoA团队能够准许更多的测试人员试用CTP,可能还包括一个原先承诺的Apache Hadoop on Windows Server 2008 R2,面向实施预置型云或私有云和混合云。微软还在2011年年底2012年年初积极下调了Windows Azure计算实例和存储服务的费用。Hadoop on Azure发行版的价格与亚马逊弹性MapReduce相比将颇有竞争力。
说到大数据,不是只有Hadoop和MapReduce
我同意弗雷斯特调研公司分析师James Kobielus的观点,他写过一篇博文,主题思想是“在大数据领域里面,Hadoop/MapReduce将是一种关键的开发框架,但不是唯一的开发框架。”微软还为.NET框架提供了代号为“Cloud Numerics”的CTP,这让开发和运营团队得以在Windows Azure中,针对大型分布式数据集执行数字密集型的计算。
微软研究中心发布了源代码,用于使用Daytona项目的MapReduce迭代实现机制,在Windows Azure中实施Excel云数据分析技术。不过,开源Apache Hadoop及相关子项目似乎会在可预测的将来主导云托管领域。
提供自动化化程度最高的Hadoop、MapReduce和Hive实现机制的PaaS提供商会最受大数据科学家和数据分析从业人员的支持和追捧。微软为商业智能应用软件提供了Excel前端,这让该公司的大数据解决方案在越来越多的自助服务式商业智能用户当中占有先机。亚马逊和微软目前提供最全面、自动化程度最高的基于云的Hadoop大数据分析服务。
原文链接:http://searchcloudcomputing.techtarget.com/tip/Examining-the-state-of-PaaS-in-the-year-of-big-data