資源描述:
《Google云計算原理與應(yīng)用》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、Google云計算原理與應(yīng)用答辯人:栗建行指導(dǎo)教師:郝衛(wèi)東主要內(nèi)容Google的“云”在哪里?Google云計算主要原理及應(yīng)用Google云計算平臺GAE開發(fā)環(huán)境及構(gòu)建Google基于安卓的智能家居Google的“云”在哪里?云計算是一個新概念于07年第3季度被提出,是并行計算、分布式計算和網(wǎng)格計算等技術(shù)的混合演進(jìn),經(jīng)過商業(yè)包裝的概念為分布式存儲和分布式計算找到了盈利模式提出以來發(fā)展迅速,Google、Amazon、Microsoft等公司都提出了自己的云計算方案為什么Google需要“云”?系統(tǒng)規(guī)模對
2、系統(tǒng)設(shè)計的重要性Google提供的服務(wù):海量信息+海量用戶,如何又好又快地提供服務(wù)?Google的“云”在哪里?Google的“云”無所不在GoogleEarth、Gmail、GoogleDocs云計算技術(shù)是Google大部分應(yīng)用的基礎(chǔ)設(shè)施沒有“云計算”,就沒有Google的創(chuàng)新服務(wù)Google云計算主要原理Google使用的云計算基礎(chǔ)架構(gòu)模式包括四個相互獨立而又緊密結(jié)合在一起的系統(tǒng):GoogleFileSystem:建立在集群之上的文件系統(tǒng)MapReduce:針對Google應(yīng)用程序的特點提出的編程模
3、式Chubby:分布式鎖服務(wù)BigTable:模型簡化的大規(guī)模分布式數(shù)據(jù)庫GoogleFileSystem文件系統(tǒng)GoogleFileSystem:GFS文件系統(tǒng)為了滿足Google迅速增長的數(shù)據(jù)處理需求應(yīng)運而生GFS文件系統(tǒng)與過去的分布式文件系統(tǒng)擁有許多相同的目標(biāo):性能、可伸縮性、可靠性以及可用性GFS文件系統(tǒng)要解決Google所面臨的的與眾不同的問題,具有與Google應(yīng)用負(fù)載和技術(shù)環(huán)境相符的特性GoogleFileSystem文件系統(tǒng)新特性主要體現(xiàn)在以下四個方面集群中的節(jié)點失效是一種常態(tài),而不是一
4、種異常Google系統(tǒng)中的文件大小與通常文件系統(tǒng)中的文件大小概念不一樣,文件大小通常以G字節(jié)計Google文件系統(tǒng)中的文件讀寫模式和傳統(tǒng)的文件系統(tǒng)不同文件系統(tǒng)的某些具體操作不再透明,而且需要應(yīng)用程序的協(xié)助完成,應(yīng)用程序和文件系統(tǒng)API的協(xié)同設(shè)計提高了整個系統(tǒng)的靈活性GoogleFileSystem文件系統(tǒng)系統(tǒng)架構(gòu):客戶端(Client):應(yīng)用程序的訪問接口主服務(wù)器(Master):管理節(jié)點,在邏輯上只有一個,保存系統(tǒng)的元數(shù)據(jù),負(fù)責(zé)整個系統(tǒng)的管理數(shù)據(jù)塊服務(wù)器(ChunkSever):負(fù)責(zé)具體的存儲工作Go
5、ogleFileSystem文件系統(tǒng)實現(xiàn)機制:客戶端首先訪問Master節(jié)點,獲取交互的ChunkServer信息,然后訪問這些ChunkServer,完成數(shù)據(jù)存取工作。這種設(shè)計方法實現(xiàn)了控制流和數(shù)據(jù)流的分離。Client與Master之間只有控制流,而無數(shù)據(jù)流,極大地降低了Master的負(fù)載。Client與ChunkServer之間直接傳輸數(shù)據(jù)流,同時由于文件被分成多個Chunk進(jìn)行分布式存儲,Client可以同時訪問多個ChunkServer,從而使得整個系統(tǒng)的I/O高度并行,系統(tǒng)整體性能得到提高。
6、MapReduce分布式數(shù)據(jù)處理MapReduceGoogle提出的一個軟件架構(gòu),是一種處理海量數(shù)據(jù)的并行編程模式用于大規(guī)模數(shù)據(jù)集(通常大于1TB)的并行運算MapReduce實現(xiàn)了Map和Reduce兩個功能Map把一個函數(shù)應(yīng)用于集合中的所有成員,然后返回一個基于這個處理的結(jié)果集Reduce對結(jié)果集進(jìn)行分類和歸納Map()和Reduce()兩個函數(shù)可能會并行運行,即使不是在同一的系統(tǒng)的同一時刻MapReduce分布式數(shù)據(jù)處理MapReduce操作執(zhí)行流程圖MapReduce分布式數(shù)據(jù)處理詞頻統(tǒng)計流程:
7、Chubby分布式鎖服務(wù)分布式一致性問題在一個分布式系統(tǒng)中,有一組的Process,它們需要確定一個Value。于是每個Process都提出了一個Value,一致性就是指只有其中的一個Value能夠被選中作為最后確定的值,并且當(dāng)這個值被選出來以后,所有的Process都需要被通知到Chubby分布式鎖服務(wù)Google云計算中的分布式一致性問題例如,GFS在物理上往往包含多個Master,但需要在邏輯上確定唯一的Master。如何確定?這是一個分布式一致性問題Chubby是Google為解決分布式一致性問
8、題而設(shè)計的提供粗粒度鎖服務(wù)的文件系統(tǒng)Chubby分布式鎖服務(wù)Chubby是一個文件系統(tǒng),如何提供“鎖”服務(wù)Chubby中的鎖就是文件在GFS的例子中,創(chuàng)建文件就是進(jìn)行“加鎖”操作,創(chuàng)建文件成功的那個server其實就是搶占到了“鎖”用戶通過打開、關(guān)閉和讀取文件,獲取共享鎖或者獨占鎖;并且通過通信機制,向用戶發(fā)送更新信息因此,通過Chubby可以解決Google云計算中的分布式一致性問題BigTable大規(guī)模分布式數(shù)據(jù)庫BigTable的設(shè)計