版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、云計(jì)算Google的技術(shù)構(gòu)架_、/ A 一、刖計(jì)算無(wú)疑是今年IT技術(shù)界最熱點(diǎn)的關(guān)鍵詞之一。從谷歌趨勢(shì)分析來(lái)看,國(guó)際上Cloud computing是從2007年中期開(kāi)頭成為整個(gè)業(yè)界關(guān)注的重點(diǎn),在中國(guó)云計(jì)算是從2022年開(kāi) 頭成為中國(guó)IT界和通信界關(guān)注的核心。特殊是,當(dāng)中國(guó)移動(dòng)2022年開(kāi)頭關(guān)注 計(jì)算,并推 動(dòng)中國(guó)移動(dòng)相關(guān)的業(yè)務(wù)支撐系統(tǒng)、業(yè)務(wù)軟件平臺(tái)開(kāi)頭向計(jì)算的平臺(tái)遷移。使得整個(gè)中國(guó)IT界、通信界的相關(guān)產(chǎn)業(yè)力氣更加關(guān)注計(jì)算,同時(shí)大家也開(kāi)頭意識(shí)到了計(jì)算確實(shí)可以大大的節(jié)約海量計(jì)算的總體擁有本錢。cloud computing 云計(jì)算當(dāng)業(yè)界談到 計(jì)算的時(shí)候,都會(huì)第一個(gè)想到谷歌Googleo我們?nèi)粘T谑?/p>
2、用的GoogleSearch, Google Earth, Goolge Map, Google Gmail, Google Doc 等等業(yè)務(wù)都是 Google 基于 自己計(jì)算平臺(tái)來(lái)供應(yīng)的。Google也是通過(guò)云計(jì)算的方式,大量的降低計(jì)算本錢,使之業(yè)務(wù)更具有競(jìng)爭(zhēng)力。Google原先企業(yè)初期階段,獲得的投資有限,只能自己攢機(jī),但是很差的機(jī)器不行能發(fā)揮服務(wù)器的性能和穩(wěn)定性,于是只有去想該如何提高牢靠性,如何采用很多”破爛“機(jī)器獲 據(jù)說(shuō)有Intel的,也有AMD的在使用。8個(gè)2GB的DDR3,支持ECC容錯(cuò)的高速內(nèi)存, 采納RAID 1的磁盤(pán)鏡像,來(lái)提升I/O效率。磁盤(pán)采納SATA,單機(jī)存儲(chǔ)容量可以
3、到達(dá)1-2TB。每個(gè)服務(wù)器刀片自帶12V的電池來(lái)保證在短期沒(méi)有外部電源的時(shí)候可以保持服務(wù)器刀片正常運(yùn)行。Google的硬件設(shè)計(jì)人員認(rèn)為,這個(gè)自帶電池的方式,要比傳統(tǒng)的使用UPS的方式效率更高。一般數(shù)據(jù)中心多倚賴稱為不間斷電源系統(tǒng)(UPS)的大型中控機(jī)型,這基本上算是大電池,Page 9會(huì)在主電力失效而發(fā)電機(jī)還來(lái)不及啟動(dòng)時(shí),臨時(shí)幫助供電。Google 的硬件設(shè)計(jì)人員表示,直接把電力內(nèi)建到服務(wù)器比擬廉價(jià),而且本錢能直接跟服務(wù)器數(shù)量相符合?!斑@種作法比使用大型UPS節(jié)約得多,如此也不會(huì)鋪張多余的容量J效率也是另一個(gè)財(cái)務(wù)考量因素。大型UPS可達(dá)92-95%的效率,這意味著很多電力還是被鋪張掉了。但Go
4、ogle采納的內(nèi)建電池作法卻好很多,Google相關(guān)人員表示,“我們測(cè)量 的結(jié)果是效率超過(guò)99.9%年份Google服務(wù)器刀片硬件配置1999/2000 PII/PIII 128MB+200切004Celeron 533, Pill 1.4 SMP, 2-4GB DRAM, Dual XEON 2.0/1-4GB/40-160GBIDE - SATA Disks via Silicon Images SATA 3114/SATA 31242006Dual Opteron/Working Set DRAM(4GB+)/2x400GB IDE (RAIDO?)20222-Way/Dual Core
5、/16GB/1-2TB SATA6、Google服務(wù)器使用的操作系統(tǒng)Google服務(wù)器使用的操作系統(tǒng)是基于RedhatLinux2.6的內(nèi)核,并做了大量修改。修改了 GNUC函數(shù)庫(kù)(glibc),遠(yuǎn)程過(guò)程調(diào)用(RPC),開(kāi)發(fā)了自己的Ipvs,自己修改了文件系 統(tǒng),形成了自己的GFSII,修改了 linux內(nèi)核和相關(guān)的子系統(tǒng),是其支持IPV6。采納了 Python來(lái)作 為主要的腳本語(yǔ)言。下表是一些大型互聯(lián)網(wǎng)公司使用的操作系統(tǒng)比照。網(wǎng)站操作系統(tǒng)Web應(yīng)用服務(wù)器GoogleLinuxGoogle Web ServerPage 10微軟Windows serverIISebayWindows serv
6、erIIS阿里巴巴LinuxApache新浪Free BSDApache百度LinuxApache163LinuxApache搜狐Sco UnixApache7、Google計(jì)算文件系統(tǒng)GFS/GFSIIGFSII cell是Google文件系統(tǒng)中最基礎(chǔ)的模塊。任何文件和數(shù)據(jù)都可以采用這種底層模塊。GFSII通過(guò)基于Linux分布存儲(chǔ)的方式,對(duì)于服務(wù)器來(lái)說(shuō),分成了主服務(wù)器(MasterServers)和塊存儲(chǔ)服務(wù)器(Chunk Servers), GFS上的塊存儲(chǔ)服務(wù)器上的存儲(chǔ)空間以64MB為單位,分成很多的存儲(chǔ)塊,由主服務(wù)器來(lái)進(jìn)行存儲(chǔ)內(nèi)容的調(diào)度和安排。每一份數(shù)據(jù)都是一式三份的方式,將同樣的數(shù)
7、據(jù)分布存儲(chǔ)在不同的服務(wù)器集中,以保證數(shù)據(jù)的平安性和吞吐的效率提高。當(dāng)需要對(duì)于文件、數(shù)據(jù)進(jìn)行存儲(chǔ)的時(shí)候,應(yīng)用程序之間將需求發(fā)給主服務(wù)器,主服務(wù)器依據(jù)所管理的塊存儲(chǔ)服務(wù)器的狀況,將需要存儲(chǔ)的內(nèi)容進(jìn)行安排,并將可以存儲(chǔ)的消息(使用那些塊存儲(chǔ)服務(wù)器,那些地址空間),有應(yīng)用程序下面的GFS 接口在對(duì)文件和數(shù)據(jù)直接存儲(chǔ)到相應(yīng)的塊存儲(chǔ)服務(wù)器當(dāng)中。塊存儲(chǔ)服務(wù)器要定時(shí)通過(guò)心跳信號(hào)的方式告知主服務(wù)器,目前自己的狀況,一旦心跳信號(hào)出了問(wèn)題,主服務(wù)器會(huì)自動(dòng)將有問(wèn)題的塊存儲(chǔ)服務(wù)器的相關(guān)內(nèi)容進(jìn)行復(fù)制。以保證數(shù)據(jù)的 平安性。數(shù)據(jù)被存儲(chǔ)時(shí)是經(jīng)過(guò)壓縮的。采納的BMDiff和Zippy算法。BMDiff使用最長(zhǎng)公共子序列進(jìn)行壓縮
8、,壓縮lOOMB/s, 解壓縮約lOOOMB/s.類似的有IBMHashSuffix Array DeltaCompression.Zippy是LZW的改進(jìn)版本,壓縮比不如LZW, 但是速度更快.Page 118、Google 并行計(jì)算構(gòu)架Mapreduce有了強(qiáng)大的分布式文件系統(tǒng),Google遇到的問(wèn)題就是怎么才能讓公司全部的程序員都學(xué)會(huì)些分布式計(jì)算的程序呢?于是,那些Google工程師們從lisp和其他函數(shù)式編程語(yǔ)言中的映射和化簡(jiǎn)操作中得到靈感,搞出了 Map/Reduce這一套并行計(jì)算的框架。Map/Reduce被Google拿來(lái)重新了 Google Search Engine的整個(gè)索引
9、系統(tǒng)。ffi Doug Cutting同樣用Java 將這一套實(shí)現(xiàn)和HDFS合在一起成為Hadoop的Core。MapReduce是Google提出的一個(gè)軟件架構(gòu),用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運(yùn)算。概念“Map(映射)”和“Reduce (化簡(jiǎn))”,和他們的主要思想,都是從函數(shù)式編程語(yǔ)言借來(lái)的,還有從矢量編程語(yǔ)言借來(lái)的特性。映射和化簡(jiǎn)簡(jiǎn)潔說(shuō)來(lái),一個(gè)映射函數(shù)就是對(duì)一些獨(dú)立元素組成的概念上的列表(例如,一個(gè)測(cè)試成 績(jī)的列表)的每一個(gè)元素進(jìn)行指定的操作(比方前面的例子里,有人覺(jué)察全部同學(xué)的成果都 被高估了一分,他可以定義一個(gè)“減一”的映射函數(shù),用來(lái)修正這個(gè)錯(cuò)誤。)。事實(shí)上,每個(gè) 元素都是被獨(dú)
10、立操作的,而原始列表沒(méi)有被更改,由于這里創(chuàng)立了一個(gè)新的列表來(lái)保存新的答案。這就是說(shuō),Map答案。這就是說(shuō),Map操作是可以高度并行的,這對(duì)高性能要求的應(yīng)用以并行計(jì)算領(lǐng)域的需求特別有用。而化簡(jiǎn)操作指的是對(duì)一個(gè)列表的元素進(jìn)行適當(dāng)?shù)暮喜ⅲㄟB續(xù)看前面的例子,假如有人想 知道班級(jí)的平均分該怎么做?他可以定義一個(gè)化簡(jiǎn)函數(shù),通過(guò)讓列表中的元素 跟自己的相 Page 12鄰的元素相加的方式把列表減半,如此遞歸運(yùn)算直到列表只剩下一個(gè)元素,然后用這個(gè)元素 除以人數(shù),就得到了平均分。)。雖然他不如映射函數(shù)那么并 行,但是由于化簡(jiǎn)總是有一個(gè)簡(jiǎn)潔的答案,大規(guī)模的運(yùn)算相對(duì)獨(dú)立,所以化簡(jiǎn)函數(shù)在高度并行環(huán)境下也很有用。分布和
11、牢靠性MapReduce通過(guò)把對(duì)數(shù)據(jù)集的大規(guī)模操作分發(fā)給網(wǎng)絡(luò)上的每個(gè)節(jié)點(diǎn)實(shí)現(xiàn)牢靠性;每個(gè) 節(jié)點(diǎn)會(huì)周期性的把完成的工作和狀態(tài)的更新報(bào)告回來(lái)。假如一個(gè)節(jié)點(diǎn)保持緘默超過(guò)一個(gè)預(yù) 設(shè)的時(shí)間間,主節(jié)點(diǎn)(類同Google File System中的主服務(wù)器)紀(jì)錄下這個(gè)節(jié)點(diǎn)狀態(tài)為 死亡,并把安排給這個(gè)節(jié)點(diǎn)的數(shù)據(jù)發(fā)到別的節(jié)點(diǎn)。每個(gè)操作使用命名文件的原子操作以確保不 會(huì)發(fā)生并行線程間的沖突;當(dāng)文件被改名的時(shí)候,系統(tǒng)可能會(huì)把他們復(fù)制到任務(wù)名以外的另一個(gè)名字上去。(避開(kāi)副作用)?;?jiǎn)操作工作方式很類似,但是由于化簡(jiǎn)操作在并行力量較差,主節(jié)點(diǎn)會(huì)盡量把化簡(jiǎn)操作調(diào)度在一個(gè)節(jié)點(diǎn)上,或者離需要操作的數(shù)據(jù)盡可能進(jìn)的節(jié)點(diǎn)上了;這個(gè)
12、特性可以滿意Google的需求,由于他們有足夠的帶寬,他們的內(nèi)部網(wǎng)絡(luò)沒(méi)有那么多的機(jī)器。在Google, MapReduce用在特別廣泛的應(yīng)用程序中,包括“分布grep,分布排序,web 連接圖反轉(zhuǎn),每臺(tái)機(jī)器的詞矢量,web訪問(wèn)日志分析,反向索引構(gòu)建,文檔聚類,機(jī)器學(xué)習(xí),基于統(tǒng)計(jì)的機(jī)器翻譯”值得留意的是,MapReduce實(shí)現(xiàn)以后,它被用來(lái)重新生成Google的整個(gè)索弓I,并取代老的ad hoc程序去更新索引。MapReduce會(huì)生成大量的臨時(shí)文件, 為了提高效率,它采用Google文件系統(tǒng)來(lái)管理和訪問(wèn)這些文件。Page 139、Google并行計(jì)算數(shù)據(jù)庫(kù)Bigtable有了強(qiáng)大的存儲(chǔ),有了強(qiáng)大
13、的計(jì)算力量,剩下的Google要面對(duì)的是:它的應(yīng)用中有很多結(jié)構(gòu)化、半結(jié)構(gòu)化的數(shù)據(jù),如何高效地管理這些結(jié)構(gòu)化、半結(jié)構(gòu)化的數(shù)據(jù)呢? Google 需要的是一個(gè)分布式的類DBMS的系統(tǒng),于是催生了 BigTable這個(gè)東西讓Google在供應(yīng)新Google 的 BigTable 從 2004 年初就開(kāi)頭研發(fā)了,BigTable 服務(wù)時(shí)的運(yùn)行本錢降低,最大限度地采用了計(jì)算力量。BigTable是建立在GFS , Scheduler , LockService 和 MapReduce 之上的。每個(gè)Table都是一個(gè)多維的稀疏圖sparse map。Table由行和列組成,并且每個(gè)存儲(chǔ)單元cell都有一個(gè)
14、時(shí)間戳。在不同的時(shí)間對(duì)同一個(gè)存儲(chǔ)單元cell有多份拷貝,這樣就可以記錄數(shù)據(jù)的變動(dòng)狀況。數(shù)據(jù)存儲(chǔ)的結(jié)構(gòu)是(row:string, column:string, time:int64)-string行:表中的行鍵(目前任意字符串至64KB的大小)。每一個(gè)讀取或?qū)懭氲臄?shù)據(jù)下單行的關(guān) 鍵是原子(不管數(shù)目不同的列被讀取或行中寫(xiě)的),更簡(jiǎn)潔為客戶的緣由關(guān)于系統(tǒng)中的行為同時(shí) 存在對(duì)同一行的更新。歹!J:Page 14列項(xiàng)分為集合稱為列的家族,它們形成了訪問(wèn)掌握的基本單位。全部數(shù)據(jù)在一列中存儲(chǔ)的家族通常是同一類型。當(dāng)數(shù)據(jù)以這個(gè)列鍵值被存儲(chǔ)之前,列的家族必需被創(chuàng)立。家族內(nèi)的 任何列鍵值可以使用。由于,重疊的列鍵
15、值比擬少,與此相反,一個(gè)表可能有無(wú)限的列數(shù)。時(shí)間戳:Bigtable的每一個(gè)細(xì)胞中可以包含多個(gè)版本同樣的數(shù)據(jù),這些版本的時(shí)間戳索引。Bigtable的時(shí)間戳64位整數(shù)。它們可以被安排由Bigtable的,在這種狀況下,他們真正代表聯(lián)聰以 微秒的時(shí)間,或明確指定的客戶端應(yīng)用程序。應(yīng)用程序需要避開(kāi)沖突必需制造自己獨(dú)特的時(shí)間戳。不同一個(gè)單元格的版本都存儲(chǔ)在時(shí)間戳挨次遞減,因此,最近的版本可以首先閱讀。為了管理 大的Table,把Table依據(jù)行分割,這些分割后的數(shù)據(jù)統(tǒng)稱為:Tablets。每 個(gè)Tablets也許有100-200 MB,每個(gè)機(jī)器存儲(chǔ)100個(gè)左右的Tablets。底層的架構(gòu)是:GFS。
16、由于GFS是一種分布式的文件系統(tǒng),采納Tablets的機(jī)制后,可以獲得很好的負(fù)載均衡。比 如:可以把常常響應(yīng)的表移動(dòng)到其他空閑機(jī)器上,然后快速重建。Tablets 在系統(tǒng)中的存儲(chǔ)方式是不行修改的immutable是不行修改的immutable的SSTables, 一臺(tái)機(jī)器一個(gè)日志文件。BigTable中最重要的選擇是將數(shù)據(jù)存儲(chǔ)分為兩局部,主體局部是不行變的,以SSTable 的格式存儲(chǔ)在GFS中,最近的更新那么存儲(chǔ)在內(nèi)存(稱為memtable)中。讀操作需要依據(jù) SSTable和memtable還綜合打算要讀取的數(shù)據(jù)的值。Page 15Google的Bigtable是不支持事務(wù),只保證對(duì)單條紀(jì)
17、錄的原子性。事務(wù)是好東西,但事 務(wù)也是導(dǎo)致數(shù)據(jù)庫(kù)實(shí)現(xiàn)簡(jiǎn)單化、性能下降最主要的根源。BigTable的開(kāi)發(fā)者通過(guò)調(diào)研后覺(jué)察 其實(shí)大家對(duì)事務(wù)都沒(méi)什么需求,只要保證對(duì)單條紀(jì)錄的更新是原子的就可以了。這樣,為了 支持事務(wù)所要考慮的串行化、事務(wù)的回滾等、死鎖檢測(cè)(一般認(rèn)為,分布式環(huán)境中的死鎖檢 測(cè)是不行能的,一般都用超時(shí)解決)等等簡(jiǎn)單問(wèn)題都不見(jiàn)了。系統(tǒng)實(shí)現(xiàn)進(jìn)一步簡(jiǎn)化。10 Google 并行鎖服務(wù) Chubby lock在Google這種的分布式系統(tǒng)中,需要一種分布式鎖服務(wù)來(lái)保證系統(tǒng)的全都性。于是 Google 有了 Chubby lock service。而同樣是 Yahoo ! Research 向
18、開(kāi)源貢獻(xiàn)了 Zookeeper,個(gè)類似Google Chubby的工程。得更高的性能。這就有了云計(jì)算的雛形。今日我們都知道Google的規(guī)模,而假如我們不去認(rèn)清計(jì)算的強(qiáng)大,我們就不知道互Page 2聯(lián)網(wǎng)的將來(lái)和規(guī)章。Google在98年的時(shí)候被迫覺(jué)察了這一規(guī)章,然后我們看到了聚合的 力量,今日微軟、IBM、雅虎、百度、亞馬遜這些企業(yè)看到了規(guī)章,于是開(kāi)頭進(jìn)入 計(jì)算領(lǐng)域。所以我們討論計(jì)算,可以系統(tǒng)剖析一下Google的技術(shù)構(gòu)架,這對(duì)于我們搭建自己自身的計(jì)算平臺(tái)有比擬好的借鑒意義和標(biāo)桿意義!二、Google的整體技術(shù)構(gòu)架說(shuō)明由于Google沒(méi)有官方發(fā)布一個(gè)自身的技術(shù)構(gòu)架說(shuō)明。本文主要的信息都來(lái)自互聯(lián)
19、網(wǎng)中對(duì)于Google 網(wǎng)絡(luò)技術(shù)構(gòu)架的分析,大量信息來(lái)自。Google最大的IT優(yōu)勢(shì)在于它能建筑出既富于性價(jià)比(并非廉價(jià))又能承受極高負(fù)載的 高性能系統(tǒng)。因此Google認(rèn)為自己與競(jìng)爭(zhēng)對(duì)手,如亞馬遜網(wǎng)站(Amazon)、電子港灣(eBay)、 微軟(Microsoft)和雅虎(Yahoo)等公司相比,具有更大的本錢優(yōu)勢(shì)。其IT系統(tǒng)運(yùn)營(yíng)約為其他互在Google File System(GFS)中,有很多的服務(wù)器,這些服務(wù)器需要選舉其中的一臺(tái)作為master servero Value就是master server的地址,GFS就是用Chubby來(lái)解決的這個(gè)問(wèn)題,所有的server通過(guò)Chubby供
20、應(yīng)的通信合同到Chubby server上創(chuàng)立同一個(gè)文件,當(dāng)然,最終 只有一個(gè)server能夠獲準(zhǔn)創(chuàng)立這個(gè)文件,這個(gè)server就成為了 master,它會(huì)在這個(gè)文件中 寫(xiě)入自己的地址,這樣其它的server通過(guò)讀取這個(gè)文件就能知道被選出的master 的地址。Chubby首先是一個(gè)分布式的文件系統(tǒng)。Chubby能夠供應(yīng)機(jī)制使得client可以在Chubbyservice上創(chuàng)立文件和執(zhí)行一些文件的基本操作。說(shuō)它是分布式的文件系統(tǒng),是由于一個(gè)Chubby cell是一個(gè)分布式的系統(tǒng)。但是,從更高一點(diǎn)的語(yǔ)義層面上,Chubby 是一個(gè)lockservice, 一個(gè)針對(duì)松耦合的分布式系統(tǒng)的locks
21、erviceo所謂lock service,就是這個(gè)service能夠供應(yīng)開(kāi)發(fā)人員常常用的“鎖”,“解鎖”功能。通過(guò)Chubby, 一個(gè)分布式系統(tǒng)中的上千個(gè)client都能夠 對(duì)于某項(xiàng)資源進(jìn)行“加鎖”,“解鎖二Chubby中的“鎖”就是建立文件,在上例中,創(chuàng)立文件其實(shí)就是進(jìn)行“加鎖”操作,Page 16創(chuàng)立文件勝利的那個(gè)server其實(shí)就是搶占到了 “鎖二用戶通過(guò)翻開(kāi)、關(guān)閉和讀取文件,獲 取共享鎖或者獨(dú)占鎖;并且通過(guò)通信機(jī)制,向用戶發(fā)送更新信息。11、Google消息序列處理系統(tǒng)Google WorkqueueGWQ (Google Workqueue)系統(tǒng)是負(fù)責(zé)將Mapreduce的工作任務(wù)
22、支配各個(gè)各個(gè)計(jì)算 單位的(Cell/Cluster)。仲裁(進(jìn)程優(yōu)先級(jí))附表,安排資源,處理故障,報(bào)告狀況,提供的 結(jié)果- 通常隊(duì)列掩蓋在GFS上的。消息隊(duì)列處理系統(tǒng)可以同時(shí)管理數(shù)萬(wàn)服務(wù)器。通過(guò)API 接口和命令行可以調(diào)動(dòng)GWQ來(lái)進(jìn)行工作。12、Google 的開(kāi)發(fā)工具。除了傳統(tǒng)的C+和Javao還開(kāi)頭大量使用PythonoPython是一種面對(duì)對(duì)象、直譯式計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,也是一種功能強(qiáng)大而完善的通 用型語(yǔ)言,已經(jīng)具有十多年的進(jìn)展歷史,成熟且穩(wěn)定。這種語(yǔ)言具有特別簡(jiǎn)捷而清楚的語(yǔ)法 特點(diǎn),適合完成各種高層任務(wù),幾乎可以在全部的操作系統(tǒng)中運(yùn)行。Python可能被粗略地分類為“腳本語(yǔ)言”(Scr
23、ipt Language),但實(shí)際上一些大規(guī)模軟件開(kāi)發(fā)方案例如Zope、Mnet的支持者較開(kāi)發(fā)方案例如Zope、Mnet的支持者較BitTorrent, Google 也廣泛地使用它。Python喜愛(ài)稱它為一種高級(jí)動(dòng)態(tài)編程語(yǔ)言,緣由是“腳本語(yǔ)言”泛指僅作簡(jiǎn)潔編程任務(wù)的語(yǔ)言,如shell script、JavaScript等只能處理簡(jiǎn)潔任務(wù)的編程語(yǔ)言,并不能與Python相提并論。此外,由于Python 對(duì)于C和其他語(yǔ)言的良好支持,很多人還把Python作為一種“水語(yǔ)言”(Glue Language)使用。使用Python 將其他語(yǔ)言編寫(xiě)的程序進(jìn)行集成和封裝。在Google內(nèi)部的很多工程使用C+
24、編寫(xiě)性能要求極高的局部,然后用Python調(diào)用相應(yīng)的模塊。Sawzall,為了是內(nèi)部的工程師和程序人員可以更便利的適應(yīng)并行計(jì)算的方式,Google自己開(kāi)發(fā)的一種查詢語(yǔ)言,Sawzall是一種類型平安的腳本語(yǔ)言。由于Sawzall自身處理了 很多問(wèn)題,所以完成相同功能的代碼就簡(jiǎn)化了特別多與MapReduce的C+代碼相比簡(jiǎn)化了 10倍不止。Page 17四、借鑒與總結(jié)從Google的整體的技術(shù)構(gòu)架來(lái)看,Google計(jì)算系統(tǒng)依舊是邊做科學(xué)討論,邊進(jìn)行商業(yè)部署,依靠系統(tǒng)冗余和良好的軟件構(gòu)架來(lái)低本錢的支撐浩大的系統(tǒng)運(yùn)作的。大型的并行計(jì)算,超大規(guī)模的IDC快速部署,通過(guò)系統(tǒng)構(gòu)架來(lái)使廉價(jià)PC服務(wù)器具有超過(guò)
25、大型機(jī)的穩(wěn)定性都已經(jīng)不在是科學(xué)試驗(yàn)室的故事,已經(jīng)成為了互聯(lián)網(wǎng)時(shí)代,IT企業(yè)獲得 核心競(jìng)爭(zhēng)力進(jìn)展的基石。Google在應(yīng)對(duì)互聯(lián)網(wǎng)海量數(shù)據(jù)處理的壓力下,充分借鑒了大量開(kāi)源代碼,大量借鑒了其他討論機(jī)構(gòu)和專家的思路,走了一條差異化的技術(shù)道路,構(gòu)架自己的有創(chuàng)新性的計(jì)算平 臺(tái)。從Google這樣互聯(lián)網(wǎng)企業(yè)可以看到,基于Linux系統(tǒng)的開(kāi)源代碼的方式,讓企業(yè)可以 不收到商業(yè)軟件系統(tǒng)的限制,可以自主進(jìn)行二次、定制開(kāi)發(fā)。而這種能充分采用社會(huì)資源, 并依據(jù)自己的力量進(jìn)行定制化的系統(tǒng)設(shè)計(jì)最終將會(huì)成為互聯(lián)網(wǎng)企業(yè)之間的核心競(jìng)爭(zhēng)力。聯(lián)網(wǎng)公司的60%左右。同時(shí)Google程序員的效率比其他Web公司同行們高出50%100%
26、,緣由是Google 已經(jīng)開(kāi)發(fā)出了一整套專用于支持大規(guī)模并行系統(tǒng)編程的定制軟件庫(kù)。從整體來(lái)看,Google的計(jì)算平臺(tái)包括了如下的技術(shù)層次。1)網(wǎng)絡(luò)系統(tǒng):包括外部網(wǎng)絡(luò)(Exterior Network),這個(gè)外部網(wǎng)絡(luò)并不是指運(yùn)營(yíng)商自己的骨干網(wǎng),也是指在Google計(jì)算服務(wù)器中心以外,由Google自己搭建的由于不同地區(qū)/國(guó)家,不同應(yīng)用之間的負(fù)載平衡的數(shù)據(jù)交換網(wǎng)絡(luò)。內(nèi)部網(wǎng)絡(luò)(Interior Network),連接各個(gè)Google 自建的數(shù)據(jù)中心之間的網(wǎng)絡(luò)系統(tǒng)。2)硬件系統(tǒng):從層次上來(lái)看,包括單個(gè)服務(wù)器、整合了多服務(wù)器機(jī)架和存放、連接各個(gè)服務(wù)器機(jī)架的數(shù)據(jù)中心(IDC)。3)軟件系統(tǒng):包括每個(gè)服務(wù)器
27、上面的安裝的單機(jī)的操作系統(tǒng)經(jīng)過(guò)修改過(guò)的Redhat LinuxoGoogle計(jì)算底層軟件系統(tǒng)(文件系統(tǒng)GFS、并行計(jì)算處理算法Mapreduce并行數(shù)據(jù)庫(kù)Bigtable,并行鎖服務(wù)Chubby Lock,計(jì)算消息隊(duì)列GWQ )Google內(nèi)部使用的軟件開(kāi)發(fā)工具Python Java C+Page 3Google 自己開(kāi)發(fā)的應(yīng)用軟件 Google Search Google Email Google Earth三、Google各個(gè)層次技術(shù)介紹1、Google外部網(wǎng)絡(luò)系統(tǒng)介紹當(dāng)一個(gè)互聯(lián)網(wǎng)用戶輸入的時(shí)候,這個(gè)URL懇求就會(huì)發(fā)到Google DNS解析服務(wù)器當(dāng)中去,那么Google的DNS服務(wù)器就會(huì)
28、依據(jù)用戶自身的IP地址來(lái)推斷,這個(gè)用戶懇求是來(lái)自那個(gè)我國(guó)、那個(gè)地區(qū)。依據(jù)不同用戶的IP地址信息,解析到不同的Google的數(shù)據(jù)中心。進(jìn)入第一道防火墻,這次防火墻主要是依據(jù)不同端口來(lái)推斷應(yīng)用,過(guò)濾相應(yīng)的流量。如果僅僅接受 掃瞄器應(yīng)用的訪問(wèn),一般只會(huì)開(kāi)放80端口 ,和443端口 s (通過(guò)SSL加密)。將其他的來(lái)自互聯(lián)網(wǎng)上的非Ipv4/V6非80a43端口的懇求都放棄,避開(kāi)患病互聯(lián)網(wǎng)上大量的DOS攻擊。據(jù)說(shuō)Google使用了思杰科技(Citrix Systems)的Netscaler應(yīng)用交換機(jī)來(lái)做web應(yīng)用Page 4的優(yōu)化。NetScaler 可將Web應(yīng)用性能加速高達(dá)5倍。使用高級(jí)優(yōu)化技術(shù)如動(dòng)
29、態(tài)緩存時(shí),或者當(dāng)網(wǎng)絡(luò)延遲或數(shù)據(jù)包喪失增大時(shí),性能增益會(huì)更高。這里提到的 multiplexting 技術(shù)是可以是進(jìn)行 的每個(gè)session 分解開(kāi)。從不同的后端服務(wù)器(緩存)來(lái)獵取 內(nèi)容,這樣可以大大提升web 性能,同時(shí)有效降低后端web應(yīng)用服務(wù)器的處理和聯(lián)接壓力。在大量的web應(yīng)用服務(wù)器(Web Server Farm)前,Google使用反向代理(ReverseProxy )的技術(shù)。反向代理(Reverse Proxy )方式是指以代理服務(wù)器來(lái)接受internet上的連接懇求, 然后將懇求轉(zhuǎn)發(fā)給內(nèi)部網(wǎng)絡(luò)上的服務(wù)器,并將從服務(wù)器上得到的結(jié)果返回給internet上懇求 連接的客戶端,此時(shí)代
30、理服務(wù)器對(duì)外就表現(xiàn)為一個(gè)服務(wù)器。Google使用的是Squid Cache的軟件方式來(lái)實(shí)現(xiàn)反向代理應(yīng)用的,Squid Cache 一個(gè)流行的自由軟件(GNU通用公共許可證)的代理服務(wù)器和Web緩存服務(wù)器。Squid有廣泛 的用途,從作為網(wǎng)頁(yè)服務(wù)器的前置cache服務(wù)器緩存相關(guān)懇求來(lái)提高Web服務(wù)器的速度。在Google web應(yīng)用服務(wù)器需要調(diào)用Google內(nèi)部存儲(chǔ)的信息和資源的時(shí)候,在通過(guò)一 個(gè)防火墻進(jìn)入內(nèi)部的網(wǎng)絡(luò),來(lái)訪問(wèn)其他的基于自身GFS II系統(tǒng)的應(yīng)用服務(wù)和數(shù)據(jù)庫(kù)。2、Google內(nèi)部網(wǎng)絡(luò)架構(gòu)介紹Google自己已經(jīng)建設(shè)了跨國(guó)的光纖網(wǎng)絡(luò),連接跨地區(qū)、跨我國(guó)的高速光纖網(wǎng)絡(luò)。內(nèi)部網(wǎng)絡(luò)已經(jīng)都是
31、Ipv6 的合同在運(yùn)行。網(wǎng)絡(luò)中的路由交換設(shè)施主要還是來(lái)自Juniper, Cisco,Foundry, HP這四家公司。內(nèi)部網(wǎng)關(guān)合同(IRP)是基于OSPF(開(kāi)放式最短路徑優(yōu)先)進(jìn)行修 改Page 5的。在每個(gè)服務(wù)器機(jī)架內(nèi)部連接每臺(tái)服務(wù)器之間網(wǎng)絡(luò)是100M 以太網(wǎng),在服務(wù)器機(jī)架之間 連接的網(wǎng)絡(luò)是1000M以太網(wǎng)。在每個(gè)服務(wù)器機(jī)架內(nèi),通過(guò)IP虛擬服務(wù)器(IP Virtual Server)的方式實(shí)現(xiàn)傳輸層負(fù)載 Linux內(nèi)核內(nèi)的平衡,這個(gè)就是所謂四層LAN交換。IPVS使一個(gè)服務(wù)器機(jī)架中的眾多服務(wù)成為基 于Linux內(nèi)核虛擬服務(wù)器。這就像在一堆服務(wù)器前安裝一個(gè)負(fù)載均衡的服務(wù)器一樣。當(dāng)TCP/UD
32、P的懇求過(guò)來(lái)后,使一服務(wù)器可以使用一個(gè)單一的IP地址來(lái)對(duì)外供應(yīng)相關(guān)的服務(wù) 支撐。3、Google的大規(guī)模IDC部署戰(zhàn)略Google應(yīng)當(dāng)是目前世界上存儲(chǔ)信息最多的企業(yè)了。而且還在始終不斷的致力于將傳統(tǒng) 信息僅可能的數(shù)字化。將這樣海量的信息進(jìn)行存儲(chǔ)、進(jìn)行處理。就需要大量的計(jì)算機(jī)服務(wù)器。 為了滿意不斷增長(zhǎng)的計(jì)算需求。Google很早就進(jìn)行了全球的數(shù)據(jù)中心的布局。由于數(shù)據(jù)中 心運(yùn)行后,面臨的幾個(gè)關(guān)鍵問(wèn)題的就是充分電力供應(yīng)、大量服務(wù)器運(yùn)行后的降溫排熱和足夠 的網(wǎng)絡(luò)帶寬支持。所以Google在進(jìn)行數(shù)據(jù)中心布局的時(shí)候,就是依據(jù)互聯(lián)網(wǎng)骨干帶寬和電 力網(wǎng)的核心節(jié)點(diǎn)進(jìn)行部署的,盡快考慮在河邊和海邊,想方法通過(guò)引入自然水流的方式來(lái)降 低降溫排熱的本錢。達(dá)拉斯(Dalles)是美國(guó)俄勒岡州北部哥倫比
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 個(gè)體診所裝修合同范本
- 管件采購(gòu)合同
- 2024年中國(guó)冷凍板栗仁市場(chǎng)調(diào)查研究報(bào)告
- 2025屆河南省洛陽(yáng)市高三生物第一學(xué)期期末教學(xué)質(zhì)量檢測(cè)試題含解析
- 安徽省淮南五中2025屆英語(yǔ)高三第一學(xué)期期末監(jiān)測(cè)模擬試題含解析
- 廣東省汕頭市潮陽(yáng)區(qū)2025屆高一生物第一學(xué)期期末經(jīng)典試題含解析
- 2024年土建工程師工作總結(jié)參考(三篇)
- 2025屆天津市薊州區(qū)生物高三上期末達(dá)標(biāo)檢測(cè)試題含解析
- 2025屆江西省鷹潭市英語(yǔ)高三上期末達(dá)標(biāo)測(cè)試試題含解析
- 水果批發(fā)合同電子版
- 地產(chǎn)傭金返還合同模板
- 2024短劇出海白皮書(shū)
- 期中素養(yǎng)培優(yōu)卷(試題)-2024-2025學(xué)年人教PEP版英語(yǔ)六年級(jí)上冊(cè)
- 2024-2030年中國(guó)可編程邏輯控制器(PLC)行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- 人教版2024年新教材七年級(jí)上冊(cè)地理教學(xué)計(jì)劃
- 人教版數(shù)學(xué)四年級(jí)上冊(cè)《單價(jià)、數(shù)量和總價(jià)》說(shuō)課稿
- 移置式帶式輸送機(jī)(征求意見(jiàn)稿)
- 新《主體結(jié)構(gòu)及裝飾裝修》考試習(xí)題庫(kù)大全-上(單選題)
- 呋喃銨鹽投資項(xiàng)目可行性研究報(bào)告
- 養(yǎng)豬場(chǎng)合作入股協(xié)議書(shū)模板
- 垂直醫(yī)院中的電梯分流策略
評(píng)論
0/150
提交評(píng)論