詳聊Google云計算的基礎(chǔ)架構(gòu) |
發(fā)布時間: 2012/9/15 16:27:43 |
GFS是 google自己設(shè)計的分布式文件系統(tǒng),是大量安裝有Linux操作系統(tǒng)的普通PC構(gòu)成的集群系統(tǒng)。整個集群系統(tǒng)由一臺Master(通常有幾臺備份)和若干臺TrunkServer構(gòu)成。GFS中文件備份成固定大小的Trunk分別存儲在不同的TrunkServer上,每個Trunk有多份拷貝,也存儲在不同的TrunkServer上。Master負責維護GFS中的 Metadata,即文件名及其Trunk信息?蛻舳讼葟腗aster上得到文件的Metadata,根據(jù)要讀取的數(shù)據(jù)在文件中的位置與相應(yīng)的 TrunkServer通信。本文介紹Google云計算的基礎(chǔ)架構(gòu)。 據(jù)介紹,google的每一份數(shù)據(jù)至少放在三個不同位置的機器上,所以可靠性是可以高度保證的;而且操作GFS和操作本地磁盤一樣簡單易行。 目前Google擁有超過200個的GFS集群,其中有些集群的計算機數(shù)量超過5000臺。Google現(xiàn)在擁有數(shù)以萬計的連接池從GFS集群中獲取數(shù)據(jù),集群的數(shù)據(jù)存儲規(guī)模可以達到5個PB,并且集群中的數(shù)據(jù)讀寫吞吐量可達到每秒40G。 MapReduce是一個編程模式,它是與處理/產(chǎn)生海量數(shù)據(jù)集的實現(xiàn)相關(guān)。用戶指定一個map函數(shù),通過這個map函數(shù)處理key/value(鍵/值)對,并且產(chǎn)生一系列的中間key/value對,并且使用reduce函數(shù)來合并所有的具有相同key值的中間鍵值對中的值部分。MapReduce的主要貢獻在于提供了一個簡單強大的接口,通過這個接口,可以把大尺度的計算自動的并發(fā)和分布執(zhí)行。 常見的應(yīng)用例子:在很大的文檔集合中通機每一個單詞出現(xiàn)的次數(shù).map函數(shù)檢查每一個單詞,并且對每一個單詞增加1到其對應(yīng)的計數(shù)器;reduce函數(shù)把特定單詞的所有出現(xiàn)的次數(shù)進行合并。其他例子: URL訪問頻率統(tǒng)計:map函數(shù)處理webpag請求和應(yīng)答(URL,1)的log。Reduce函數(shù)把所有相同的URL的值合并,并且輸出一個成對的(URL,總個數(shù))。 逆向Web-Link,map函數(shù)輸出所有包含指向target URL的source網(wǎng)頁,用(target,source)這樣的結(jié)構(gòu)對輸出。Reduce函數(shù)局和所有關(guān)聯(lián)相同target URL的source列表,并且輸出一個(target,list(source))這樣的結(jié)構(gòu)。 分布式排序:map函數(shù)從每條記錄中抽取關(guān)鍵字,并且產(chǎn)生(key,record)對。reduce函數(shù)原樣輸出所有的關(guān)鍵字對。 BigTable:一種用于管理超大規(guī)模結(jié)構(gòu)化數(shù)據(jù)的分布式存儲系統(tǒng),可以管理分布在數(shù)以千計服務(wù)器上的以PB計的數(shù)據(jù)。Bigtable API將包括用于創(chuàng)建、編輯表和列,改變?nèi)杭、表、列元?shù)據(jù)的函數(shù)。BT不支持完全的關(guān)系數(shù)據(jù)模型,而是為客戶提供了簡單的數(shù)據(jù)模型,讓客戶來動態(tài)控制數(shù)據(jù)的分布和格式。BT只能支持大部分SQL。 Google App Engine Google App Engine是一個開發(fā)、托管網(wǎng)絡(luò)應(yīng)用程序的平臺,使用Google管理的數(shù)據(jù)中心。它在2008年4月發(fā)布了第一個beta版本。Google App Engine使用了云計算技術(shù),它跨越多個服務(wù)器和數(shù)據(jù)中心來虛擬化應(yīng)用程序。當前,Google App Engine支持的編程語言是Python和Java. http://appengine.google.com Hadoop Google的上述分布式框架很有創(chuàng)造性,而且有極大的擴展性,使得Google在系統(tǒng)吞吐量上有很大的競爭力,但是用C++寫的。因此Apache基金會用Java實現(xiàn)了一個開源版本hadoop,支持Fedora、Ubuntu等Linux平臺。以上介紹Google云計算的基礎(chǔ)架構(gòu)。 本文出自:億恩科技【1tcdy.com】 服務(wù)器租用/服務(wù)器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |