Google的云计算技术实际上是针对Google特定的网络应用程序而定制的。针对内部网络数据规模超大的特点,Google提出了一整套基于分布式并行集群方式的基础架构,利用软件的能力来处理集群中经常<!-- 正文页网画中画广告 -->
<!--< LANGUAGE="JavaScript1.1" SRC="http://ad.ccw.com.cn/adshow.asp?positionID=35&js=1&innerJs=1" mce_SRC="http://ad.ccw.com.cn/adshow.asp?positionID=35&js=1&innerJs=1"></SCRIPT>-->
|
发生的节点失效问题。
从2003年开始,Google连续几年在计算机系统研究领域的最顶级会议与杂志上发表论文,揭示其内部的分布式
数据处理方法,向外界展示其使用的云计算核心技术。从其近几年发表的论文来看,Google使用的云计算基础架构模式包括四个相互独立又紧密结合在一起的
系统。包括Google建立在集群之上的文件系统Google File System,针对Google应用程序的特点提出的Map/Reduce编程模式,分布式的锁机制Chubby以及Google开发的模型简化的大规模分布式数据库BigTable。
Google File System 文件系统
为了满足Google迅速增长的数据处理需求,Google设计并实现了Google文件系统
(GFS,Google File
System)。GFS与过去的分布式文件系统拥有许多相同的目标,例如性能、可伸缩性、可靠性以及可用性。然而,它的设计还受到Google应用负载和
技术环境的影响。主要体现在以下四个方面:
1. 集群中的节点失效是一种常态,而不是一种异常。由于参与运算与处理的节点数目非常庞大,通常会使用上千个节点进行共同计算,因此,每时每刻总会有节点处在失效状态。需要通过软件程序模块,监视系统的动态运行状况,侦测错误,并且将容错以及自动恢复系统集成在系统中。
2. Google系统中的文件大小与通常文件系统中的文件大小概念不一样,文件大小通常以G字节计。另外文件系统中的文件含义与通常文件不同,一个大文件可能包含大量数目的通常意义上的小文件。所以,设计预期和参数,例如I/O操作和块尺寸都要重新考虑。
3.
Google文件系统中的文件读写模式和传统的文件系统不同。在Google应用(如搜索)中对大部分文件的修改,不是覆盖原有数据,而是在文件尾追加新
数据。对文件的随机写是几乎不存在的。对于这类巨大文件的访问模式,客户端对数据块缓存失去了意义,追加操作成为性能优化和原子性(把一个事务看做是一个
程序。它要么被完整地执行,要么完全不执行)保证的焦点。
4.
文件系统的某些具体操作不再透明,而且需要应用程序的协助完成,应用程序和文件系统API的协同设计提高了整个系统的灵活性。例如,放松了对GFS一致性
模型的要求,这样不用加重应用程序的负担,就大大简化了文件系统的设计。还引入了原子性的追加操作,这样多个客户端同时进行追加的时候,就不需要额外的同
步操作了。
总之,GFS是为Google应用程序本身而设计的。据称,Google已经部署了许多GFS集群。有的集群拥有超过1000个存储节点,超过300T的硬盘空间,被不同机器上的数百个客户端连续不断地频繁访问着。
图1给出了Google File System的系统架构,一个GFS集群包含一个主服务器和多个块服务器,被多个客户端访问。文件被分割成固定尺寸的块。在每个块创建的时候,服务器分配给它一个不变的、全球惟一的64位块句柄对它进行标识。块服务器把块作为linux文
件保存在本地硬盘上,并根据指定的块句柄和字节范围来读写块数据。为了保证可靠性,每个块都会复制到多个块服务器上,缺省保存三个备份。主服务器管理文件
系统所有的元数据,包括名字空间、访问控制信息和文件到块的映射信息,以及块当前所在的位置。GFS客户端代码被嵌入到每个程序里,它实现了Google
文件系统
API,帮助应用程序与主服务器和块服务器通信,对数据进行读写。客户端跟主服务器交互进行元数据操作,但是所有的数据操作的通信都是直接和块服务器进行
的。客户端提供的访问接口类似于POSIX接口,但有一定的修改,并不完全兼容POSIX标准。通过服务器端和客户端的联合设计,Google
File System能够针对它本身的应用获得最大的性能以及可用性效果。
MapReduce分布式编程环境
为了让内部非分布式系统方向背景的员工能够有机会将应用程序建立在大规模的集群基础之上,Google还设计并实
现了一套大规模数据处理的编程规范Map/Reduce系统。这样,非分布式专业的程序编写人员也能够为大规模的集群编写应用程序而不用去顾虑集群的可靠
性、可扩展性等问题。应用程序编写人员只需要将精力放在应用程序本身,而关于集群的处理问题则交由平台来处理。
Map/Reduce通过“Map(映射)”和“Reduce(化简)”这样两个简单的概念来参加运算,用户只需要提供自己的Map函数以及Reduce函数就可以在集群上进行大规模的分布式数据处理。
据称,Google的文本索引方法,即搜索引擎的核心部分,已经通过Map Reduce的方法进行了改写,获得了更加清晰的程序架构。在Google内部,每天有上千个Map Reduce的应用程序在运行。
分布式大规模数据库管理系统BigTable
构建于上述两项基础之上的第三个云计算平台就是Google关于将数据库系统扩展到分布式平台上的
BigTable系统。很多应用程序对于数据的组织还是非常有规则的。一般来说,数据库对于处理格式化的数据还是非常方便的,但是由于关系数据库很强的一
致性要求,很难将其扩展到很大的规模。为了处理Google内部大量的格式化以及半格式化数据,Google构建了弱一致性要求的大规模数据库系统
BigTable。据称,现在有很多Google的应用程序建立在BigTable之上,例如Search
History、Maps、Orkut和RSS阅读器等。
图2给出了在BigTable模型中的数据模型。数据模型包括行列以及相应的时间戳,所有的数据都存放在表格中的单元里。BigTable的内容按照行来划分,将多个行组成一个小表,保存到某一个服务器节点中。这一个小表就被称为Tablet。
以上是Google内部云计算基础平台的三个主要部分,除了这三个部分之外,Google还建立了分布式程序的调度器,分布式的锁服务等一系列相关的云计算服务平台。
Google的云应用
除了上述的云计算基础设施之外,Google还在其云计算基础设施之上建立了一系列新型网络应用程序。由于借鉴了
异步网络数据传输的Web
2.0技术,这些应用程序给予用户全新的界面感受以及更加强大的多用户交互能力。其中典型的Google云计算应用程序就是Google推出的与
Microsoft Office软件进行竞争的Docs网络服务程序。Google Docs是一个基于Web的工具,它有跟Microsoft
Office相近的编辑界面,有一套简单易用的文档权限管理,而且它还记录下所有用户对文档所做的修改。Google
Docs的这些功能令它非常适用于网上共享与协作编辑文档。Google Docs甚至可以用于监控责任清晰、目标明确的项目进度。当前,Google
Docs已经推出了文档编辑、电子表格、幻灯片演示、日程管理等多个功能的编辑模块,能够替代Microsoft
Office相应的一部分功能。值得注意的是,通过这种云计算方式形成的应用程序非常适合于多个用户进行共享以及协同编辑,为一个小组的人员进行共同创作
带来很大的方便性。
Google Docs是云计算的一种重要应用,即可以通过浏览器的方式访问远端大规模的存储与计算服务。云计算能够为大规模的新一代网络应用打下良好的基础。
虽然Google可以说是云计算的最大实践者,但是,Google的云计算平台是私有的环境,特别是Google
的云计算基础设施还没有开放出来。除了开放有限的应用程序接口,例如GWT(Google Web Toolkit)以及Google Map
API等,Google并没有将云计算的内部基础设施共享给外部的用户使用,上述的所有基础设施都是私有的。
幸运的是,Google公开了其内部集群计算环境的一部分技术,使得全球的技术开发人员能够根据这一部分文档构建开源的大规模数据处理云计算基础设施,其中最有名的项目即Apache旗下的Hadoop项目。而下面的两个云计算的实现则为外部的开发人员以及中小公司提供了云计算的平台环境,使得开发者能够在云计算的基础设施之上构建自己的新型网络应用。其中IBM的蓝云计算平台是可供销售的计算平台,用户可以基于这些软硬件产品自己构建云计算平台。亚马逊的弹性计算云则是托管式的云计算平台,用户可以通过远端的操作界面直接使用。
|
相关推荐
四、主流云计算平台 全球范围内,亚马逊AWS、微软Azure、谷歌Cloud和阿里云是领先的云计算服务平台,它们提供了丰富的服务选项和强大的技术支持。在国内,阿里巴巴、腾讯、百度等互联网巨头也在云计算市场占据重要...
### 浅析云计算与信息安全 #### 一、云计算的核心概念与架构 云计算,作为近年来IT领域最为炙手可热的概念,正逐步改变着信息技术的面貌。它是一种基于互联网的计算方式,通过网络上的大规模计算资源池(即“云”...
云计算:Google云计算原理 云计算“云” 云计算7 微软云计算 云计算ACA题库 云计算PIG的使用 云计算简史 云计算课件—云存储 云计算课件—云计算概述 云计算论文--云计算的集群与分布式 云计算论文云计算的浅析与...
本文将深入探讨云计算的五大关键技术,包括虚拟化技术、分布式海量数据存储、海量数据管理技术、编程方式以及云计算平台管理技术。 1. 虚拟化技术:虚拟化是云计算的核心组成部分,它允许在单一硬件系统上运行多个...
- **Google云计算**:Google是最早涉足云计算领域的公司之一,其提供的Google Apps等服务在全球范围内拥有庞大的用户群体。 - **Amazon云计算**:Amazon Web Services (AWS) 提供了丰富的云产品和服务,涵盖了计算、...
2006年,Google的CEO埃里克·施密特在搜索引擎大会上首次提出了云计算的概念,标志着这一领域的诞生。 云计算的核心思想是通过共享远程服务器、存储和网络资源,来满足用户对计算能力和数据存储的需求,而不是每个...
云计算的应用现状来看,谷歌、IBM、微软等大公司的技术投入和资金支持,使得云计算服务趋于成熟,并不断有新的云计算平台和应用技术如谷歌的AppEngine和微软的Azure技术平台出现。这些平台的推出,不仅提供基础网络...
本文将重点探讨云计算领域的五大关键技术:虚拟化技术、分布式海量数据存储、海量数据管理技术、编程方式(Map-Reduce)、云计算平台管理技术。 #### 一、虚拟化技术 虚拟化技术是云计算的基础,其核心在于将物理...
微软的云计算平台是业界知名的云服务产品之一,主要包括云计算服务操作系统Windows Azure、云数据库SQL Azure和基于Web开发服务的Windows Azure platform AppFabric。该平台提供了具有可靠性、灵活性和价值性的...
【云计算与计算机网络浅析】 云计算,简单来说,是一种基于互联网的分布式计算方式,通过庞大的计算机群(云)处理和存储数据,用户只需通过终端设备输入指令获取结果,无需关心背后复杂的运算过程。这种模式降低了...
2. **数据分析平台**:云计算平台提供了多种数据分析工具和服务,如Hadoop、Spark、Kafka等,这些工具专门设计用于处理大数据,帮助企业快速分析并提取有价值的信息。 3. **实时处理**:云计算支持流式计算和实时...
云计算的概念最早由谷歌在2006年提出,它允许用户按需使用计算资源,就像使用水电一样方便和便宜。按照服务层次,云计算可分为基础设施即服务(IaaS)、平台即服务(PaaS)、软件即服务(SaaS)三种模式。随着人工智能技术...
云计算利用共享机制的优势,使得大型搜索引擎企业如Google和百度等率先利用云计算改善用户服务方式,从而获得发展机会。 云计算的主要形式包括: 1. 软件即服务(SAAS):将传统C/S(客户端/服务器)软件架构转变为...
云计算的服务类型主要分为三个层次:基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。IaaS 提供基础设施资源,如服务器、存储和网络,让用户可以按需使用,例如亚马逊的 AWS 服务。PaaS 则提供...
在云计算系统中,主流的数据管理技术主要包括Google File System(GFS)、BigTable、MapReduce和Dynamo等。 - GFS技术:GFS是Google公司为存储海量搜索数据而设计的专用文件系统。GFS是一种可扩展的分布式文件系统...
PaaS提供应用程序运行环境,如Google App Engine和Windows Azure,用户在此平台上开发应用,享受自动扩展和容错管理。SaaS则专注于提供特定的应用服务,如Salesforce的CRM服务。这三种服务类型之间存在交集,许多云...
**研究与合作**:云计算平台为医疗研究人员提供了协作环境,加速了医学研究成果的转化和应用。\n\n5. **成本控制与更新**:采用云计算服务,医院无需持续投资硬件升级,且软件维护由服务商负责,降低了维护成本,...
《国内互联网企业云计算浅析》 云计算,作为21世纪信息技术的一大创新,已经深刻地改变了全球互联网企业的运营模式。从2006年谷歌(Google)首次提出云计算的概念,到2009年IBM将其正式引入企业级市场,再到2010年...
1. 超大规模:云计算平台通常由数十万乃至上百万台服务器组成,能够提供前所未有的计算能力,如Google、IBM、Amazon等公司的云服务均具有庞大的计算资源。 2. 数据安全可靠:云服务提供者会确保数据的安全存储,...