天天看點

【轉載】Google 後 Hadoop 時代的新 “三駕馬車” -- Caffeine(搜尋)、Pregel(圖計算)、Dremel(查詢)

摘要:Google 在 2003 年到 2004 年公布了關于 GFS、MapReduce 和 BigTable 三篇技術論文(舊三駕馬車),這也成為後來​

​雲計算發展的重要基石​

​,如今 Google 在後 Hadoop 時代的新“三駕馬車” -- Caffeine、Pregel、Dremel 再一次影響着全球大資料技術的發展潮流。

Mike Olson(邁克爾·奧爾森) 是 Hadoop 運動背後的主要推動者,但這還遠遠不夠,目前 Google 内部使用的大資料軟體 Dremel 使大資料處理起來更加智能。

Mike Olson 目前任職于世界上最熱的軟體專業公司 -- Cloudera(矽谷的創業企業),并擔任 Cloudera 的首席執行官。Cloudera 圍繞開源軟體平台 Hadoop 發展自身的業務,開源軟體平台 Hadoop 已經使得 Google 變身網絡上最主導的力量。

預計到 2016 年 Hadoop 将會推動軟體市場,并創造 8.13 億美元的價值。不過 Mike Olson 表示這已經是老新聞了。

Hadoop 的火爆要得益于 Google 在 2003 年底和 2004 年公布的兩篇研究論文,其中一份描述了 GFS(Google File System),​

​GFS 是一個可擴充的大型資料密集型應用的分布式檔案系統​

​,該檔案系統可在廉價的硬體上運作,并具有可靠的容錯能力,該檔案系統可為使用者提供極高的計算性能,而同時具備最小的硬體投資和營運成本。

另外一篇則描述了 MapReduce,​

​MapReduce 是一種處理大型及超大型資料集并生成相關執行的程式設計模型​

​。其主要思想是從函數式程式設計語言裡借來的,同時也包含了從矢量程式設計語言裡借來的特性。基于 MapReduce 編寫的程式是在成千上萬的普通 PC 機上被并行分布式自動執行的。8 年後,Hadoop 已經被廣泛使用在網絡上,并涉及資料分析和各類數學運算任務。但 Google 卻提出更好的技術。

在 2009 年,網絡巨頭開始使用新的技術取代 GFS 和 MapReduce。Mike Olson 表示 “這些技術代表未來的趨勢。如果你想知道大規模、高性能的資料處理基礎設施的未來趨勢如何,我建議你看看 Google 即将推出的研究論文”。

自Hadoop 興起以來,Google 已經釋出了三篇研究論文,主要闡述了​

​基礎設施如何支援龐大網絡操作​

​。其中一份較長的描述了 Caffeine,​

​Caffeine 主要 為Google 網絡搜尋引擎提供支援​

​。

在 Google 采用 Caffeine 之前,Google 使用 MapReduce 和分布式檔案系統(如 GFS)來建構搜尋索引(從已知的 Web 頁面索引中)。在 2010 年,Google 搜尋引擎發生了重大變革。Google 将其搜尋遷移到新的軟體平台,他們稱之為 “Caffeine”。Caffeine 是 Google 出自自身的設計,Caffeine 使 Google 能夠更迅速的添加新的連結(包括新聞報道以及部落格文章等)到自身大規模的網站索引系統中,相比于以往的系統,新系統可提供 “50% 新生” 的搜尋結果。

在本質上 Caffeine 丢棄 MapReduce 轉而将索引放置在由 Google 開發的分布式資料庫 BigTable 上。作為 Google 繼 GFS 和 MapReduce 兩項創新後的又一項創新,其在設計用來針對海量資料處理情形下的管理結構型資料方面具有巨大的優勢。這種海量資料可以定義為在雲計算平台中數千台普通伺服器上 PB 級的資料。(1PB = 1024T)

另一篇介紹了 Pregel,​

​Pregel 主要繪制大量網上資訊之間關系的“圖形資料庫”​

​。而最吸引人的一篇論文要屬被稱之為 Dremel 的工具。

專注于大型資料中心規模軟體平台的加利福尼亞伯克利分校計算機科學教授 Armando Fox 表示 “如果你事先告訴我 Dremel 可以做什麼,那麼我不會相信你可以把它開發出來”。

​Dremel 是一種分析資訊的方式,Dremel 可跨越數千台伺服器運作,允許“查詢”大量的資料​

​,如 Web 文檔集合或數字圖書館,甚至是數以百萬計的垃圾資訊的資料描述。這類似于使用結構化查詢語言分析傳統關系資料庫,這種方式在過去幾十年被廣泛使用在世界各地。

Google 基礎設施負責人 Urs Hölzle 表示 “使用 Dremel 就好比你擁有類似 SQL 的語言,并可以無需任何程式設計的情況下隻需将請求輸入指令行中就可以很容易的制定即時查詢和重複查詢”。

差別在于 Dremel 可以在極快的速度處理網絡規模的海量資料。據 Google 送出的檔案顯示你可以在幾秒的時間處理 PB 級的資料查詢。

目前 Hadoop 已經提供了在龐大資料集上運作類似 SQL 的查詢工具(如 Hadoop 生态圈中的項目 Pig 和 Hive)。但其會有一些延遲,例如當部署任務時,可能需要幾分鐘的時間或者幾小時的時間來執行任務,雖然可以得到查詢結果,但相比于 Pig 和 Hive,Dremel 幾乎是瞬時的。

Holzle 表示 Dremel 可移執行多種查詢,而同樣的任務如果使用 MapReduce 來執行通差需要一個工作序列,但執行時間确是前者的一小部分。​

​Dremel 可在大約 3 秒鐘時間裡處理 1PB 的資料查詢請求​

Armando Fox 表示 Dremel 是史無前例的,Hadoop 作為大資料運動的核心一直緻力建構分析海量資料工具的生态圈。但就目前的大資料工具往往存在一個缺陷,與傳統的資料分析或商業智能工具相比,Hadoop 在資料分析的速度和精度上還無法相比。但目前 Dremel 做到了魚和熊掌兼得。

Dremel 做到了 “不可能完成的任務”,Dremel 設法将海量的資料分析于對資料的深入挖掘進行有機的結合。Dremel 所處理的資料規模的速度實在令人印象深刻,你可以輕松的探索資料。在 Dremel 出現之前還沒有類似的系統可以做的像 Dremel 這樣出色。

據 Google 送出的檔案來看,Google 從 2006 年就在内部使用這個平台,有“數千名”的 Google 員工使用 Dremel 來分析一切,從 Google 各種服務的軟體崩潰報告到 Google 資料中心内的磁盤行為。這種工具有時會在數十台伺服器上使用,有時則會在數以千計的伺服器上使用。

Mike Olson 表示盡管 Hadoop 取得的成功不容置疑,但建構 Hadoop 生态圈的公司和企業顯然慢了,而同樣的情況也出現在 Dremel 上,Google 在 2010 年公布了 Dremel 的相關文檔,但這個平台還沒有被第三方企業充分利用起來,目前以色列的工程團隊正在建設被稱為 OpenDremel 的克隆平台。David Gruzman 表示 OpenDremel 目前僅僅還在開始階段,還需要很長時間進行完善。

換句話說即使你不是 Google 的工程師你同樣可以使用 Dremel。Google 現在提供的 BigQuery 的服務就是基于 Dremel。使用者可通過線上 API 來使用這個平台。使用者可以把資料上傳到 Google,并在 Google 基礎設施中運作使用者的查詢服務。而這隻是 Google 越來越多雲服務的一部分。

早期使用者通過 Google App Engine 建構、運作、并将應用托管在 Google 基礎設施平台之上。而現今 Google 提供了包括 BigQuery 和 Google Compute Engine 等服務和基礎設施,這些服務和基礎設施可使使用者瞬時接入虛拟伺服器。

全球很多技術都落後于 Google,而 Google 自身的技術也正在影響全球。

繼續閱讀