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