Google的技術構架 (精心整理版)

網上看到的一篇關於GOOGLE技術架構的詳細介紹。

                瞭解雲計算標杆Google的技術構架 

    一、前言 

      計算無疑是今年IT 技術界最熱點的關鍵詞之一。從谷歌趨勢分析來看,國際上Cloud 
computing 是從2007 年中期開始成爲整個業界關注的重點,在中國雲計算是從2008 年開始 
成爲中國IT 界和通信界關注的核心。特別是,當中國移動2008 年開始關注 計算,並推動 
中國移動相關的業務支撐系統、業務軟件平臺開始向 計算的平臺遷移。使得整個中國IT 
界、通信界的相關產業力量更加關注 計算,同時大家也開始意識到了 計算確實可以大大 
的節省海量計算的總體擁有成本。 
cloud computing     雲計算 

    當業界談到 計算的時候,都會第一個想到谷歌 Google。我們日常在使用的Google 
Search,Google Earth,Goolge Map,Google Gmail,Google Doc 等等業務都是Google 基於自 
己 計算平臺來提供的。Google           也是通過雲計算的方式,大量的降低計算成本,使之業務 
更具有競爭力。 
    Google 原先企業初期階段,獲得的投資有限,只能自己攢機,但是很差的機器不可能 
發揮服務器的性能和穩定性,於是只有去想該如何提高可靠性,如何利用很多"破爛"機器獲 
得更高的性能。這就有了雲計算的雛形。 
    今天我們都知道Google  的規模,而如果我們不去認清 計算的強大,我們就不知道互 
聯網的未來和規則。Google 在98 年的時候被迫發現了這一規則,然後我們看到了聚合的力 
量,今天微軟、IBM、雅虎、百度、亞馬遜這些企業看到了規則,於是開始進入 計算領域。 
所以我們研究 計算,可以系統剖析一下Google  的技術構架,這對於我們搭建自己自身的  計算平臺有比較好的借鑑意義和標杆意義! 

二、Google 的整體技術構架說明 

    由於Google   沒有官方發佈一個自身的技術構架說明。本文主要的信息都來自互聯網中 
對於Google   網絡技術構架的分析,大量信息來自labs.google.com              。 
    Google 最大的IT  優勢在於它能建造出既富於性價比(並非廉價)又能承受極高負載的高 
性能系統。因此Google 認爲自己與競爭對手,如亞馬遜網站(Amazon)、電子港灣(eBay)、微 
軟(Microsoft)和雅虎 (Yahoo)等公司相比,具有更大的成本優勢。其IT 系統運營約爲其他互 
聯網公司的60%左右。 

    同時Google 程序員的效率比其他Web 公司同行們高出50%~100%,原因是Google  已 
經開發出了一整套專用於支持大規模並行系統編程的定製軟件庫。 
    從整體來看,Google 的 計算平臺包括瞭如下的技術層次。 
    1)網絡系統:包括外部網絡(Exterior Network)         ,這個外部網絡並不是指運營商自己的 
骨幹網,也是指在Google          計算服務器中心以外,由Google            自己搭建的由於不同地區/ 國 
家,不同應用之間的負載平衡的數據交換網絡。內部網絡(Interior Network),連接各個Google 自建的數據中心之間的網絡系統。 
    2)硬件系統:從層次上來看,包括單個服務器、整合了多服務器機架和存放、連接各 
個服務器機架的數據中心(IDC)。 
    3)軟件系統:包括每個服務器上面的安裝的單機的操作系統經過修改過的Redhat Linux。 
Google   計算底層軟件系統 (文件系統GFS、並行計算處理算法 Mapreduce、並行數據庫 
Bigtable,並行鎖服務Chubby Lock, 計算消息隊列GWQ ) 
    4)Google  內部使用的軟件開發工具 Python、Java、C++ 等 
    5)Google  自己開發的應用軟件Google Search         、Google Email 、Google Earth 

三、Google  各個層次技術介紹 

1、Google 外部網絡系統介紹 
    當一個互聯網用戶輸入www.google.com           的時候,這個URL請求就會發到Google DNS            解 
析服務器當中去,那麼Google           的DNS 服務器就會根據用戶自身的IP 地址來判斷,這個用 
戶請求是來自那個國家、那個地區。根據不同用戶的IP 地址信息,解析到不同的Google 的 
數據中心。 

    進入第一道防火牆,這次防火牆主要是根據不同端口來判斷應用,過濾相應的流量。如 
果僅僅接受 瀏覽器應用的訪問,一般只會開放80 端口http,和443 端口https  (通過SSL 
加密)。將其他的來自互聯網上的非Ipv4 /V6非80/443  端口的請求都放棄,避免遭受互聯 
網上大量的DOS 攻擊。 
    據說Google   使用了思傑科技(Citrix Systems)的Netscaler  應用交換機來做web  應用 
的優化。NetScaler   可將Web     應用性能加速高達5 倍。使用高級優化技術如動態緩存時, 
或者當網絡延遲或數據包丟失增大時,性能增益會更高。這裏提到的http multiplexting 技術 
是可以是進行 http      的每個session   分解開。從不同的後端服務器 (緩存)來獲取內容,這 
樣可以大大提升web http       性能,同時有效降低後端web應用服務器的處理和聯接壓力。 
    在大量的web     應用服務器 (Web Server Farm)前,Google使用反向代理(Reverse Proxy ) 
的技術。反向代理(Reverse  Proxy )方式是指以代理服務器來接受internet 上的連接請求, 
然後將請求轉發給內部網絡上的服務器,並將從服務器上得到的結果返回給internet 上請求 
連接的客戶端,此時代理服務器對外就表現爲一個服務器。 
    Google 使用的是Squid Cache 的軟件方式來實現反向代理應用的,Squid Cache 一個流 
行的自由軟件(GNU 通用公共許可證)的代理服務器和Web  緩存服務器。Squid  有廣泛的 
用途,從作爲網頁服務器的前置cache 服務器緩存相關請求來提高Web 服務器的速度。 
    在Google web  應用服務器需要調用Google 內部存儲的信息和資源的時候,在通過一個 
防火牆進入內部的網絡,來訪問其他的基於自身GFS II 系統的應用服務和數據庫。 


2、Google  內部網絡架構介紹 
    Google 自己已經建設了跨國的光纖網絡,連接跨地區、跨國家的高速光纖網絡。內部 
網絡已經都是 Ipv6 的協議在運行。網絡中的路由交換設備主要還是來自Juniper,Cisco, 
Foundry,  HP 這四家公司。內部網關協議 (IRP)是基於OSPF(開放式最短路徑優先)進行修改 
的。在每個服務器機架內部連接每臺服務器之間網絡是100M  以太網,在服務器機架之間連 
接的網絡是1000M  以太網。 

    在每個服務器機架內,通過IP 虛擬服務器(IP Virtual Server)的方式實現傳輸層負載Linux 
內核內的平衡,這個就是所謂四層LAN 交換。IPVS 使一個服務器機架中的衆多服務成爲基 
於 Linux  內核虛擬服務器。這就像在一堆服務器前安裝一個負載均衡的服務器一樣。當 
TCP/UDP 的請求過來後,使一 服務器可以使用一個單一的IP 地址來對外提供相關的服務 支撐。 


3、Google  的大規模IDC 部署戰略 
    Google 應該是目前世界上存儲信息最多的企業了。而且還在一直不斷的致力於將傳統 
信息僅可能的數字化。將這樣海量的信息進行存儲、進行處理。就需要大量的計算機服務器。 
爲了滿足不斷增長的計算需求。Google  很早就進行了全球的數據中心的佈局。由於數據中 
心運行後,面臨的幾個關鍵問題的就是充足電力供應、大量服務器運行後的降溫排熱和足夠 
的網絡帶寬支持。所以Google 在進行數據中心佈局的時候,就是根據互聯網骨幹帶寬和電 
力網的核心節點進行部署的,儘快考慮在河邊和海邊,想辦法通過引入自然水流的方式來降 
低降溫排熱的成本。 

    達拉斯(Dalles)是美國俄勒岡州北部哥倫比亞河 (Columbia river)岸上的一個城市, 
Google 在Dalles  的邊上擁有的30 英畝土地,他們在這裏建立了幾乎是世界上最大,性能最 
好的數據中心。四個裝備有 大空調設施的倉庫內,放置着數萬臺Internet 服務器,這些服 
務器每天處理着數十億條Google 網站傳遞給世界各個角落的用戶的數據。 

    Google 達拉斯這個數據中心佔用了附近一個180 萬千瓦(1.8GW)水力發電站的大部分 
電力輸出。對比來看目前中國長江三峽水電站的額定功率是1820 萬千瓦。 
    目前Google   已經在全球運行了38 個大型的IDC             中心,超過300 多個GFSII       服務器集 
  ,超過 80 萬臺計算機。從服務器集 部署的數量來看美國本地的數量第一,歐洲地區第 

二,亞洲地區第三,在南美地區和俄羅斯各有一個IDC  數據中心。 
    目前Google 在中國的北京和香港建設了自己的IDC 中心,並部署了自己的服務器農場。 其中目前還在進行建設的第38 個IDC是在奧地利的林茨市(Linz)附近的Kronstorf 村。未來,Google  還準備在中國臺灣地區、 來西亞、立陶宛等地區來進行部署。從目前 
的Google  數據中心部署的情況來看,中東和非洲地區目前Google 還沒有建設計劃。 
    下圖是Google    的IDC  中心/服務器農場 (Google Server Farm)的全球分佈圖。 

    Google 自己設計了創新的集裝箱服務器,數據中心以貨櫃爲單位, 
    標準谷歌模塊化集裝箱裝有30 個的機架,1160 臺服務器,每臺服務器的功耗是250KW。 
 (Google2009  年公佈的信息)。下圖是Google  模塊化集裝箱的設計示意圖。這種標準的 
集裝箱式的服務器部署和安裝策略可以是Google 非常快速的部署一個超大型的數據中心。 
大大降低了對於機房基建的需求。 

4、Google  自己設計的服務器機架構架 
    Google 的服務器機架有兩種規格40U/80U 的。這主要是因爲原來每個服務器刀片是1U 
高,新的服務器刀片都是2U 高的。據說Google 後期使用的服務器主板是臺灣技嘉,服務器 
主板可以直接插入到服務器機架中。 

5、Google  自己設計的PC 服務器刀片 
    絕大部分企業都會跟諸如戴爾、惠普、IBM 或Sun 購買服務器。不過Google 所擁有的 
八十萬臺服務器都是自己設計打造來的,Google 認爲這是公司的核心技術之一。Google  的 
硬件設計人員都是直接和芯片廠商和主板廠商協作工作的。 

    2009 年,Google 開始大量使用2U 高的低成本解決方案。標準配置是雙核雙通道CPU, 
據說有Intel  的,也有AMD 的在使用。8 個2GB 的DDR3,支持ECC 容錯的高速內存,採用 
RAID 1  的磁盤鏡像,來提升I/O 效率。磁盤採用SATA,單機存儲容量可以達到1-2TB 。每個 
服務器刀片自帶 12V的電池來保證在短期沒有外部電源的時候可以保持服務器刀片正常運 
行。Google   的硬件設計人員認爲,這個自帶電池的方式,要比傳統的使用UPS 的方式效率更高。 

    一般數據中心多倚賴稱爲不間斷電源系統(UPS)的大型中控機型,這基本上算是大電池, 
會在主電力失效而發電機還來不及啓動時,暫時協助供電。Google 的硬件設計人員表示, 
直接把電力內建到服務器比較便宜,而且成本能直接跟服務器數量相符合。“這種作法比使 
用大型UPS 節省得多,如此也不會浪費多餘的容量。” 
    效率也是另一個財務考量因素。大型UPS 可達92-95%的效率,這意味着許多電力還是 
被浪費掉了。但Google 採用的內建電池作法卻好很多,Google 相關人員表示,“我們測量的 

結果是效率超過99.9%        。 


年份             Google 服務器刀片硬件配置 
1999/2000      PII/PIII 128MB+ 
2003/2004      Celeron 533, PIII 1.4 SMP, 2-4GB DRAM, Dual XEON 2.0/1-4GB/40-160GB 
               IDE - SATA Disks via Silicon Images SATA 3114/SATA 3124 
2006           Dual Opteron/Working Set DRAM(4GB+)/2x400GB IDE (RAID0?) 

2009          2-Way/Dual Core/16GB/1-2TB SATA 


6、Google  服務器使用的操作系統 
    Google 服務器使用的操作系統是基於Redhat             Linux2.6 的內核,並做了大量修改。修改 
了GNU C  函數庫(glibc),遠程過程調用 (RPC),開發了自己的Ipvs,自己修改了文件系統,形 
成了自己的GFSII,修改了linux 內核和相關的子系統,是其支持IPV6。採用了Python 來作爲主要 
的腳本語言。 
    下表是一些大型互聯網公司使用的操作系統對比。 

       網站          操作系統                Web 應用服務器 
       Google      Linux               Google Web Server 
       微軟          Windows server       IIS 
       ebay        Windows server       IIS 
       阿里巴巴        Linux               Apache 
       新浪          Free BSD            Apache 
       百度          Linux               Apache 
       163         Linux               Apache 
       搜狐          Sco Unix            Apache 

7、Google    計算文件系統GFS/GFSII 

    GFSII cell 是Google 文件系統中最基礎的模塊。任何文件和數據都可以利用這種底層模 
塊。GFSII  通過基於 Linux    分佈存儲的方式,對於服務器來說,分成了主服務器 (Master 
Servers)和塊存儲服務器(Chunk Servers),GFS 上的塊存儲服務器上的存儲空間以64MB 爲 
單位,分成很多的存儲塊,由主服務器來進行存儲內容的調度和分配。每一份數據都是一式 
三份的方式,將同樣的數據分佈存儲在不同的服務器集 中,以保證數據的安全性和吞吐的 
效率提高。當需要對於文件、數據進行存儲的時候,應用程序之間將需求發給主服務器,主 
服務器根據所管理的塊存儲服務器的情況,將需要存儲的內容進行分配,並將可以存儲的消 
息(使用那些塊存儲服務器,那些地址空間),有應用程序下面的GFS                            接口在對文件和數據 
直接存儲到相應的塊存儲服務器當中。 
    塊存儲服務器要定時通過心跳信號的方式告知主服務器,目前自己的狀況,一旦心跳信 
號出了問題,主服務器會自動將有問題的塊存儲服務器的相關內容進行復制。以保證數據的 
安全性。 

    數據被存儲時是經過壓縮的。採用的BMDiff 和Zippy                 算法。BMDiff   使用最長公共子序 
列進行壓縮,      壓縮 100MB/s,   解壓縮約 1000MB/s.類似的有 IBM          Hash Suffix Array Delta 
Compression.Zippy 是 LZW 的改進版本,     壓縮比不如 LZW,      但是速度更快. 

8、Google  並行計算構架 Mapreduce 

    有了強大的分佈式文件系統,Google             遇到的問題就是怎麼才能讓公司所有的程序員都 
學會些分佈式計算的程序呢?於是,那些Google 工程師們從lisp 和其他函數式編程語言中 
的映射和化簡操作中得到靈感,搞出了Map/Reduce                   這一套並行計算的框架。Map/Reduce 
被Google 拿來重新了Google Search Engine 的整個索引系統。而Doug Cutting 同樣用Java 將 
這一套實現和HDFS 合在一起成爲Hadoop 的Core。 
    MapReduce 是Google 提出的一個軟件架構,用於大規模數據集(大於1TB)的並行運 
算。概念“Map       (映射)”和“Reduce     (化簡)”,和他們的主要思想,都是從函數式編程語 

言借來的,還有從矢量編程語言借來的特性。 


映射和化簡 

    簡單說來,一個映射函數就是對一些獨立元素組成的概念上的列表(例如,一個測試成 
績的列表)的每一個元素進行指定的操作(比如前面的例子裏,有人發現所有學生的成績都 
被高估了一分,他可以定義一個“減一”的映射函數,用來修正這個錯誤。)。事實上,每個 
元素都是被獨立操作的,而原始列表沒有被更改,因爲這裏創建了一個新的列表來保存新的 
答案。這就是說,Map         操作是可以高度並行的,這對高性能要求的應用以 並行計算領域 
的需求非常有用。 

    而化簡操作指的是對一個列表的元素進行適當的合併(繼續看前面的例子,如果有人想 
知道班級的平均分該怎麼做?他可以定義一個化簡函數,通過讓列表中的元素 跟自己的相 
鄰的元素相加的方式把列表減半,如此遞歸運算直到列表只剩下一個元素,然後用這個元素 
除以人數,就得到了平均分。)。雖然他不如映射函數那麼並 行,但是因爲化簡總是有一個 
簡單的答案,大規模的運算相對獨立,所以化簡函數在高度並行環境下也很有用。 

分佈和可靠性 

    MapReduce 通過把對數據集的大規模操作分發給網絡上的每個節點實現可靠性;每個 
節點會週期性的把完成的工作和狀態的更新報告回來。如果一個節點保 持沉默超過一個預 
設的時間間 ,主節點 (類同Google  File  System 中的主服務器)記錄下這個節點狀態爲死 
亡,並把分配給這個節點的數據發到別的節點。每個操作使用命名文件的原子操作以確保不 
會發生並行線程間 的衝突;當文件被改名的時候,系統可能會把他們複製到任務名以外的 
另一個名字上去。(避免副作用)。 

    化簡操作工作方式很類似,但是由於化簡操作在並行能力較差,主節點會盡量把化簡操 
作調度在一個節點上,或者離需要操作的數據儘可能進的節點上了;這個特性可以滿足 
Google 的需求,因爲他們有足夠的帶寬,他們的內部網絡沒有那麼多的機器。 
    在Google,MapReduce 用在非常廣泛的應用程序中,包括“分佈grep,分佈排序,web 
連接圖反轉,每臺機器的詞矢量,web 訪問日誌分析,反向索引構建,文檔聚類,機器學習, 
基於統計的機器翻譯...”值得注意的是,MapReduce                實現以後,它被用來重新生成Google 
的整個索 引,並取代老的ad hoc 程序去更新索引。MapReduce 會生成大量的臨時文件,爲 
了提高效率,它利用Google 文件系統來管理和訪問這些文件。 


9、Google  並行計算數據庫 Bigtable 
    有了強大的存儲,有了強大的計算能力,剩下的Google 要面對的是:它的應用中有很 
多結構化、半結構化的數據,如何高效地管理這些結構化、半結構化的數據呢?Google 需 
要的是一個分佈式的類DBMS 的系統,於是催生了BigTable 這個東西 

    Google 的BigTable 從 2004  年初就開始研發了,BigTable       讓Google 在提供新服務時的 
運行成本降低,最大限度地利用了計算能力。BigTable  是建立在 GFS     ,Scheduler ,Lock 
Service 和 MapReduce 之上的。 

    每個Table 都是一個多維的稀疏圖sparse  map。Table            由行和列組成,並且每個存儲單 
元 cell 都有一個時間戳。在不同的時間對同一個存儲單元cell  有多份拷貝,這樣就可以記 
錄數據的變動情況。數據存儲的結構是(row:string, column:string, time:int64)          --> string 

    行: 
    表中的行鍵 (目前任意字符串至64KB 的大小)。每一個讀取或寫入的數據下單行的關鍵是 
原子 (不論數目不同的列被讀取或行中寫的),更容易爲客戶的原因關於系統中的行爲同時存 
在對同一行的更新。 

    列: 
    列項分爲集合稱爲列的家族,它們形成了訪問控制的基本單位。所有數據在一列中存儲 
的家族通常是同一類型。當數據以這個列鍵值被存儲之前,列的家族必須被創建。家族內的 
任何列鍵值可以使用。因爲,重疊的列鍵值比較少,與此相反,一個表可能有無限的列數。 

    時間戳: 
    Bigtable 的每一個細胞中可以包含多個版本同樣的數據,這些版本的時間戳索引。Bigtable 
的時間戳64 位整數。它們可以被分配由Bigtable 的,在這種情況下,他們真正代表聯聰以微秒 
的時間,或明確指定的客戶端應用程序。應用程序需要避免衝突必須創造自己獨特的時間戳。 
不同一個單元格的版本都存儲在時間戳順序遞減,因此,最近的版本可以首先閱讀。 

    爲了管理 大的Table,把Table 根據行分割,這些分割後的數據統稱爲:Tablets 。每個 
Tablets 大概有 100-200  MB,每個機器存儲100 個左右的Tablets 。底層的架構是:GFS。由 
於GFS 是一種分佈式的文件系統,採用Tablets  的機制後,可以獲得很好的負載均衡。比如: 
可以把經常響應的表移動到其他空閒機器上,然後快速重建。Tablets在系統中的存儲方式 
是不可修改的immutable       的SSTables,一臺機器一個日誌文件。 

    BigTable 中最重要的選擇是將數據存儲分爲兩部分,主體部分是不可變的,以SSTable 
的格式存儲在GFS 中,最近的更新則存儲在內存(稱爲memtable)中。讀操作需要根據SSTable 
和memtable 還綜合決定要讀取的數據的值。 

    Google 的Bigtable  是不支持事務,只保證對單條記錄的原子性。事務是好東西,但事 
務也是導致數據庫實現複雜化、性能下降最主要的根源。BigTable 的開發者通過調研後發現 
其實大家對事務都沒什麼需求,只要保證對單條記錄的更新是原子的就可以了。這樣,爲了 
支持事務所要考慮的串行化、事務的回滾等、死鎖檢測(一般認爲,分佈式環境中的死鎖檢 
測是不可能的,一般都用超時解決)等等複雜問題都不見了。系統實現進一步簡化。 

10、Google 並行鎖服務Chubby lock 
    在 Google  這種的分佈式系統中,需要一種分佈式鎖服務來保證系統的一致性。於是 
Google 有了Chubby   lock  service。而同樣是Yahoo !Research 向開源貢獻了Zookeeper,一 
個類似Google Chubby 的項目。 

    在Google  File  System(GFS)中,有很多的服務器,這些服務器需要選舉其中的一臺作爲 
master server。Value 就是master server 的地址,GFS 就是用Chubby 來解決的這個問題,所 
有的server 通過Chubby 提供的通信協議到Chubby server 上創建同一個文件,當然,最終只 
有一個server  能夠獲准創建這個文件,這個server  就成爲了master,它會在這個文件中寫 
入自己的地址,這樣其它的server  通過讀取這個文件就能知道被選出的master 的地址。 
Chubby 首先是一個分佈式的文件系統。Chubby  能夠提供機制使得 client       可以在Chubby 
service 上創建文件和執行一些文件的基本操作。說它是分佈式的文件系統,是因爲一個 
Chubby cell 是一個分佈式的系統。但是,從更高一點的語義層面上,Chubby 是一個 lock 
service,一個針對松耦合的分佈式系統的lock service。所謂lock  service,就是這個service 
能夠提供開發人員經常用的“鎖”,“解鎖”功能。通過 Chubby,一個分佈式系統中的上千 
個client 都能夠 對於某項資源進行“加鎖”,“解鎖”。 

    Chubby 中的“鎖”就是建立文件,在上例 中,創建文件其實就是進行“加鎖”操作, 
創建文件成功的那個server 其實就是搶佔到了“鎖”。用戶通過打開、關閉和讀取文件,獲 
取共享鎖或者獨佔鎖;並且通過通信機制,向用戶發送更新信息。 

11、Google 消息序列處理系統Google Workqueue 
    GWQ   (Google Workqueue)系統是負責將Mapreduce 的工作任務安排各個各個計算單 
位的(Cell/Cluster)。仲裁 (進程優先級)附表,分配資源,處理故障,報告情況,收集的 
結果-   通常隊列覆蓋在GFS  上的。消息隊列處理系統可以同時管理數萬服務器。通過API 
接口和命令行可以調動GWQ 來進行工作。 

12、Google   的開發工具。 
    除了傳統的C++  和Java。還開始大量使用Python。 
    Python 是一種面向對象、直譯式計算機程序設計語言,也是一種功能強大而完善的通 
用型語言,已經具有十多年的發展歷史,成熟且穩定。這種語言具有非常簡捷而清晰的語法 
特點,適合完成各種高層任務,幾乎可以在所有的操作系統中運行。 

    Python 可能被粗略地分類爲“腳本語言”(Script Language),但實際上一些大規模軟件 
開發計劃例如 Zope、Mnet           BitTorrent,Google 也廣泛地使用它。 Python       的支持者較 
喜歡稱它爲一種高級動態編程語言,原因是“腳本語言”泛指僅作簡單編程任務的語言,如 
shell script、JavaScript 等只能處理簡單任務的編程語言,並不能與 Python             相提並論。此外, 
由於 Python   對於 C   和其他語言的良好支持,很多人還把 Python                作爲一種“ 水語言” 
 (Glue Language)使用。使用 Python     將其他語言編寫的程序進行集成和封裝。在 Google 
內部的很多項目使用 C++         編寫性能要求極高的部分,然後用Python 調用相應的模塊。 

    Sawzall,爲了是內部的工程師和程序人員可以更方便的適應並行計算的方式,Google 
自己開發的一種查詢語言,Sawzall 是一種類型安全的腳本語言。由於Sawzall  自身處理了很 
多問題,所以完成相同功能的代碼就簡化了非常多-與MapReduce 的C++代碼相比簡化了10 
倍不止。 


四、借鑑與總結 

    從Google 的整體的技術構架來看,Google             計算系統依然是邊做科學研究,邊進行商 
業部署,依靠系統冗餘和良好的軟件構架來低成本的支撐龐大的系統運作的。 
    大型的並行計算,超大規模的IDC 快速部署,通過系統構架來使廉價PC 服務器具有超 
過大型機的穩定性都已經不在是科學實驗室的故事,已經成爲了互聯網時代,IT 企業獲得核 
心競爭力發展的基石。 

    Google  在應對互聯網海量數據處理的壓力下,充分借鑑了大量開源代碼,大量借鑑了 
其他研究機構和專家的思路,走了一條差異化的技術道路,構架自己的有創新性的 計算平 臺。 
    從Google  這樣互聯網企業可以看到,基於Linux 系統的開源代碼的方式,讓企業可以 
不收到商業軟件系統的限制,可以自主進行二次、定製開發。而這種能充分利用社會資源, 

並根據自己的能力進行定製化的系統設計最終將會成爲互聯網企業之間的核心競爭力。 



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章