<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Google 架構 > 原文: [http://highscalability.com/blog/2008/11/22/google-architecture.html](http://highscalability.com/blog/2008/11/22/google-architecture.html) **更新 2:** [使用 MapReduce](http://googleblog.blogspot.com/2008/11/sorting-1pb-with-mapreduce.html) 對 1 PB 進行排序。 PB 并非拼寫錯誤的花生醬和果凍。 它是 1 PB 或 1000 TB 或 1,000,000 GB。 *在 4,000 臺計算機上對 1PB(10 萬億條 100 字節的記錄)進行分類花費了六個小時又兩分鐘,并且在 48,000 個磁盤上將結果復制了三次。 **更新:** [Greg Linden](http://glinden.blogspot.com/2008/01/mapreducing-20-petabytes-per-day.html) 指向 Google 的新文章 [MapReduce:簡化了大型集群上的數據處理](http://labs.google.com/papers/mapreduce-osdi04.pdf)。 一些有趣的統計數據:每天執行 10 萬個 MapReduce 作業; 每天處理超過 20 PB 的數據; 已經實施了超過 1 萬個 MapReduce 程序; 機器是具有千兆位以太網和 4-8 GB 內存的雙處理器。 Google 是可擴展性之王。 每個人都知道 Google 的龐大,精巧和快速的搜索功能,但他們不僅在搜索中脫穎而出。 他們構建可擴展應用程序的平臺方法使他們能夠以驚人的高競爭率推出互聯網規模的應用程序。 他們的目標始終是建立性能更高,規模更大的基礎架構來支持其產品。 他們是如何做到的?* ## 信息來源 1. [視頻:在 Google 構建大型系統](http://video.google.com/videoplay?docid=-5699448884004201579) 2. [Google 實驗室:Google 文件系統](http://labs.google.com/papers/gfs.html) 3. [Google 實驗室:MapReduce:大型集群上的簡化數據處理](http://labs.google.com/papers/mapreduce.html) 4. [Google 實驗室:BigTable](http://labs.google.com/papers/bigtable.html) 。 5. [視頻:BigTable:一種分布式結構化存儲系統](http://video.google.com/videoplay?docid=7278544055668715642)。 6. [Google 實驗室:適用于松耦合分布式系統](http://labs.google.com/papers/chubby.html)的胖鎖服務。 7. [Google 的運作方式[Baseline Magazine]的 David Carr 撰寫的](http://www.baselinemag.com/article2/0,1540,1985514,00.asp)。 8. [Google 實驗室:解釋數據:使用 Sawzall](http://labs.google.com/papers/sawzall.html) 進行并行分析。 9. [Dare Obasonjo 關于可伸縮性會議的說明。](http://www.25hoursaday.com/weblog/2007/06/25/GoogleScalabilityConferenceTripReportMapReduceBigTableAndOtherDistributedSystemAbstractionsForHandlingLargeDatasets.aspx) ## 平臺 1. 的 Linux 2. 多種語言:Python,Java,C ++ ## 里面有什么? ### 統計資料 1. 2006 年估計有 450,000 臺低成本商品服務器 2. 在 2005 年,Google 索引了 80 億個網頁。 現在,誰知道呢? 3. 目前,Google 有 200 多個 GFS 集群。 一個集群可以具有 1000 甚至 5000 臺計算機。 數萬臺計算機的池從運行高達 5 PB 的 GFS 群集中檢索數據。 整個群集的總讀/寫吞吐量可以高達 40 GB /秒。 4. 目前,Google 有 6000 個 MapReduce 應用程序,每個月都會編寫數百個新應用程序。 5. BigTable 可擴展以存儲數十億個 URL,數百 TB 的衛星圖像以及成千上萬用戶的首選項。 ### 堆棧 Google 將其基礎架構可視化為三層堆棧: 1. 產品:搜索,廣告,電子郵件,地圖,視頻,聊天,博客 2. 分布式系統基礎架構:GFS,MapReduce 和 BigTable。 3. 計算平臺:一堆不同數據中心中的機器 4. 確保公司人員易于以較低的成本進行部署。 5. 查看每個應用程序的價格性能數據。 花更多的錢在硬件上不會丟失日志數據,而花更少的錢在其他類型的數據上。 話雖如此,他們不會丟失數據。 ### 可靠的 GFS 存儲機制(Google 文件系統) 1. 可靠的可擴展存儲是任何應用程序的核心需求。 GFS 是他們的核心存儲平臺。 2. Google 文件系統-大型的分布式日志結構化文件系統,在其中可以放入大量數據。 3. 為什么要構建它而不使用現成的東西? 因為它們控制著一切,而正是平臺才使它們與其他人區分開。 他們需要: -跨數據中心的高可靠性 -可擴展到數千個網絡節點 -巨大的讀/寫帶寬要求 -支持大小為千兆字節的大數據塊。 -跨節點高效分配操作以減少瓶頸 4. 系統具有主服務器和塊服務器。 -主服務器將元數據保留在各種數據文件中。 數據以 64MB 的塊存儲在文件系統中。 客戶端與主服務器對話,以對文件執行元數據操作,并在磁盤上找到包含其所需需求的塊服務器。 -塊服務器將實際數據存儲在磁盤上。 每個塊都在三個不同的塊服務器之間復制,以在服務器崩潰的情況下創建冗余。 一旦由主服務器指示,客戶端應用程序將直接從塊服務器檢索文件。 5. 即將上線的新應用程序可以使用現有的 GFS 集群,也可以使用自己的集群。 了解他們在整個數據中心使用的配置過程將很有趣。 6. 關鍵在于足夠的基礎架構,以確保人們可以選擇其應用程序。 可以調整 GFS 以適合單個應用程序的需求。 ### 使用 MapReduce 處理數據 1. 既然您擁有一個良好的存儲系統,那么如何處理如此多的數據呢? 假設您在 1000 臺計算機上存儲了許多 TB 的數據。 數據庫無法擴展或無法有效地擴展到這些級別。 那就是 MapReduce 出現的地方。 2. MapReduce 是用于處理和生成大型數據集的編程模型以及相關的實現。 用戶指定一個處理鍵/值對以生成一組中間鍵/值對的映射函數,以及一個歸約函數,該歸約函數合并與同一中間鍵關聯的所有中間值。 在此模型中,許多現實世界的任務都是可以表達的。 以這種功能風格編寫的程序會自動并行化,并在大型商用機器集群上執行。 運行時系統負責劃分輸入數據,在一組機器上調度程序的執行,處理機器故障以及管理所需的機器間通信的細節。 這使沒有并行和分布式系統經驗的程序員可以輕松利用大型分布式系統的資源。 3. 為什么要使用 MapReduce? -在許多機器之間分區任務的好方法。 -處理機器故障。 -適用于不同的應用程序類型,例如搜索和廣告。 幾乎每個應用程序都有 map reduce 類型的操作。 您可以預先計算有用的數據,查找字數,對數據 TB 進行排序等。 -計算可以自動移近 IO 源。 4. MapReduce 系統具有三種不同類型的服務器。 -主服務器分配用戶任務以映射和簡化服務器。 它還跟蹤任務的狀態。 -地圖服務器接受用戶輸入并對其進行地圖操作。 結果將寫入中間文件 -Reduce 服務器接受地圖服務器生成的中間文件,并對它們執行 reduce 操作。 5. 例如,您要計算所有網頁中的單詞數。 您將把存儲在 GFS 上的所有頁面送入 MapReduce。 這將同時在數千臺計算機上發生,并且所有協調,作業調度,故障處理和數據傳輸將自動完成。 -步驟如下:GFS->映射->隨機播放->縮減->將結果存儲回 GFS。 -在 MapReduce 中,地圖將一個數據視圖映射到另一個數據視圖,生成一個鍵值對,在我們的示例中為單詞和計數。 -改組聚合密鑰類型。 -減少量匯總所有鍵值對并產生最終答案。 6. Google 索引編制管道具有約 20 種不同的簡化地圖。 管道使用一堆記錄和聚合鍵來查看數據。 第二個 map-reduce 耗時較長,會得到該結果并執行其他操作。 等等。 7. 程序可能很小。 最少 20 到 50 行代碼。 8. 一個問題是流浪漢。 散亂的人是比其他人慢的計算。 由于 IO 速度慢(例如控制器故障)或 CPU 暫時出現峰值,可能會導致流浪漢。 解決方案是運行多個相同的計算,并在完成一個計算后殺死所有其余計算。 9. 在 map 和 reduce 服務器之間傳輸的數據已壓縮。 這個想法是因為服務器不受 CPU 的限制,因此有必要花數據壓縮和解壓縮以節省帶寬和 I / O。 ### 在 BigTable 中存儲結構化數據 1. BigTable 是一個大型的,容錯的,自我管理的系統,其中包括 TB 級的內存和 PB 級的存儲。 它每秒可以處理數百萬次讀/寫。 2. BigTable 是建立在 GFS 之上的分布式哈希機制。 它不是關系數據庫。 它不支持聯接或 SQL 類型查詢。 3. 它提供了按鍵訪問結構化數據的查找機制。 GFS 存儲不透明的數據,許多應用程序需要具有結構的數據。 4. 商業數據庫根本無法擴展到該級別,并且無法在 1000 臺計算機上使用。 5. 通過控制自己的低級存儲系統,Google 可以獲得更多的控制權和杠桿作用來改進其系統。 例如,如果他們想要使跨數據中心操作更容易的功能,則可以將其內置。 6. 可以在系統運行時添加和刪除計算機,并且整個系統都可以正常運行。 7. 每個數據項都存儲在一個單元格中,可以使用行鍵,列鍵或時間戳對其進行訪問。 8. 每行存儲在一個或多個平板電腦中。 數位板是一系列 64KB 的塊,其數據格式為 SSTable。 9. BigTable 具有三種不同類型的服務器: -主服務器將平板電腦分配給平板電腦服務器。 他們跟蹤平板電腦的位置,并根據需要重新分配任務。 -平板電腦服務器處理對平板電腦的讀/寫請求。 當超出尺寸限制(通常為 100MB-200MB)時,他們會拆分平板電腦。 當平板電腦服務器出現故障時,每臺 100 臺平板電腦服務器將拾取 1 臺新平板電腦,然后系統將恢復。 -鎖定服務器形成分布式鎖定服務。 打開平板電腦進行書寫,主控權和訪問控制檢查之類的操作需要相互排斥。 10. 位置組可用于將數據的相關位物理存儲在一起,以實現更好的參考位置。 11. 平板電腦盡可能多地緩存在 RAM 中。 ### 硬件 1. 當您有很多機器時,如何構建它們以使其具有成本效益并高效使用電源? 2. 在頂部使用超廉價的商品硬件和內置軟件來應對其死亡。 3. 如果您使用容易發生故障的基礎架構,而不是基于高度可靠的組件構建的基礎架構,則可以將計算機功耗提高 1000 倍,而成本卻降低了 33 倍。 為了使此策略有效,您必須在不可靠性的基礎上建立可靠性。 4. Linux,內部機架設計,PC 類主板,低端存儲。 5. 基于性能的每瓦價格并沒有改善。 有巨大的電源和散熱問題。 6. 混合使用搭配使用自己的數據中心。 ### 雜項 1. 快速推出更改,而不必等待質量檢查。 2. 圖書館是構建程序的主要方式。 3. 有些應用程序是作為服務提供的,例如爬網。 4. 基礎結構可處理應用程序的版本控制,因此可以發布它們而不必擔心發生問題。 ### Google 的未來發展方向 1. 支持地理分布式集群。 2. 為所有數據創建一個全局名稱空間。 當前,數據按群集進行隔離。 3. 更好,更好的數據和計算自動化遷移。 4. 解決將廣域復制與網絡分區結合使用時發生的一致性問題(例如,即使群集因維護而脫機或由于某種故障而保持服務正常運行)。 ## 得到教訓 1. **基礎設施可以成為競爭優勢**。 當然是給 Google 的。 他們可以更快,更便宜地推出新的互聯網服務,而且在其他競爭者中還可以大規模地推出。 許多公司采用完全不同的方法。 許多公司將基礎設施視為支出。 每個小組將使用完全不同的技術,并且幾乎沒有計劃和如何構建系統的共性。 Google 視自己為一家系統工程公司,這是研究構建軟件的一種非常新穎的方式。 2. **跨多個數據中心仍然是一個尚未解決的問題**。 大多數網站位于一個和最多兩個數據中心。 我們應該說,如何在一組數據中心之間完全分配網站是很棘手的。 3. **如果您沒有時間自己重新構建所有這些基礎架構,請看一下 Hadoop **。 Hadoop 是此處介紹的許多相同想法的開源實現。**** 4. **平臺方法的一個令人贊賞的優勢**是初級開發人員可以在平臺之上快速而自信地創建健壯的應用程序。 如果每個項目都需要創建相同的分布式基礎架構輪子,您會遇到困難,因為知道如何做到這一點的人相對很少。 5. **協同作用并不總是胡扯**。 通過使系統的所有部分協同工作,一項改進可以幫助他們。 改進文件系統,每個人都可以立即透明地受益。 如果每個項目使用不同的文件系統,那么整個堆棧就不會有持續的改進。 6. **構建無需運行系統即可運行的自我管理系統**。 這使您可以更輕松地在服務器之間重新平衡資源,動態添加更多容量,使計算機脫機并妥善處理升級。 7. **創建達爾文式基礎結構**。 并行執行耗時的操作并贏得優勝者。 8. **不要忽略學院**。 學術界有很多好的想法,這些想法無法轉化為生產環境。 Google 所做的大部分工作都是現有技術,而不是大規模部署。 9. **考慮壓縮**。 當您有大量的 CPU 可供使用且 IO 有限時,壓縮是一個不錯的選擇。 好文章。 真的很好。 真的非常好文章。 真的真的真的真的好文章。 亞馬遜擁有“云計算”功能,可以在此規模上為您提供更好的性價比。 真的很好.. / SG 我喜歡這篇文章...天哪,你知道你的東西。 最好的部分是,由 Google 制作的這些視頻是您的參考框架。 我強烈建議您甚至進一步簡化它。 我喜歡這些內容,您真的應該在 Scalability 2.0 下將這些內容添加到 iMarketingGuru 中。我將放置有關這些類型的可伸縮性的文章鏈接,您可以隨時給自己很多鏈接愛,并繼續進行下去。 維基。 我喜歡這個東西= o) 感謝您分享這些信息。 真是胡扯。 Google 只會進行搜索和搜索,它們不會在 gmail,google talk,SDK,電子表格,Checout 或任何其他服務中發揮作用。 遲早您會弄清楚-當人們變得更聰明并停止按 Google 廣告上的鏈接時-Google 奶牛將停止現金流... 內容豐富,但缺乏細節。 我確實同意上面的那個家伙,他們只是在搜索中大放異彩,他們需要在其他領域大力推廣牛奶:) 很棒的內容。 真的很有用。 干杯! 感謝您分享此信息,它非常有用 很棒的帖子! 我想 Google 會以某種方式創建 Google 操作系統。 它只是存在于云中并且可以使用的服務器和集群的集合。 :-) 作為對您的文章的深入研究的副作用,我將其翻譯為德語: [http://habacht.blogspot.com/2007/10/google-architecture.html](http://habacht.blogspot.com/2007/10/google-architecture.html) Google 負擔得起所有這種結構^) 我將不得不保存并稍后重新閱讀。 這里有很多細節可以幫助解釋 G 的一些怪癖。 僅僅考慮其背后的龐大體系結構,只會讓我的思想融化。 Google 以前已經丟失了其電子郵件客戶的數據。 不要對谷歌如此信服。 谷歌是一家擁有其他類似缺陷的公司。 他們還不像微軟那么糟糕,但是給它一點時間,他們就會到達那里。 如果您想保護自己的數據安全,請自己做,并確保 99.9999%的時間都可以正常工作。 非常有趣且內容豐富的文章! 我發現它是我正在研究的某些項目的體系結構的重要參考。 真的很好! 完美的文章,謝謝。 Google 變得比搜索引擎更重要 優秀文章 哪里描述 Google LAB:GWS-Google Web Server? Google 只是搜索者中的第一個! 例如, [http://loadingvault.com](http://loadingvault.com) 或 [http://loadingvault.com](<a rel=) “ > quickshare search 和 google.com 之間的區別?這兩個網站都在搜索 正確的信息!廣告管理是一件非常好的事! 好。 謝謝。 :) Quite informative but lacks the nity grity details. I do agree to the fellow above that they only shine in search they need to pitch hard in other areas to milk :) 我曾經閱讀過有關 MapReduce 體系結構的最佳文章。 知道像 Google 這樣的大公司如何運作總是很有趣的。 謝謝.. 給“什么廢話”的人。 多么透明。 如果我們從主流中脫穎而出,就好像我們對某個主題有一些內在的,高超的知識,我們會顯得聰明嗎? 本文并不將 Google 定位為最終的所有軟件公司。 他們是搜索引擎,而且做得很好。 這是關于他們如何做好的。 真是的 如果它們“不如微軟那么糟糕”-??? Microsoft 在 200 個國家/地區擁有 60,000 名員工。 您雇用多少人? 我對這些消極,無知的人感到厭煩,這些人試圖以犧牲別人的工作成果為代價看起來很聰明…… 多數民眾贊成在一個頁面上收集的很好的信息收集。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看