作者:江南白衣,,原文出處: http://www./calvin/archive/2007/01/31/96844.html ,,轉(zhuǎn)載請(qǐng)保留出處。
如果說(shuō)Google的搜索引擎是免費(fèi)的早餐,,Gmail們是免費(fèi)的午餐的話,, http://labs.google.com/papers/ 就是Google給開(kāi)發(fā)人員們的一份免費(fèi)的晚餐,。 不過(guò),咋看著一桌飯菜可能不知道從哪吃起,,在自己不熟悉的領(lǐng)域啃英文也不是一件愉快的事情,。 幸好,有一位面試google不第的老兄,,自我爆發(fā)搞了一份Google Interal的PPT: http:///talks/googleinternals/index.html,,大家鼠標(biāo)點(diǎn)點(diǎn)就能跟著他匆匆過(guò)一遍google的內(nèi)部架構(gòu)。 然后又有崮崮山路上走9遍(http://sharp838.)與美人他爹(http://my.donews.com/eraera/),,翻譯了其中最重要的四份論文: 《MapRedue:在超大集群上的簡(jiǎn)易數(shù)據(jù)處理》--Simplified Data Processing on Large Clusters 《The Google File System》
1.GFS(Google File System):GFS是適用于大規(guī)模分布式數(shù)據(jù)處理應(yīng)用的分布式文件系統(tǒng),是Google一切的基礎(chǔ),,它基于普通的硬件設(shè)備,,實(shí)現(xiàn)了容錯(cuò)的設(shè)計(jì)與極高的性能。 李開(kāi)復(fù)說(shuō):Google最厲害的技術(shù)是它的storage,。我認(rèn)為學(xué)計(jì)算機(jī)的學(xué)生都應(yīng)該看看這篇文章(再次感謝翻譯的兄弟),。 它以64M為一個(gè)Chunk(Block),每個(gè)Chunk至少存在于三臺(tái)機(jī)器上,,交互的簡(jiǎn)單過(guò)程見(jiàn): 2.MapReduce MapReduce是一個(gè)分布式處理海量數(shù)據(jù)集的編程模式,,讓程序自動(dòng)分布到一個(gè)由普通機(jī)器組成的超大集群上并發(fā)執(zhí)行。像Grep-style job,,日志分析等都可以考慮采用它,。 我自己接觸MapReduce是Lucene->Nutch->Hadoop的路線。 3.BigTable BigTable 是Google Style的數(shù)據(jù)庫(kù),,使用結(jié)構(gòu)化的文件來(lái)存儲(chǔ)數(shù)據(jù)。 BigTable是一個(gè)稀疏的,,多維的,,排序的Map,每個(gè)Cell由行關(guān)鍵字,,列關(guān)鍵字和時(shí)間戳三維定位.Cell的內(nèi)容是一個(gè)不解釋的字符串,。
為了并發(fā)讀寫(xiě),,熱區(qū),,HA等考慮,BigTable當(dāng)然不會(huì)存在逗號(hào)分割的文本文件中,,,,是存儲(chǔ)在一種叫SSTable的數(shù)據(jù)庫(kù)結(jié)構(gòu)上,并有BMDiff和Zippy兩種不同側(cè)重點(diǎn)的壓縮算法,。 4.SawzallSawzall是一種建立在MapReduce基礎(chǔ)上的領(lǐng)域語(yǔ)言,,可以被認(rèn)為是分布式的awk。它的程序控制結(jié)構(gòu)(if,while)與C語(yǔ)言無(wú)異,,但它的領(lǐng)域語(yǔ)言語(yǔ)義使它完成相同功能的代碼與MapReduce的C++代碼相比簡(jiǎn)化了10倍不止,。 1 proto "cvsstat.proto"
2 submits: table sum[hour: int] of count: int; 3 log: ChangelistLog = input; 4 hour: int = hourof(log.time) 5 emit submits[hour] <- 1; 我們這次是統(tǒng)計(jì)在每天24小時(shí)里CVS提交的次數(shù),。 1:引入cvsstat.proto協(xié)議描述,,作用見(jiàn)后,。 居然讀懂了,其中1,、2步是準(zhǔn)備與定義,,3、4步是Map,,第5步是Reduce,。 5. 小結(jié): 本文只是簡(jiǎn)單的介紹Google的技術(shù)概貌,大家知道以后除了可作談資外沒(méi)有任何作用,,我們真正要學(xué)習(xí)的骨血,,是論文里如何解決高并發(fā),高可靠性等的設(shè)計(jì)思路和細(xì)節(jié)..... |
|
來(lái)自: 大夢(mèng)平生 > 《技術(shù)文檔》