Google Dremel讓大數據不再“恐怖”
作者:Danice
Mike Olson是硅谷創業公司Cloudera的CEO,這家公司專門圍繞開源軟件平臺Hadoop發展自身的業務。也許很多人對Hadoop并不是很了解,但是Google正是依賴它成為網絡世界最具主導力的巨頭。預計到2016年,Hadoop將為整個軟件市場創造8.13億美元的價值,但是Mike Olson居然很淡定的表示這個已經不是什么新聞了。
Hadoop來源自Google在2003年底和2004年發表的兩篇研究論文。***篇介紹了Google File System,它是一個可擴展的分布式文件系統,用于大型的、分布式的、對大量數據進行訪問的應用。它運行于廉價的普通電腦服務器上,但可以提供容錯功能并且可以給大量的用戶提供總體性能較高的服務;另一篇介紹的是MapReduce,這是是一種編程模型,用于大規模數據集(大于1TB)的并行運算,能夠極大地方便編程人員在不會分布式并行編程的情況下,將自己的程序運行在分布式系統上。八年之后,Hadoop在網絡上得到了廣泛的使用,應用領域涉及數據分析到各種這樣的數值計算任務。但Google卻研發出了更好的技術。
2009年,網絡巨頭Google開始用新的技術取代Google File System和MapReduce。對于Google使用的新技術,Mike Olson不吝贊美之詞:
“這些技術代表著未來的發展方向。如果你想知道大規模、高性能的數據處理的基礎架構是怎樣的,我建議你去看看Google即將發表的研究論文。”
自從Hadoop興起以來,Google發表了三篇值得關注的研究論文,主要都是關于如何支持Google大規模網絡操作的基礎架構。其中一篇詳述了Caffeine,一個為Google網絡搜索引擎提供支持的軟件平臺;第二篇是關于Pregel,一個用于映射大量在線信息之間關系的“圖形數據庫”。但最吸引人的還是一篇介紹Dremel工具的論文。
Dremel是一種分析數據的方法,它運行在上千臺服務器上,能夠讓你對海量數據執行“查詢”操作,例如網頁文檔集、或者數字圖書館甚至是百萬規模的垃圾信息等。這有點類似于在過去傳統的數據庫上執行SQL操作,過去幾十年來,SQL(結構化查詢語言)在軟件領域得到了廣泛的應用。比如說你收集了大量的數字圖書,那么你可以自己建立一個能夠列出所有作者的名單或者涉及某個特定領域的作者列表的特殊查詢。
監管Google基礎架構的Urs Hölzle說:“Dremel是一個類似SQL風格的語言,讓你能夠在不編程的前提下輕松的定義特定的查詢或反復查詢。你只需要把查詢命令輸入命令行。”但是與SQL的不同之處在于,Dremel以極快的速度處理大規模的數據。據Google的論文數據顯示,你能夠在幾秒鐘之內查詢多達數PB的數據(1PB等于100萬GB)。
Hadoop已經提供了相應工具,能夠在大數據集上運行類SQL查詢,Hadoop的姊妹項目Pig&Hive就是專門為這個目的而建立的,但是Hadoop存在時間延遲,它是一個用來進行“批處理”的平臺,你制定一個任務,它需要幾分鐘或幾個小時來執行這個任務,之后你才能拿到結果,而Dremel則是專門為即時查詢而生的。
Google的論文中寫到:“Dremel能夠在大數據上同時執行多個查詢操作,并且只需要極短的執行時間。在以前,則需要寫一系列的MapReduce任務,執行時間也比Dremel要長很多。據Hölzle 稱,Dremel在一個PB級別的數據上完成查詢只需要短短三秒鐘的時間。專門研究數據中心級軟件平臺的加州大學伯克利分校計算機系教授Armando Fox表示,Dremel的表現是是史無前例的。
“Hadoop是“大數據”時代的核心,是用來構建分析超大規模信息的工具,但是和當前的大多數大數據工具一樣,都存在一些缺點。你不能指望在大數據工具上的查詢能夠達到傳統數據庫或商業智能工具的精度和速度,但是Dremel能做到這一點”,Fox如是說道。
“Dremel既能進行大規模的分析,又能夠深入地查看數據,這是我以前覺得不可能的事情,”Fox說,“Dremel能夠處理的數據規模和處理數據的時間讓人印象深刻。以前人們也開發過不同的大數據系統,但是在Dremel之前,還沒有哪個系統能夠像它這樣如此快速地處理如此多的數據。一般來說,速度和規模你只能二選其一。你更注重速度就得以犧牲規模為代價,反之亦然,但是Dremel能過做到連著兼顧。”
即使你不是Google員工 ,如今也可以使用Dremel了。Google現在提供了一個基于Dremel的網絡服務BigQuery,你可以通過在線API使用這個平臺,基本上來說,只要你將數據上傳至Google,就可以利用Google的內部架構來執行查詢。
這是Google提供的越來越多的云服務的一部分。起初Google允許你通過Google App Engine在Google的架構上編譯、運行整個應用程序,而現在增加了包括BigQuery和Google Compute Engine(用于即時訪問虛擬服務器)在內的各種其他工具,可以方便用戶及時訪問虛擬服務器。
從Google的論文我們得知,早在2006年,這個系統就已經在Google內部使用了,“數千個”Google員工用它來分析很多事情,從各種Google服務的軟件崩潰報告到數據中心內部硬盤行為數據等等。有時候,Dremel可以在數十臺甚至數千臺服務器上同時運行。
雖然Hadoop的成功是毋庸置疑的,但與Google相比,Clodera CEO MikeOlson覺得開發這個平臺的公司和開發人員還是有些落后了,我們在Dremel身上也看到了同樣的情況。雖然Google早在2010年就發表了Dremel論文,但是要看到由第三方開發人員將整個平臺仿制出來,仍然還有很長的一段路要走。來自以色列的一個工程師團隊正在構建一個叫做OpenDremel的類似系統,不過其中的一位開發人員David Gruzman說他們中斷了很長時間,現在才開始編碼。
很顯然,Google走在了世界前列,與此同時,它也在***著世界上其它公司的進步。
責任編輯:彭凡
來源:
雷鋒網