中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Google架構(gòu)學(xué)習(xí)
 Google是伸縮性的王者。Google一直的目標(biāo)就是構(gòu)建高性能高伸縮性的基礎(chǔ)組織來支持它們的產(chǎn)品。
  
  平臺
  Linux
  大量語言:Python,Java,C++
  
  狀態(tài)
  在2006年大約有450,000臺廉價服務(wù)器
  在2005年Google索引了80億Web頁面,現(xiàn)在沒有人知道數(shù)目
  目前在Google有超過200個GFS集群。一個集群可以有1000或者甚至5000臺機(jī)器。成千上萬的機(jī)器從運行著5000000000000000字節(jié)存儲的GFS集群獲取數(shù)據(jù),集群總的讀寫吞吐量可以達(dá)到每秒40兆字節(jié)
  目前在Google有6000個MapReduce程序,而且每個月都寫成百個新程序
  BigTable伸縮存儲幾十億的URL,幾百千千兆的衛(wèi)星圖片和幾億用戶的參數(shù)選擇
  
  堆棧
  Google形象化它們的基礎(chǔ)組織為三層架構(gòu):
  1,產(chǎn)品:搜索,廣告,email,地圖,視頻,聊天,博客
  2,分布式系統(tǒng)基礎(chǔ)組織:GFS,MapReduce和BigTable
  3,計算平臺:一群不同的數(shù)據(jù)中心里的機(jī)器
  4,確保公司里的人們部署起來開銷很小
  5,花費更多的錢在避免丟失日志數(shù)據(jù)的硬件上,其他類型的數(shù)據(jù)則花費較少
  
  可信賴的存儲機(jī)制GFS(Google File System)
  1,可信賴的伸縮性存儲是任何程序的核心需求。GFS就是Google的核心存儲平臺
  2,Google File System - 大型分布式結(jié)構(gòu)化日志文件系統(tǒng),Google在里面扔了大量的數(shù)據(jù)
  3,為什么構(gòu)建GFS而不是利用已有的東西?因為可以自己控制一切并且這個平臺與別的不一樣,Google需要:
  -跨數(shù)據(jù)中心的高可靠性
  -成千上萬的網(wǎng)絡(luò)節(jié)點的伸縮性
  -大讀寫帶寬的需求
  -支持大塊的數(shù)據(jù),可能為上千兆字節(jié)
  -高效的跨節(jié)點操作分發(fā)來減少瓶頸
  4,系統(tǒng)有Master和Chunk服務(wù)器
  -Master服務(wù)器在不同的數(shù)據(jù)文件里保持元數(shù)據(jù)。數(shù)據(jù)以64MB為單位存儲在文件系統(tǒng)中??蛻舳伺cMaster服務(wù)器交流來在文件上做元數(shù)據(jù)操作并且找到包含用戶需要數(shù)據(jù)的那些Chunk服務(wù)器
  -Chunk服務(wù)器在硬盤上存儲實際數(shù)據(jù)。每個Chunk服務(wù)器跨越3個不同的Chunk服務(wù)器備份以創(chuàng)建冗余來避免服務(wù)器崩潰。一旦被Master服務(wù)器指明,客戶端程序就會直接從Chunk服務(wù)器讀取文件
  6,一個上線的新程序可以使用已有的GFS集群或者可以制作自己的GFS集群
  7,關(guān)鍵點在于有足夠的基礎(chǔ)組織來讓人們對自己的程序有所選擇,GFS可以調(diào)整來適應(yīng)個別程序的需求
  
  使用MapReduce來處理數(shù)據(jù)
  1,現(xiàn)在你已經(jīng)有了一個很好的存儲系統(tǒng),你該怎樣處理如此多的數(shù)據(jù)呢?比如你有許多TB的數(shù)據(jù)存儲在1000臺機(jī)器上。數(shù)據(jù)庫不能伸縮或者伸縮到這種級別花費極大,這就是MapReduce出現(xiàn)的原因
  2,MapReduce是一個處理和生成大量數(shù)據(jù)集的編程模型和相關(guān)實現(xiàn)。用戶指定一個map方法來處理一個鍵/值對來生成一個中間的鍵/值對,還有一個reduce方法來合并所有關(guān)聯(lián)到同樣的中間鍵的中間值。許多真實世界的任務(wù)都可以使用這種模型來表現(xiàn)。以這種風(fēng)格來寫的程序會自動并行的在一個大量機(jī)器的集群里運行。運行時系統(tǒng)照顧輸入數(shù)據(jù)劃分、程序在機(jī)器集之間執(zhí)行的調(diào)度、機(jī)器失敗處理和必需的內(nèi)部機(jī)器交流等細(xì)節(jié)。這允許程序員沒有多少并行和分布式系統(tǒng)的經(jīng)驗就可以很容易使用一個大型分布式系統(tǒng)資源
  3,為什么使用MapReduce?
  -跨越大量機(jī)器分割任務(wù)的好方式
  -處理機(jī)器失敗
  -可以與不同類型的程序工作,例如搜索和廣告。幾乎任何程序都有map和reduce類型的操作。你可以預(yù)先計算有用的數(shù)據(jù)、查詢字?jǐn)?shù)統(tǒng)計、對TB的數(shù)據(jù)排序等等
  4,MapReduce系統(tǒng)有三種不同類型的服務(wù)器
  -Master服務(wù)器分配用戶任務(wù)到Map和Reduce服務(wù)器。它也跟蹤任務(wù)的狀態(tài)
  -Map服務(wù)器接收用戶輸入并在其基礎(chǔ)上處理map操作。結(jié)果寫入中間文件
  -Reduce服務(wù)器接收Map服務(wù)器產(chǎn)生的中間文件并在其基礎(chǔ)上處理reduce操作
  5,例如,你想在所有Web頁面里的字?jǐn)?shù)。你將存儲在GFS里的所有頁面拋入MapReduce。這將在成千上萬臺機(jī)器上同時進(jìn)行并且所有的調(diào)整、工作調(diào)度、失敗處理和數(shù)據(jù)傳輸將自動完成
  -步驟類似于:GFS -> Map -> Shuffle -> Reduction -> Store Results back into GFS
  -在MapReduce里一個map操作將一些數(shù)據(jù)映射到另一個中,產(chǎn)生一個鍵值對,在我們的例子里就是字和字?jǐn)?shù)
  -Shuffling操作聚集鍵類型
  -Reduction操作計算所有鍵值對的綜合并產(chǎn)生最終的結(jié)果
  6,Google索引操作管道有大約20個不同的map和reduction。
  7,程序可以非常小,如20到50行代碼
  8,一個問題是掉隊者。掉隊者是一個比其他程序慢的計算,它阻塞了其他程序。掉隊者可能因為緩慢的IO或者臨時的CPU不能使用而發(fā)生。解決方案是運行多個同樣的計算并且當(dāng)一個完成后殺死所有其他的
  9,數(shù)據(jù)在Map和Reduce服務(wù)器之間傳輸時被壓縮了。這可以節(jié)省帶寬和I/O。
  
  在BigTable里存儲結(jié)構(gòu)化數(shù)據(jù)
  1,BigTable是一個大伸縮性、錯誤容忍、自管理的系統(tǒng),它包含千千兆的內(nèi)存和1000000000000000的存儲。它可以每秒鐘處理百萬的讀寫
  2,BigTable是一個構(gòu)建于GFS之上的分布式哈希機(jī)制。它不是關(guān)系型數(shù)據(jù)庫。它不支持join或者SQL類型查詢
  3,它提供查詢機(jī)制來通過鍵訪問結(jié)構(gòu)化數(shù)據(jù)。GFS存儲存儲不透明的數(shù)據(jù)而許多程序需求有結(jié)構(gòu)化數(shù)據(jù)
  4,商業(yè)數(shù)據(jù)庫不能達(dá)到這種級別的伸縮性并且不能在成千上萬臺機(jī)器上工作
  5,通過控制它們自己的低級存儲系統(tǒng)Google得到更多的控制權(quán)來改進(jìn)它們的系統(tǒng)。例如,如果它們想讓跨數(shù)據(jù)中心的操作更簡單這個特性,它們可以內(nèi)建它
  6,系統(tǒng)運行時機(jī)器可以自由的增刪而整個系統(tǒng)保持工作
  7,每個數(shù)據(jù)條目存儲在一個格子里,它可以通過一個行key和列key或者時間戳來訪問
  8,每一行存儲在一個或多個tablet中。一個tablet是一個64KB塊的數(shù)據(jù)序列并且格式為SSTable
  9,BigTable有三種類型的服務(wù)器:
  -Master服務(wù)器分配tablet服務(wù)器,它跟蹤tablet在哪里并且如果需要則重新分配任務(wù)
  -Tablet服務(wù)器為tablet處理讀寫請求。當(dāng)tablet超過大小限制(通常是100MB-200MB)時它們拆開tablet。當(dāng)一個Tablet服務(wù)器失敗時,則100個Tablet服務(wù)器各自挑選一個新的tablet然后系統(tǒng)恢復(fù)。
  -Lock服務(wù)器形成一個分布式鎖服務(wù)。像打開一個tablet來寫、Master調(diào)整和訪問控制檢查等都需要互斥
  10,一個locality組可以用來在物理上將相關(guān)的數(shù)據(jù)存儲在一起來得到更好的locality選擇
  11,tablet盡可能的緩存在RAM里
  
  硬件
  1,當(dāng)你有很多機(jī)器時你怎樣組織它們來使得使用和花費有效?
  2,使用非常廉價的硬件
  3,A 1,000-fold computer power increase can be had for a 33 times lower cost if you you use a failure-prone infrastructure rather than an infrastructure built on highly reliable components. You must build reliability on top of unreliability for this strategy to work.
  4,Linux,in-house rack design,PC主板,低端存儲
  5,Price per wattage on performance basis isn't getting better. Have huge power and cooling issues
  6,使用一些collocation和Google自己的數(shù)據(jù)中心
  
  其他
  1,迅速更改而不是等待QA
  2,庫是構(gòu)建程序的卓越方式
  3,一些程序作為服務(wù)提供
  4,一個基礎(chǔ)組織處理程序的版本,這樣它們可以發(fā)布而不用害怕會破壞什么東西
  
  Google將來的方向
  1,支持地理位置分布的集群
  2,為所有數(shù)據(jù)創(chuàng)建一個單獨的全局名字空間。當(dāng)前的數(shù)據(jù)由集群分離
  3,更多和更好的自動化數(shù)據(jù)遷移和計算
  4,解決當(dāng)使用網(wǎng)絡(luò)劃分來做廣闊區(qū)域的備份時的一致性問題(例如保持服務(wù)即使一個集群離線維護(hù)或由于一些損耗問題)
  
  學(xué)到的東西
  1,基礎(chǔ)組織是有競爭性的優(yōu)勢。特別是對Google而言。Google可以很快很廉價的推出新服務(wù),并且伸縮性其他人很難達(dá)到。許多公司采取完全不同的方式。許多公司認(rèn)為基礎(chǔ)組織開銷太大。Google認(rèn)為自己是一個系統(tǒng)工程公司,這是一個新的看待軟件構(gòu)建的方式
  2,跨越多個數(shù)據(jù)中心仍然是一個未解決的問題。大部分網(wǎng)站都是一個或者最多兩個數(shù)據(jù)中心。我們不得不承認(rèn)怎樣在一些數(shù)據(jù)中心之間完整的分布網(wǎng)站是很需要技巧的
  3,如果你自己沒有時間從零開始重新構(gòu)建所有這些基礎(chǔ)組織你可以看看Hadoop。Hadoop是這里很多同樣的主意的一個開源實現(xiàn)
  4,平臺的一個優(yōu)點是初級開發(fā)人員可以在平臺的基礎(chǔ)上快速并且放心的創(chuàng)建健全的程序。如果每個項目都需要發(fā)明同樣的分布式基礎(chǔ)組織的輪子,那么你將陷入困境因為知道怎樣完成這項工作的人相對較少
  5,協(xié)同工作不一直是擲骰子。通過讓系統(tǒng)中的所有部分一起工作則一個部分的改進(jìn)將幫助所有的部分。改進(jìn)文件系統(tǒng)則每個人從中受益而且是透明的。如果每個項目使用不同的文件系統(tǒng)則在整個堆棧中享受不到持續(xù)增加的改進(jìn)
  6,構(gòu)建自管理系統(tǒng)讓你沒必要讓系統(tǒng)關(guān)機(jī)。這允許你更容易在服務(wù)器之間平衡資源、動態(tài)添加更大的容量、讓機(jī)器離線和優(yōu)雅的處理升級
  7,創(chuàng)建可進(jìn)化的基礎(chǔ)組織,并行的執(zhí)行消耗時間的操作并采取較好的方案
  8,不要忽略學(xué)院。學(xué)院有許多沒有轉(zhuǎn)變?yōu)楫a(chǎn)品的好主意。Most of what Google has done has prior art, just not prior large scale deployment.
  9,考慮壓縮。當(dāng)你有許多CPU而IO有限時壓縮是一個好的選擇。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Google服務(wù)器架構(gòu)圖解簡析(轉(zhuǎn)載)
Google Bigtable (中文版)
探索Google App Engine背后的奧秘(1)--Google的核心技術(shù)
免費的晚餐
Bigtable:一個分布式的結(jié)構(gòu)化數(shù)據(jù)存儲系統(tǒng)
【精華】云計算的核心技術(shù)重點解讀
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服