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