

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、GoogleGoogle的十個核心技術的十個核心技術任職于IBM中國研究院,從事與云計算相關研究的CSDN博客專家吳朱華曾寫過一篇文章《探索GoogleAppEngine背后的奧秘(1)Google的核心技術》,對Google的核心技術和其整體架構進行詳細的分析,現(xiàn)轉載于此,供大家學習。本篇將主要介紹Google的十個核心技術,而且可以分為四大類:1.分布式基礎設施:GFS,Chubby和ProtocolBuffer。2.分布式大規(guī)模數(shù)
2、據(jù)處理:MapReduce和Sawzall。3.分布式數(shù)據(jù)庫技術:BigTable和數(shù)據(jù)庫Sharding。4.數(shù)據(jù)中心優(yōu)化技術:數(shù)據(jù)中心高溫化,12V電池和服務器整合。分布式基礎設施分布式基礎設施GFSGFS由于搜索引擎需要處理海量的數(shù)據(jù),所以Google的兩位創(chuàng)始人LarryPage和SergeyBrin在創(chuàng)業(yè)初期設計一套名為“BigFiles”的文件系統(tǒng),而GFS(全稱為“GoogleFileSystem”)這套分布式文件系統(tǒng)則是
3、“BigFiles”的延續(xù)。首先,介紹它的架構,GFS主要分為兩類節(jié)點:1.Master節(jié)點:主要存儲與數(shù)據(jù)文件相關的元數(shù)據(jù),而不是Chunk(數(shù)據(jù)塊)。元數(shù)據(jù)包括一個能將64位標簽映射到數(shù)據(jù)塊的位置及其組成文件的表格,數(shù)據(jù)塊副本位置和哪個進程正在讀寫特定的數(shù)據(jù)塊等。還有Master節(jié)點會周期性地接收從每個Chunk節(jié)點來的更新(”Heartbeat”)來讓元數(shù)據(jù)保持最新狀態(tài)。2.Chunk節(jié)點:顧名思義,肯定用來存儲Chunk,數(shù)據(jù)文
4、件通過被分割為每個默認大小為64MB的Chunk的方式存儲,而且每個Chunk有唯一一個64位標簽,并且每個Chunk都會在整個分布式系統(tǒng)被復制多次,默認為3次。下圖就是GFS的架構圖:于多個Google服務,比如Google搜索。但由于GFS主要為搜索而設計,所以不是很適合新的一些Google產品,比YouTube、Gmail和更強調大規(guī)模索引和實時性的Caffeine搜索引擎等,所以Google已經(jīng)在開發(fā)下一代GFS,代號為“Col
5、ossus”,并且在設計方面有許多不同,比如:支持分布式Master節(jié)點來提升高可用性并能支撐更多文件,chunk節(jié)點能支持1MB大小的chunk以支撐低延遲應用的需要。ChubbyChubby簡單的來說,Chubby屬于分布式鎖服務,通過Chubby,一個分布式系統(tǒng)中的上千個client都能夠對于某項資源進行“加鎖”或者“解鎖”,常用于BigTable的協(xié)作工作,在實現(xiàn)方面是通過對文件的創(chuàng)建操作來實現(xiàn)“加鎖”,并基于著名科學家Lesl
6、ieLampt的Paxos算法。ProtocolProtocolBufferBufferProtocolBuffer,是Google內部使用一種語言中立,平臺中立和可擴展的序列化結構化數(shù)據(jù)的方式,并提供java、c和python這三種語言的實現(xiàn),每一種實現(xiàn)都包含了相應語言的編譯器以及庫文件,而且它是一種二進制的格式,所以其速度是使用xml進行數(shù)據(jù)交換的10倍左右。它主要用于兩個方面:其一是RPC通信,它可用于分布式應用之間或者異構環(huán)境下
7、的通信。其二是數(shù)據(jù)存儲方面,因為它自描述,而且壓縮很方便,所以可用于對數(shù)據(jù)進行持久化,比如存儲日志信息,并可被MapReduce程序處理。與ProtocolBuffer比較類似的產品還有Facebook的Thrift,而且Facebook號稱Thrift在速度上還有一定的優(yōu)勢。分布式大規(guī)模數(shù)據(jù)處理分布式大規(guī)模數(shù)據(jù)處理MapReduceMapReduce首先,在Google數(shù)據(jù)中心會有大規(guī)模數(shù)據(jù)需要處理,比如被網(wǎng)絡爬蟲(WebCrawle
8、r)抓取的大量網(wǎng)頁等。由于這些數(shù)據(jù)很多都是PB級別,導致處理工作不得不盡可能的并行化,而Google為了解決這個問題,引入了MapReduce這個編程模型,MapReduce是源自函數(shù)式語言,主要通過“Map(映射)“和“Reduce(化簡)“這兩個步驟來并行處理大規(guī)模的數(shù)據(jù)集。Map會先對由很多獨立元素組成的邏輯列表中的每一個元素進行指定的操作,且原始列表不會被更改,會創(chuàng)建多個新的列表來保存Map的處理結果。也就意味著,Map操作是高
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論