简介编辑本段回目录
云编程揭秘 云计算变革重要力量编辑本段回目录
最新出版的MIT技术评论5/6月合刊登出了MIT评出的2010年度十大新兴技术,其中IT领域的发明占有重要的位置,大家一定注意到其中一项是云编程(Cloud Programing)而不是云计算(Cloud computing)。云计算作为一项巨大的平台变革,吸引了包括电信运营商,互联网提供商等多方利益体的角逐,但开发者在云计算时代的作用及前景却不很清晰,难道程序员的工作就只限于转换现有的程序到云平台上吗?
Joseph Hellerstein想让云编程达到一个新的高度
MIT技术评论选择云编程作为2010年度十大新兴技术之一定有其深意,CSDN也将持续跟踪这一主题,以下是MIT技术评论2010年度十大新兴技术专题中对云编程的报道。
导读:面向云计算的新型编程语言的推出是否能解放程序员的成产力,令程序员成为云计算变革中的重要力量呢?
看到Google、Amazon等公司所拥有的超大数据中心,人们都不会怀疑云计算提供了虚拟化技术展示其巨大的处理和储存能力的舞台,但在这个巨大的变革中,程序员群体该如何最大效果发挥自己的能量呢?
今天,许多程序员在做的是转换现有程序使其能在云上运行,而不是创造出一种可以在任何地方运行的新程序类型。于是他们面临着这样的难题——如何跟踪和稳定地获得云中的数据和信息。只有这一问题得以解决,程序员才能真正开始利用云计算所展示出的无尽的可能性。例如,云应用可以使在线音乐销售商随时了解流行音乐的情况;如果一个歌手突然成为热门话题,他可以迅速自己网站中的广告和特惠服务来迎合顾客的需求。
在加利福尼亚大学伯克利分校区,Joseph Hellerstein认为他可以开发一种软件来接管跟踪和获取云中数据的工作,这样就降低了程序员开发复杂云计算程序的难度。他的出发点是修改现有的数据库编程语言,使开发者能快速建立各种运行在云中的应用——社交网络、通讯工具、游戏等。近年来,不断改进用于隐藏对大规模数据的复杂操作的数据库编程语言已经出现,但如果这些语言能融入云计算的特性,那么程序员们就可以专心于业务的实现而不是纠结于对数据的微操作。
然而这些语言的问题在于他们处理的是静态数据( data in static batches),不能够对不断变动(例如读取自监控网络的)数据进行处理。Hellerstein提出的解决之道是新型编程语言中引入动态数据的概念(动态数据允许在对其进行操作时变动),这样程序就可以监控即将到达的数据(或者永远不会到达)。
这种新型语言叫做“Bloom”。现在,Hellerstein的团队已经在使用这种语言,并不断的对Bloom进行重构,添加一些重要的特性确保对主流云计算工具和框架技术的支持,例如分布式计算平台Hadoop。通过降低实现难度,该语言将吸引更多的程序员投入云编程,更多的新型云应用也将不断涌现。
Hellerstein的团队将在2010年下半年推出Bloom语言,目前他们正在对该技术运行在实时应用(例如在线多人游戏、灾难监控)上的效果进行论证。
数据分析的平民化编辑本段回目录
大数据是“O'Reilly Radar”的一个主题,我们有幸请来了客座博客作者Joe Hellerstein,UC Berkeley的计算机教授,主要研究数据库和分布式系统。Joe曾就此话题撰写过详细的白皮书。
一场关于进行大规模数据分析的最佳方法的辩论正在数据系统进行着。企业阵容的保守派青睐于关系数据库和SQL语言,然而互联网阵容则集中与MapReduce的开发模式 (流行于Google, Apache Hadoop实现开源克隆)。Hadoop被广泛用于Yahoo!和Facebook这样的公司,作为下一代重大开源项目,hadoop受到技术博客的关注。但是Hadoop在企业级几乎不被人知——SQL语言充斥着这些领域。他们和开发者社区有着惊人的代沟。我希望这种情况在未来一两年内发生改变。
我们正处在“数据革命”的开端。实际上我们还未实现这个革命,因为大量的数字信息还手工产生的:网页的文章,表格填写的数据,上传的视频和音乐。但是我们开始看到像software logs, UPC(通用产品代码) scanners, RFID, GPS transceivers, video and audio feeds这 样的自动生成数据的兴起。自动化生成的数据数量很快就会使世界上的内容作者们的作品集合相形见绌。与此同时,硬盘容量成指数级增长,因此存储这些数据的成 本越来越低。很多理由显示出,这些数据的价值在于其制式的多样性。这场革命的最后一步将是数据分析软件的平民化,他们将服务于更广泛的用户。
让我们看一下当今的高端数据分析软件。尽管有着不同的解决方案,他们有着共同的并行处理数据流的核心技术。磁盘阵列被组织在一起,通过高速网络将数据送入CPU集群来处理文本和数字。几十年来,像Teradata这样的高端关系数据库系统一直使用这种方法,最近几年像Google和Yahoo!这样的公司已经准备好了新型工具将这一过程扩展至前所未有的境界。
对于这两种并行处理海量数据的方法,近几个月已经有着不少吹鼓和交锋。废话不说,两种技术可归纳为如下:
关系数据库
多目的:用于数据分析、数据编辑、批量互动任务
通过“ACID transactions”机制实现高度数据完整
大量兼容工具用于加载、管理、报告、数据图形化和信息挖掘
支持SQL语言——用于数据分析最广泛的语言
SOL语言自动优化从根本上提升性能
通过连接协议、映射层和用户定义函数,将SQL和熟悉的编程语言集成
MapReduce (Hadoop)
为大型集群设计(超过1000台计算机)
极高的稳定性,长时间保持高效运行,即使个别机器宕机
数据以“原始格式”存储于文件系统,加载时无需将数据转换成表
没有专用的查询语言,开发者熟悉Java、Python或Perl
开发者决定性能而非查询语句优化
Hadoop开源项目基于企业赞助,随时间成熟,就像Linux和Apache
以上大致总结了双方优点。双方大多数评论均则暗指对方自吹自擂。双方论点均未被各自的关键人物加强。Hadoop相对年轻,多数报道称其慢于Google的MapReduce系统且梗消耗资源。与此同时,很多人将高端关系数据库等同于Oracle——以价高难管理而闻名,且不能像其他高端竞争者那样再平民PC上跑。业界无人小视这场争论,最保险的预测是“未来将很快发生改变”。SQL和MapReduce之间的界限已经变得模糊。Greenplum和Aster Data两家初创的数据库公司分别推出了集成了SQL语言引擎和MapReduce的大规模并行系统。双方以不同的MapReduce的特性为卖点:Greenplum支持文件系统访问并且去掉了SQL的需求;Aster则强调他们的稳定性和扩展性。同时Facebook的开源项目HIVE在Hadoop之上提供了类似于SQL的开发语言层。IBM和Microsoft也介入了这个领域,或进化出产品,或倡导开源。
路在何方?短期之内,热闹的市场将比过去十年里传统的数据库厂商以更快的速度推动新的变革。Hadoop的技术优势并非天生难于复制于关系数据库引擎。主要的挑战将是“管理数据库用户在为数据统一性和稳定性折中时的预期”。 Greenplum和Aster无疑将更大的数据库公司向前推了一步,无怪乎更多的坚定的数据库公司今年发布了相关的产品。
长远看来,如果MapReduce成为数据分析重要的开发接口,将会需要标准化的开发接口为他的广泛应用铺平道路。另外,MapReduce过于底层以至于限制了它的广泛应用,因此像Hive、Yahoo的PIG这样封装进高层查询语言也同样的需要标准化。
这些将如何推动以数据为中心的web service和云计算是一个有趣的问题。用户是否会将大量的私有信息放入“云”中?他们如何将petabytes及数据传输部署到主机上?已知大规模数据分析需要的计算机数量,SP商提供怎样的网络接入才划算?现阶段还无人能准确回答.
另外,Hadoop作为并行开发的入门,已成为的教育者们热衷的对象。Berkeley每个主修计算机的学生都将在至少一门课上编写Hadoop程序。其他一流大学也有类似课程。与此同时,主流语言(SQL是其中最好的例子)在计算机科学研究中正在经历一场复兴(此话另说)。因此,随着市场的变革,此类技术的相关产品将从源头得到丰富,并预示着未来几年的变化。
相关链接编辑本段回目录
参考文献编辑本段回目录
http://en.wikipedia.org/wiki/Joseph_M._Hellerstein