審查“大數據”時代的PaaS狀態
諸如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大數據分析服務。