最近各大巨头在云计算方面的投资都非常活跃,从云平台的管理、海量数据分析,到各种新兴的面向消费者的云平台和云服务,各个领域都呈现遍地开花的形式。而以Hadoop为代表的大规模数据处理(BigData Processing)技术的日趋成熟使得“业务为王”向“数据为王”转变。Hadoop社区的繁荣有目共睹。越来越多的国内外公司参与到Hadoop社区开发,或者直接将线上使用的软件开源。
当年与Google还是处在强烈竞争关系的Yahoo!于是招了Doug(Hadoop创始人)进来,把Google老大赖以生存的DFS与Map-Reduce开源了,开始了Hadoop的童年时期。差不多在2008年的时候,Hadoop才算逐渐成熟。从初创到现在,Hadoop经过了至少7年的积累,现在的Hadoop不仅是当年的老二Yahoo的专用产品了,从Hadoop长的用户名单中,可以看到Facebook、Linkedin、Amazon,可以看到EMC、eBay、Twitter、IBM、Microsoft,、Apple、HP...国内的公司有淘宝、百度等等。
不仅如此,最新消息显示连微软这个软件巨头也在近日向Hadoop敞开了怀抱。在10月12日的西雅图举行的SQL PASS 2011峰会上,微软宣布将于从雅虎分拆出来的Hortonworks合作开发,在Apache Hadoop上实现搭建Windows Server以及Windows Azure平台。Hortonworks作为微软的战略合作伙伴将会借助自己在此领域的专长帮助最大化将Hadoop集成到微软的产品之中。
微软表示预计在今年年底可推出基于Hadoop的Windows Azure预览版,而基于Hadoop的Windows Server将在在2012年推出。基于Hadoop的Windows Server还会与微软现有的BI工具联合处理任务。同时微软官方还证实了SQL Server “Denali”将被正式命名为SQL Server 2012。同时微软还将加大对JavaScript语言的投入,微软将使用JavaScript实现高性能的Map/Reduce。微软承诺将紧密与Hadoop社区合作并积极为Apache软件基金会的项目作出自身的贡献。
微软商业平台事业部高级副总裁Ted Kummert在一份声明中表示此举将帮助微软的客户更好的管理自己的大数据。越来越多的公司正在寻找收集和分析非结构化数据以帮助自身洞察业务的方法。但迄今为止,由于传统关系数据库主要是为处理结构化数据而设计的,其自身固有的特性导致可扩展性不佳。而Hadoop作为一个开源框架对大数据的支持正日益吸引IT主管的目光,Hadoop非常适合处理非结构化数据,如电子邮件内的内容、博客、点击带来的流数据、音频及视频等数据。
当然其他巨头也不甘落后,纷纷有所行动。甲骨文也在最近推出了基于Hadoop的大数据设备以及甲骨文自己的NoSQL数据库和基于开源语言R的分布式数据统计分析系统。就在几天前IBM宣布将收购私营的系统软件公司Platform Computing。此举可帮助IBM将更好地为客户提供服务,帮助它们以更适当的方式管理并分析大规模数据,降低成本和系统复杂度。
提到甲骨文在Hadoop上的最新动向,就不能不说到R语言。R语言作为开源的数据统计分析语言正潜移默化的在企业中扩大自己的影响力。特有的扩展插件可提供免费扩展,并且允许R语言引擎运行在Hadoop集群之上。
R语言是主要用于统计分析、绘图的语言和操作环境。R本来是由来自新西兰奥克兰大学的Ross Ihaka和Robert Gentleman开发。(也因此称为R)现在由“R开发核心团队”负责开发。R是基于S语言的一个GNU项目,所以也可以当作S语言的一种实现,通常用 S语言编写的代码都可以不作修改的在R环境下运行。R的语法是来自Scheme。
现在,统计工作者可利用R语言,R语言擅长在Hadoop分布式文件系统中存储的非结构化数据的分析。R现在还可以运行在HBase这种非关系型的数据库以及面向列的分布式数据存储之上。其主要模仿了Google的BigTable。这基本上等同于使用Hadoop来持有结构化数据的数据库。就像 Apache软件基金会Hadoop项目的子项目HBase一样。
Revolution Analytics公司提供对开源R语言的商用软件扩充以及支援,这使得让统计分析师及科学家能够在短暂的时间内从大量的重要资料中发现有意义的资讯。 Revolution Analytics公司首席技术官David Champagne表示R引擎可部署在Hadoop集群中的每个节点上面。你可以在部署了R的工作组中设置R算法,而不是在Java编程中减少算法。它可解析Hadoop映射函数的节点,同时可并行的统计分析存储在HDFS的数据。
另外,开源的操作系统Ubuntu 11.10服务器版本开始支持Juju(先前代号为Ensemble)预案,该预案提供30多种云端应用程序的自动部署功能,支持MySQL、Tomcat 6与Hadoop等,协助企业加快大规模部署云端应用的程序。
以Hadoop部署为例,IT人员先前必须安装Java程序,透过Java程序安装Hadoop程序,接着设定服务器之间的集群关系。现在IT人员可在11.10版安装Juju程序,只要在命令列输入几项指令就能自动安装Java与Hadoop程序,并建立Hadoop运算集群,让企业能快速建设Hadoop应用。未来IT人员若要扩充集群,只要透过Juju输入指令,就能将新的服务器纳入Hadoop系统。
Twitter也在近期推出了开源实时Hadoop计算系统。这是一个分布式的、容错的实时计算系统,它被托管在GitHub上,遵循 Eclipse Public License 1.0。Storm是由BackType开发的实时处理系统,BackType现在已在Twitter麾下。GitHub上的最新版本是Storm 0.5.2,基本是用Clojure写的。
Storm为分布式实时计算提供了一组通用原语,可被用于“流处理”之中,实时处理消息并更新数据库。这是管理队列及工作者集群的另一种方式。Storm也可被用于“连续计算”(continuous computation),对数据流做连续查询,在计算时就将结果以流的形式输出给用户。它还可被用于“分布式RPC”,以并行的方式运行昂贵的运算。Storm的主工程师Nathan Marz表示:Storm可以方便地在一个计算机集群中编写与扩展复杂的实时计算,Storm之于实时处理,就好比Hadoop之于批处理。Storm保证每个消息都会得到处理,而且它很快——在一个小集群中,每秒可以处理数以百万计的消息。更棒的是你可以使用任意编程语言来做开发。