string,column:
string,time:
int64>->string。
BigTable的基本元素是:
行,列,记录板和时间戳。
其中,记录板是一段行的集合体。
BigTable中的数据项按照行关键字的字典序排列,每行动态地划分到记录板中。
每个节点管理大约100个记录板。
时间戳是一个64位的整数,表示数据的不同版本。
BigTable在执行时需要三个主要的组件:
链接到每个客户端的库,一个主服务器,多个记录板服务器。
主服务器用于分配记录板到记录板服务器以及负载平衡,垃圾回收等。
记录板服务器用于直接管理一组记录板,处理读写请求等。
为保证数据结构的高可扩展性,BigTable采用三级的层次化的方式来存储位置信息,如图4[14]所示。
其中第一级的Chubbyfile中包含RootTablet的位置,RootTablet包含所有METADATAtablets的位置信息,每个METADATAtablets包含许多UserTable的位置信息。
编程模型技术
当前各IT厂商提出的“云”计划的编程工具均基于Map-Reduce的编程模型。
Map-Reduce是一种处理和产生大规模数据集的编程模型,程序员在Map函数中指定对各分块数据的处理过程,在Reduce函数中指定如何对分块数据处理的中间结果进行归约。
用户只需要指定map和reduce函数来编写分布式的并行程序。
当在机群上运行Map-Reduce程序时,程序员不需要关心如何将输入的数据分块、分配和调度,同时系统还将处理机群内节点失败以及节点见通信的管理等。
下图给出了一个Map-Reduce程序的具体执行过程。
从图5可以看出,执行一个Map-Reduce程序需要五个步骤:
输入文件、将文件分配给多个worker并行地执行、写中间文件(本地写)、多个Reduceworkers同时运行、输出最终结果。
本地写中间文件在减少了对网络带宽的压力同时减少了写中间文件的时间耗费。
执行Reduce时,根据从Master获得的中间文件位置信息,将Reduce命令发送给中间文件所在节点执行,进一步减少了传送中间文件对带宽的需求。
Map-Reduce模型具有很强的容错性,当worker节点出现错误时,只需要将该worker节点屏蔽在系统外等待修复,并将该worker上执行的程序迁移到其他worker上重新执行同时将该迁移信息通过Master发送给需要该节点处理结果的节点。
Map-Reduce使用检查点的方式来处理Master出错失败的问题,当Master出现错误时,可以根据最近的一个检查点重新选择一个节点作为Master并由此检查点位置继续运行。
云计算发展趋势
目前,亚马逊,微软,谷歌,IBM,Intel等公司纷纷提出了“云计划”。
例如亚马逊的AWS(AmazonWebServices)[3]、IBM和谷歌联合进行的“蓝云”计划等。
这对云计算的商业价值给予了巨大的肯定。
同时学术界也纷纷对云计算进行深层次的研究。
例如谷歌同华盛顿大学以及清华大学合作,启动云计算学术合作计划(AcademicCloudComputingInitiative),
推动云计算的普及,加紧对云计算的研究。
美国卡耐基梅陇大学等提出对数据密集型的超级计算(DISC:
DataIntensiveSuperComputing)进行研究,本质上也是对云计算相关技术开展研究。
IDC的调查显示,未来五年云计算服务将急速增长,预期2012年市场规模可达420亿美元。
目前企业导入云计算已逐渐普及,并且有逐年成长趋势。
估计在2012年,企业投入在云计算服务的支出将占整体IT成本的25%,甚至在2013年提高至IT总支出的三分之一。
由此可见,在各大公司以及学术界的共同推动下,云计算技术将会持续发展。
1)发展历史
1983年,太阳电脑(SunMicrosystems)提出“网络是电脑”(“TheNetworkistheComputer”)。
2006年3月,亚马逊(Amazon)推出弹性计算云(ElasticComputeCloud;EC2)服务。
2006年8月9日,Google首席执行官埃里克·施密特(EricSchmidt)在搜索引擎大会(SESSanJose2006)首次提出“云计算”(CloudComputing)的概念。
Google“云端计算”源于Google工程师克里斯托弗·比希利亚所做的“Google101”项目。
2007年10月,Google与IBM开始在美国大学校园,包括卡内基美隆大学、麻省理工学院、斯坦福大学、加州大学柏克莱分校及马里兰大学等,推广云计算的计划,这项计划希望能降低分布式计算技术在学术研究方面的成本,并为这些大学提供相关的软硬件设备及技术支持(包括数百台个人电脑及BladeCenter与Systemx服务器,这些计算平台将提供1600个处理器,支持包括Linux、Xen、Hadoop等开放源代码平台)。
而学生则可以通过网络开发各项以大规模计算为基础的研究计划。
2008年1月30日,Google宣布在台湾启动“云计算学术计划”,将与台湾台大、交大等学校合作,将这种先进的大规模、快速计算技术推广到校园。
2008年2月1日,IBM(NYSE:
IBM)宣布将在中国无锡太湖新城科教产业园为中国的软件公司建立全球第一个云计算中心(CloudComputingCenter)。
2008年7月29日,雅虎、惠普和英特尔宣布一项涵盖美国、德国和新加坡的联合研究计划,推出云计算研究测试床,推进云计算。
该计划要与合作伙伴创建6个数据中心作为研究试验平台,每个数据中心配置1400个至4000个处理器。
这些合作伙伴包括新加坡资讯通信发展管理局、德国卡尔斯鲁厄大学Steinbuch计算中心、美国伊利诺伊大学香宾分校、英特尔研究院、惠普实验室和雅虎。
2008年8月3日,美国专利商标局网站信息显示,戴尔正在申请“云计算”(CloudComputing)商标,此举旨在加强对这一未来可能重塑技术。
2010年3月5日,Novell与云安全联盟(CSA)共同宣布一项供应商中立计划,名为“可信任云计算计划(TrustedCloudInitiative)”。
2010年7月,美国国家航空航天局和包括Rackspace、AMD、Intel、戴尔等支持厂商共同宣布“OpenStack”开放源代码计划,微软在2010年10月表示支持OpenStack与WindowsServer2008R2的集成;而Ubuntu已把OpenStack加至11.04版本中。
2011年2月,思科系统正式加入OpenStack,重点研制OpenStack的网络服务。
2011年10月20日,“盛大云”宣布旗下产品MongoIC正式对外开放,这是中国第一家专业的MongoDB云服务,也是全球第一家支持数据库恢复的MongoDB云服务。
私有云将成大型企业首选
大型企业对数据的安全性有较高的要求,他们更倾向于选择私有云方案。
未来几年,公有云受安全、性能、标准、客户认知等多种因素制约,在大型企业中的市场占有率还不能超越私有云。
并且私有云系统的部署量还将持续增加,私有云在IT消费市场所占的比例也将持续增加。
宝德公司营销副总监吴建波日前在接受比特网采访时表示,私有云会是大型企业首选之一,中国人口与发展研究中心信息办主任冯方回同意此观点,并表示安全性会是大型企业最主要关心的问题。
开放数据中心更容易实现云计算
英特尔10月在北京牵头成立了开放数据中心联盟,意在实现:
“互通”的云,能够允许企业能在私有云和公有云之间共享数据;一个“自动化”的云计算网络,能自动地帮助不同的应用和资源安全运行,从而显著提高数据中心的能耗表现;一个PC和设备感知的“客户端自适应”的云,能自动决定哪种应用、命令和处理应该在云上,抑或是在您的笔记本、智能手机以及其余设备上进行,从而能充分利用某个用户和设备的独特性能以全面优化在线体验。
这种想法得到了中国用户的大力支持,阿里云计算、XX、中国人寿保险股份有限公司、中信银行、北京云快线科技有限公司、国泰君安证券有限公司、网易、中国科学院深圳先进技术研究、中国石油化工股份有限公司、盛大在线、深圳市腾讯计算机系统有限公司、中国民航信息网络股份有限公司等公司纷纷加入联盟并表示开放式的架构能够轻松实现交互式更强的云环境。
混合云架构将成为企业IT趋势
私有云只为企业内部服务,而公有云则是可以为所有人提供服务的云计算系统。
混合云将公有云和私有云有机地融合在一起,为企业提供更加灵活的云计算解决方案。
而混合云是一种更具优势的基础架构,它将系统的内部能力与外部服务资源灵活地结合在一起,并保了证低成本。
在未来几年,随着服务提供商的增加与客户认知度的增强,混合云将成业企业IT架构的主导。
中国人口与发展研究中心信息办主任冯方回也认为,尽管现在私有云在企业内应用较多,但是在未来这两类云一定会走向融合。
他表示说,英特尔等一些领先厂商认为开放式架构是实现云的基础,而实际上开放数据中心也更有利于公私云的融合,如果未来像开放数据中心联盟如果可以有更好的、更开放的标准的话,混合云应该发展更快。
越来越多的应用迁移到云中
将应用迁移到云中,是原本就赋予云计算的意义,也是最主流的云计算应用方式之一。
现在SaaS模式已经取得了初步成功,为云计算产业开辟了一条非常好的道路。
SaaS模式给传统软件产业带来了巨大的冲击。
出于成本和运维等方面原因,越来越多的企业选择SaaS方式使用软件。
在新的市场环境下,软件厂商也纷纷出台云战略。
微软就是典型代表,它的传统桌面软件正不断向云软件迁移。
但是也并不是所有的软件都适合于SaaS模式,一些攸关企业核心业务或者安全的软件目前还正在接受考验。
云计算概念逐渐平民化
几年前,由于一些大企业对于云计算概念的渲染,导致很多中小企业对于云计算的态度一直停留在“仰望”的阶段。
而经过一段时间的酝酿,一种比较适合中小企业的云计算模式出现了——PaaS—Platform-as-a-Service平台即服务,它是将基础设施平台作为一种服务呈现给用户的商业模式。
这是一种比较低成本的方案,对那些资金有限,并且IT资源有限,急需扩展IT基础支撑的企业有着巨大的吸引力。
从目前的市场发展势态来看,也许在不久的将来PaaS将取代SaaS,成为中小企业最主要的云计算应用。
云计算前景应用分析
云计算有着广泛的应用前景。
如表:
云计算在天文学、医学等各个领域有着广泛的应用前景。
趋势科技和瑞星等安全厂商纷纷提出了“安全云”计划。
如今,每天有2万多种新的病毒和木马产生,传统的通过更新用户病毒库的防毒模式,受到了严峻的挑战,用户端的病毒库将过于庞大。
趋势科技和瑞星的“安全云”将病毒资料库放在“云”端,与客户端通过网络相连,当“云”在网络上发现不安全链接时,可以直接形成判断,阻止其进入用户机器,从根本上保护机器的安全。
据趋势科技大中华区执行总裁张伟钦介绍,趋势科技已投入了大量资金,在全球数个地方建设了新型数据中心。
同时,趋势科技还花费了1000多万美元,租借了34000多台服务器,构建了一个服务遍及全球的“安全云”。
目前趋势科技已将公司中低端的部分产品线放到“云安全”计划中,而高端的大部分产品线,仍在准备过程中。
谷歌提供的Gmail、GoogleEarth、GoogleAnalytics等服务都基于其云计算服务器运行。
谷歌基于云计算提供的翻译服务具有现今最好的性能。
对互联网和美国人生活的一项研究显示,大约70%的在线用户使用以上“云计算”服务。
云计算是一种新型的计算模式。
它的最主要特征是系统拥有大规模数据集、基于该数据集,向用户提供服务。
它使用大量的普通商用机来构建系统,通过冗余存储的方式确保整个系统的可靠性和可用性。
与传统超级计算机在底层编程不同,数据密集计算的云系统上使用基于Map-Reduce的高级编程模式。
这使得编程人员可以不用考虑底层的并行化方式,专心与程序的逻辑实现。
普通用户经过简单的学习,可以编写出满足自身需要的简单程序。
越来越多的IT厂商提出了自己的“云”计划,并投入大量资金推动云计算的发展。
这恰恰为云计算提供了良好的发展机遇。
虽然现在的云计算并不能完美地解决所有的问题,但是在不久的将来,一定会有越来越多的云计算系统投入实用,云计算系统也会不断地被完善,并推动其他科学技术的发展。
将互联网上提供类似服务的公司整合起来,以便用户能够更方便的比较和选择自己的服务供应商。
说了半天相信很多人还没搞清怎么回事,因为单“云计算”这三个字就已经够云里雾里的了。
云计算到底有多强大,仍有待时代的检阅!
参考文献
[1]XX百科
[2]http:
//www.cloudcomputing-
[3]JineshVaria.Cloudarchitectures-Amazonwebservices[EB/OL].ACMMonthlyTechTalk,http:
//acmbangalore.org/
events/monthly-talk/may-2008--cloud-architectures---amazon-web-services.html,May,2008
[4]IANFOSTER;CARLKESSELMAN;STEVENTUECKE.Theanatomyofthegridenablingscalablevirtualorganizations.
InternationalJournalofHighPerformanceComputingApplications.August2001,15(3):
200-222
[5]FRANBerman,GEOFFREYFox,TONYHey.Thegrid:
past,present,andfuture[A].GridComputing:
MakingtheGlobal
InfrastructureaReality[C].JohnWiley&Sons,Ltd,2003.9-50.
[6]Top500supercomputingsites.http:
//www.top500.org/
[7]ALEXANDERS.Szalay,PETERKunszt,ANIThakar,JIMGray,DONSlutz,ROBERTJ.Brunner.Designingandmining
multi-terabyteastronomyarchives:
TheSloanDigitalSkySurvey[A].SIGMODInternationalConferenceonManagementofData
Proceedingsofthe2000ACMSIGMODinternationalconferenceonManagementofdata.ACM,2000.29
(2):
451-462
[8]LuizAndréBarroso,JeffreyDean,UrsH-lzle.Websearchforaplanet:
TheGoogleclusterarchitecture[J].IEEEMicro,
Mar/Apr,2003,23
(2):
22-28.
[9]Googletopstranslationranking[N].News@Nature,
Nov.6,2006.
[10]RANDALE.Bryant.Data-Intensivesupercomputing:
thecaseforDISC[R].CMUTechnicalReportCMU-CS-07-128.
May10,2007.
[11]SANJAYGHEMAWAT;HOWARDGOBIOFF;PSHUN-TAKLEUNG.TheGooglefilesystem.Proceedingsofthe
nineteenthACMsymposiumonOperatingsystemsprinciples.Oct.2003
[12]Hadoop.http:
//hadoop.apache.org/
[13]Yahoo!
HadoopTutorial.
[14]FayChang,JeffreyDean,SanjayGhemawatetal.BigTable:
adistributedstoragesystemforstructureddata[A].Operating
SystemsDesignandImplementation,2006.