诸如Amazon公司、Google公司、Heroku、IBM公司以及微软公司等主要的PaaS厂商将今年定为云计算的“大数据”之年一事已得到了大肆宣传。但是,实际上在公共云计算中又是哪一家供应商提供了最为完整的Apache Hadoop实施呢?
随着企业越来越多地采用平台即服务(PaaS)云计算模式作为企业的数据仓库应用解决方案,Apache Hadoop以及HDFS、MapReduce、Hive、Pig与其他的子组件正在成为大数据分析的主力军,这一趋势也变得逐渐明朗化。为了表明Hadoop已经成熟并已可用于生产分析云计算环境的商用化应用,Apache Foundation已升级至具有里程碑性质的Hadoop v1.0版本。
在供应商的数据中心为批处理托管MapReduce处理创建高扩展性、即付即用Hadoop集群的能力可允许企业IT部门避免因内部自有服务器的零星使用而造成的资本支出。其结果就是,Hadoop已成为财大气粗PaaS供应商们(Amazon、Google、IBM和微软)的必需品,以打包Hadoop、MapReduce或这两者作为其预建服务。
AWS的弹性MapReduce
2009年四月Amazon网络服务(AWS)成为了弹性MapReduce(EMR)的始作俑者。EMR处理Hadoop集群配置、运行和终止任务以及在Amazon EC2和Amason S3(简单存储服务)之间实现数据传输。EMR还提供了Apache Hive,它可建立在Hadoop之上以用于数据仓库服务。
图1
Amazon网络服务的弹性MapReduce功能,对CloudWatch工作的工作流指标进行采样。(图片由AWS提供)
对于从机故障,EMR是有故障容错机制的;Amazon建议以Spot Instances只运行任务实例组,从而实现在利用更低成本优势的同时仍然保持可用性。但是,在2011年八月之前AWS并不支持Spot Instances。
Amazon为EMR定出了每小时0.015至0.05美元的附加费标准,并将其作为小型云主机至超强集群云主机EC2实例的额定值。根据AWS的官方说法:一旦你开始了工作流,Amazon弹性MapReduce就处理Amazon EC2的实例配置、安全设置、Hadoop配置以及设置、日志收集、健康监控以及其他与硬件相关的复杂性,例如从你正在运行的工作流中自动移除故障实例。AWS于近期为EMR实例发布了免费CloudWatch指标。(图1)
Google公司的AppEngine-MapReduce
根据Google公司开发人员Mike Aizatskyi的说法,所有Google团队都在使用于2004年首次推出的MapReduce。Google公司发布了一个作为“MapReduce API的早期实验性发布版本”的AppEngine-MapReduce API以支持在Google App Engine上运行Hadoop 0.20程序。之后,该开发团队于2011年三月发布了低层次API v1.4.3版,以便于为Blob和改进开源用户空间Shuffler功能的中间结果提供一个类文件的系统(图2)。
图2
Google AppEngine-MapReduce的Shuffle在一个I/O 2012会话中进行处理。
Google AppEngine-MapReduce API通过一个Google Pipeline API精心安排Map、Shuffle和Reduce操作。在一段视频短片中该公司为I/O 2012介绍了AppEngine-MapReduce的目前状态。但是,直至2012年春季Google公司还没有改变对其“早期实验性发布版本”的描述。AppEngine-MapReduce的主要目标对象是Java和Python程序员,而不是大数据科学家和分析专家。Shuffler受限于约100MB的数据集,很明显这不属于大数据应用的范畴。对于更大的数据集,你可以请求访问Google的BigShuffler。
Heroku的Treasure Data Hadoop附件
Heroku的Treasure Data Hadoop附件可使开发运行人员使用Hadoop和Hive来分析托管应用程序的日志和事件,这是该技术的主要功能之一。其他的Heroku大数据附件包括Cloudant的Apache CouchBase实施、源自于 MongoLab 和 MongoHQ的MongoDB、Redis To Go、Neo4j (Java图形数据库的公共版本)以及RESTful指标。被称为“.NET Heroku”的AppHarbor提供了类似的附件选择,其中包括了Cloudant、MongoLab、MongoHQ 和 Redis To Go,再加上RavenHQ NoSQL 数据库加载项。Heroku和AppHarbor都不支持通用Hadoop实施。
SmartCloud中的IBM Apache Hadoop
IBM公司于2011年十月开始以IBM SmartCloud企业版中InfoSphere BigInsights Basic的形式提供基于Hadoop的数据分析。可管理多达10TB数据的BigInsights Basic还有可用于Linux系统的免费下载版本;BigInsights企业版是一个收费的下载版本。这两个下载版本都提供了Apache Hadoop、HDFS、MapReduce框架,以及一整套的Hadoop子项目。可下载企业版包括了一个可用于编写文本分析、类似电子表格的数据发现与挖掘工具、以及JDBC连接至Netezza和DB2的基于Eclipse插件。两个版本都提供了集成的安装与管理工具(图3)。
图3
IBM的大数据平台和使用界面。(图片由IBM提供)
我的测试——驱动IBM的SmartCloud企业基础设施作为服务:第一部分和第二部分的教程介绍了于2011年四月发布的SmartCloud企业免费试用版的管理功能。从IBM的技术出版物来看,目前还不清楚公共云计算中可下载BigInsight版中可提供些什么功能。他们的云计算:IT专业人士社区资源页面中只列出了一个BigInsights Basic 1.1:Hadoop Master 和数据节点镜像;一个IBM公司的代表证实,SmartCloud版并不包括MapReduce或其他的Hadoop子项目。Hadoop提供的SmartCloud教程解释了如何在SmartCloud企业版中配置和测试一个三节点的集群。由此可见,IBM当前的BigInsights云计算版本正在错失数据分析中的关键元素。
微软公司Windows Azure的Apache Hadoop
微软公司聘请了Hortonworks(一个专门提供Hadoop咨询的Yahoo! Spinoff)以帮助实施Windows Azure的Apache Hadoop或Azure的Hadoop(HoA)。自2011年12月14日以来,HoA已进入只接受邀请加入的社区技术预演阶段(CTP或私人测试)。
在加入Hadoop的行列之前,微软公司依靠由微软研究院开发的图形数据库Dryad和一个高性能计算附件(LINQ至HPC)来进行大数据分析处理。Azure CTP的Hadoop提供了一个从小型(有4TB存储容量的四计算节点)到超大(16TB的32节点)的预定义Hadoop集群选择,简化了MapReduce操作。加入CTP预发布计算节点或存储是不收取费用的。
图4
微软公司提供了四个Hadoop/MapReduce项目示例:计算圆周率л的值、执行Terasort和WordCount基准,以及演示如何使用C#语言编写一个供流数据使用的MapReduce程序。
微软公司还提供了新的JavaScript运行库以便于使JavaScript成为Hadoop的一流编程语言。这意味着JavaScript程序员可以使用JavaScript编写MapReduce程序,并从网络浏览器运行这些任务程序,从而减少Hadoop/MapReduce条目的障碍。CTP还包括了一个用于Excel的Hive附件,它可让用户与Hadoop中的数据进行交互。用户可以从附件发出Hive查询以便于在熟悉的Excel用户界面中分析Hadoop的非结构化数据。预览版还包括了一个Hive ODBC驱动器,它可实现Hadoop与其他微软商业智能工具的集成。在近期关于Windows Azure的Apache Hadoop服务帖子中,我解释了如何运行Terasort基准,即四个MapReduce任务示例之一(图4)。
HoA本应计划在2012年中Windows Azure“春潮”中实现新功能和改进功能的升级。此次升级将使HoA团队为CTP吸引更多的测试人员,并可能包括内部或私有云计算以及混合云计算实施所使用Windows Server 2008 R2的Apache Hadoop。在2011年底和2012年初,微软公司一直在积极努力以降低Windows Azure计算实例和存储的费用;与Amazon弹性MapReduce相比,Azure发布版本的Hadoop定价可能也具有一定的竞争力。
大数据对Hadoop和MapReduce意味着更多
我同意Forrester Research的分析师James Kobielus在博客中发表的博文,“在大数据的世界中,Hadoop/MapReduce将是一个关键的发展框架,但并不是唯一的一个。”微软公司还为.NET框架提供了代号为“Cloud Numerics”的CTP,它允许开发运行团队在Windows Azure中对大型分布式数据集执行数字密集型计算。
微软研究院还公布了在Windows Azure中实施Excel云计算数据分析及其“Daytona”项目MapReduce迭代实施的源代码。但是有迹象表明,在可预见的未来,开源Apache Hadoop及其相关子项目将主宰云计算托管应用。
提供最自动化Hadoop、MapReduce和Hive实施的PaaS供应商将获得大数据科学家和数据分析从业者最密切的关注。微软公司专为商业智能(BI)应用配置Excel前端,使该公司的大数据产品在日益增长自助服务BI用户中游刃有余。目前,Amazon和微软公司提供了最完整和自动化的云计算Hadoop大数据分析服务。