Hadoop之父Doug Cutting眼中大數(shù)據(jù)技術的未來
2016,Hadoop走過第十個年頭。Hadoop之父Doug Cutting1985年畢業(yè)于美國斯坦福大學,早期的他并不是一開始就決心投身IT行業(yè)的。他如何成為Hadoop之父?Hadoop的發(fā)展和未來期待又是如何的?
上次見到(膜拜)Hadoop之父Doug Cutting是在2年前,2014中國大數(shù)據(jù)技術大會上。今年Hadoop10歲,剛看到他的Hadoop十周年賀詞,感覺時間飛逝。
成長史
1985年畢業(yè)于美國斯坦福大學的Cutting并不是一開始就決心投身IT行業(yè)的。在大學時代的頭兩年,Cutting學習了諸如物理、地理等常規(guī)課程。因為學費的壓力,Cutting開始意識到,自己必須學習一些更加實用、有趣的技能。這樣,一方面可以幫助自己還清貸款,另一方面,也是為自己未來的生活做打算。因為斯坦福大學座落在IT行業(yè)的“圣地”硅谷,所以學習軟件對年輕人來說是再自然不過的事情了。
Cutting的第一份工作是在Xerox做實習生,Xerox當時的激光掃描儀上運行著三個不同的操作系統(tǒng),其中的一個操作系統(tǒng)還沒有屏幕保護程序。因此,Cutting就開始為這套系統(tǒng)開發(fā)屏幕保護程序。由于這套程序是基于系統(tǒng)底層開發(fā)的,所以 其他同事可以給這個程序添加不同的主題。這份工作給了Cutting一定的滿足感,也是他最早的“平臺”級的作品。
可以說,Xerox對 Cutting后來研究搜索技術起到了決定性的影響,除了短暫的在蘇格蘭工作的經(jīng)歷外,Cutting事業(yè)的起步階段大部分都是在Xerox度過的,這段 時間讓他在搜索技術的知識上有了很大提高。他花了四年的時間搞研發(fā),這四年中,他閱讀了大量的論文,同時,自己也發(fā)表了很多論文,用Cutting自己的 話說——“我的研究生是在Xerox讀的?!?/span>
盡管Xerox讓Cutting積累了不少技術知識,但他卻認為,自己當時搞的這些研究只是紙上談兵,沒有人試驗過這些理論的可實踐性。于是,他決定勇敢地邁出這一步,讓搜索技術可以為更多人所用。1997年底,Cutting開始以每周兩天的時間投入,在家里試著用Java把這個想法變成現(xiàn)實,不久之后,Lucene誕生了。作為第一個提供全文文本搜索的開源函數(shù)庫,Lucene的偉大自不必多言。
之后,Cutting再接再厲,在 Lucene的基礎上將開源的思想繼續(xù)深化。2004年,Cutting和同為程序員出身的Mike Cafarella決定開發(fā)一款可以代替當時的主流搜索產(chǎn)品的開源搜索引擎,這個項目被命名為Nutch。在此之前,Cutting所在的公司 Architext(其主要產(chǎn)品為Excite搜索引擎)因沒有頂住互聯(lián)網(wǎng)經(jīng)濟泡沫的沖擊而破產(chǎn),那時的Cutting正處在Freelancer的生涯 中,所以他希望自己的項目能通過一種低開銷的方式來構建網(wǎng)頁中的大量算法。幸運的是,Google這時正好發(fā)布了一項研究報告,報告中介紹了兩款 Google為支持自家的搜索引擎而開發(fā)的軟件平臺。這兩個平臺一個是GFS(Google File System),用于存儲不同設備所產(chǎn)生的海量數(shù)據(jù);另一個是MapReduce,它運行在GFS之上,負責分布式大規(guī)模數(shù)據(jù)。基于這兩個平臺,Cutting最引人矚目的作品——Hadoop誕生了(后來大家習慣認為Hadoop于2006年1月28日誕生的)。談到Google對他們的 “幫助”,Cutting說:“我們開始設想用4~5臺電腦來實現(xiàn) 這個項目,但在實際運行中牽涉了大量繁瑣的步驟需要靠人工來完成。Google的平臺讓這些步驟得以自動化,為我們實現(xiàn)整體框架打下了良好的基礎?!?/span>
說起Google,Cutting也是它成長的見證人之一,這里有一段鮮為人知的故事。早在Cutting供職于Architext期間,有兩個年輕人曾去拜訪這家公司,并向他們兜售自己的搜索技術,但當時他們的Demo只檢索出幾百萬條網(wǎng)頁,Excite的工程師們覺得他們的技術太小兒科,于是就在心里鄙 視一番,把他們給送走了。但故事并未到此結束,這兩個年輕人回去之后痛定思痛,決定自己創(chuàng)業(yè)。于是,他們開了一家自己的搜索公司,取名為Google。這兩個年輕人就是Larry Page和Sergey Brin。在Cutting看來,Google的成功主要取決于,反向排序之后再存儲的設計和對自己技術的自信。
出于對時間成本的考慮,在從Architext離職四年后,Cutting決定結束這段Freelancer的生涯,找一家靠譜的公司,進一步完善 Hadoop的性能。他先后面試了幾家公司,其中也包括IBM,但IBM似乎對他的早期項目Lucene更感興趣,至于Hadoop則不置可否。就在此 時,Cutting接受了當時Yahoo!搜索項目負責人Raymie Stata的邀請,于2006年正式加入Yahoo!。在Yahoo!,有一支一百人的團隊幫助他完善Hadoop項目,這期間開發(fā)工作進行得卓有成效。 不久之后,Yahoo!就宣布,將其旗下的搜索業(yè)務的架構遷移到Hadoop上來。兩年后,Yahoo!便基于Hadoop啟動了第一個應用項目 “webmap”——一個用來計算網(wǎng)頁間鏈接關系的算法。Cutting的時任上司(后為Hortonworks CEO)Eric Baldeschwieler曾說:“在相同的硬件環(huán)境下,基于Hadoop的webmap的反應速度是之前系統(tǒng)的33倍?!?/span>
談到成功,Cutting認為他的成功主要歸功于兩點,一是對自己工作的熱情(Cutting在大學時就開始做Infrastracture類的程序,還用 Lisp為Emacs貢獻過代碼,他非常喜歡自己的程序被千萬人使用的感覺);二是目標不要定得過大,要踏踏實實,一步一個腳印。
現(xiàn)在已經(jīng)被業(yè)內稱為Hadoop之父的Cutting在Hadoop10年來到之時發(fā)表文章:Hadoop At 10: Doug Cutting On Making Big Data Work。InfoQ翻譯了中文(原文內容,翻譯)。讓我們一起看看他眼中的大數(shù)據(jù)技術的未來是怎么樣的?
他眼中大數(shù)據(jù)技術的未來
換為本人敘述模式)2016年1月28日,是Hadoop誕生十周年。此紀念日既給予了我們機會去慶祝過去10年來 Apache Hadoop所取得的進步,也讓我們反思是如何取得今天的一切成就,同時以便更好地規(guī)劃未來的發(fā)展目標。
Hadoop是為了大數(shù)據(jù)而誕生的,其本身就象征著本世紀工業(yè)革命的焦點:業(yè)務的數(shù)字化轉型。十年前,數(shù)字化業(yè)務僅僅在少數(shù)幾個行業(yè)中得到了應用,例如電子商務和媒體。從那時起,我們已經(jīng)看到數(shù)字化技術將成為幾乎所有行業(yè)必不可少的一環(huán)。每一個行業(yè)都正在致力于圍繞其信息系統(tǒng)構建數(shù)據(jù)驅動型運營模式。像Hadoop之類的大數(shù)據(jù)工具可以使各行業(yè)能夠從他們所產(chǎn)生的數(shù)據(jù)中獲得最大的利益。
Hadoop本身并非是數(shù)字化轉型的根本起因,但是它是推動這種發(fā)展趨勢的重要因素。因此,通過追溯Hadoop的發(fā)展歷史,可以更好地了解我們現(xiàn)在所處的世紀。
兩大傳統(tǒng)
在Hadoop出現(xiàn)之前,業(yè)界存在兩大軟件傳統(tǒng),Doug Cutting稱之為“企業(yè)式(enterprise)”和“黑客式(hacker)”。在企業(yè)式傳統(tǒng)中,供應商負責向運行軟件的企業(yè)開發(fā)和銷售軟件,但是兩者之間的合作是非常少的。企業(yè)軟件依賴于一套關系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)來解決幾乎所有的問題。用戶僅信任他們自己的關系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)來存儲和處理業(yè)務數(shù)據(jù)。如果某數(shù)據(jù)不是在該關系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)中,用戶則認為不是業(yè)務數(shù)據(jù)。
在黑客式傳統(tǒng)中,軟件主要由那些在大學、研究中心和硅谷網(wǎng)絡公司開發(fā)該軟件的相關方使用。開發(fā)人員通過編寫軟件來解決特定的問題,例如路由網(wǎng)絡流量、網(wǎng)頁生成和網(wǎng)頁服務等等。因此,Doug 選擇了后一種傳統(tǒng),十多年來一直專門致力于搜索引擎是開發(fā)工作。Doug 說他們很少使用關系數(shù)據(jù)庫管理系統(tǒng)(RDBMS),因為其沒有得到很好地擴展以搜索整個網(wǎng)絡,速度非常慢,不靈活且成本昂貴。
Hadoop的發(fā)展歷史
2000年,我加入了Apache Lucene項目,第一次嘗試開源項目開發(fā)工作。該方法對他來說是一個啟迪。不僅僅可以與開發(fā)人員緊密合作,而且變更工作單位后還可以繼續(xù)為同一款軟件投入心血。但最重要的是,這極大地增長了見識:優(yōu)秀的開源項目是如何讓軟件變得大受歡迎的。如果軟件不會因許可限制而束縛,那么使用者就能夠以更為舒適的方式來使用該軟件,并基于該軟件開展自身的業(yè)務,而不會存在硬依賴于不透明的商業(yè)性軟件的風險。當使用者發(fā)現(xiàn)問題時,他們就可以介入并協(xié)助解決這些問題,從而提升了開發(fā)團隊的規(guī)模??偠灾?,開源是軟件應用和開發(fā)的一種促進劑。
幾年后,大約在2004年左右,當開發(fā)Apache Nutch項目時,我有了另外一個見解。當時正試圖構建一個可以處理數(shù)十億網(wǎng)頁的分布式系統(tǒng)。但是,不如人意的是該過程進展相當緩慢:很難開發(fā)和運行這個軟件。聽說,谷歌公司(Google)的工程師設計了一個系統(tǒng),可以只需要幾行代碼編寫一個計算程序,該計算程序可以在數(shù)千臺機器上并行運行,并且可以在幾分鐘時間內就能夠可靠地處理多TB的數(shù)據(jù)。之后,谷歌公司(Google)發(fā)表了兩篇論文,描述了該計算程序是如何工作的,其中最關鍵的就是一個分布式文件系統(tǒng)(GFS)與一個執(zhí)行引擎(MapReduce)。這種方式將使Nutch變成一個更可行的系統(tǒng)。此外,這些工具可能可以被用于很多其他應用程序中。MapReduce在大規(guī)模數(shù)據(jù)分析方面展現(xiàn)出了前所未有的潛力,但當時只提供給谷歌公司(Google)的工程師使用。
綜合開源特性在推廣科學技術方面的效能以及谷歌公司(Google)方法的廣泛適用性,我意識到采用開源的方式實施谷歌公司(Google)的想法將不僅能更好地應用Nutch,而且很有可能成為一個非常成功的開源項目。懷著這樣的想法,Mike Cafarella和我開始在Nutch系統(tǒng)中實施這樣的分布式文件系統(tǒng)和MapReduce引擎。
截至到2005年,谷歌公司(Google)引領的這種新型Nutch系統(tǒng)已經(jīng)被我們應用于20到40個計算機集群中。但是,如果僅僅依靠幾個人利用業(yè)余時間來開發(fā)這款軟件,那么可能需要耗費很多年的時間才能讓該足夠穩(wěn)定且可靠。此外該軟件需要在數(shù)以千計的計算機集群上進行測試和調試,但是他們沒有足夠的計算機集群來完成這一工作。
2006年,我在雅虎公司(Yahoo!)給一些伙計們談論了有關Nutch的信息,并且得知大家對這種軟件存在巨大的需求。同時,我們也有一支熟練的工程師隊伍在進行這項工作,并且部署了大量的硬件。
于是,在2006年1月,我加入到了雅虎公司(Yahoo!)。此后不久將Nutch中的分布式文件系統(tǒng)和MapReduce軟件分隔開來形成了一個新的項目,即“Hadoop”,這是以我的兒子的毛絨大象玩具而命名的。由于新加入了十幾名雅虎公司(Yahoo!)的工程師以及配置了數(shù)千臺電腦,取得了飛速的進展。截止到2007年,我們構建了一個相對穩(wěn)定的、可靠的系統(tǒng),可以使用經(jīng)濟實惠的商用硬件處理數(shù)千兆字節(jié)(PB)的數(shù)據(jù)。
Hadoop徹底地改變了整個行業(yè)的格局。開發(fā)人員可以更快、更輕松地構建更好的廣告方式、拼寫檢查、頁面布局等等。此外,越來越多的非雅虎公司(Yahoo!)的用戶也開始部署Hadoop,例如Facebook、Twitter和LinkedIn等公司。在Hadoop之上也很快建立了其他項目,例如Apache Pig、Apache Hive、Apache HBase等等。同時,學術研究人員也開始使用Hadoop。這樣就已經(jīng)達到了我們最初設想的目標:即構建一個能夠輕松方便、經(jīng)濟實惠地存儲和分析大量數(shù)據(jù)的非常流行的開源項目。
隨后一些風險投資商說該軟件可能除了網(wǎng)絡和學術界之外還有更大用途。但是有人認為銀行、保險公司和鐵路公司可能永遠也不會運行這種開源的“黑客式”軟件。風險投資商依然堅持他們的觀點,并在2008年籌建了Cloudera,這是業(yè)界第一家明確使命為將Hadoop和相關技術引入傳統(tǒng)企業(yè)的公司。
一年以后,在2009年,我開始意識到這種可能性。如果可以讓世界500強企業(yè)開始采用Hadoop的話,那么很可能就會改變他們的業(yè)務模式。隨著公司逐漸采取更多的技術,從網(wǎng)站和呼叫中心到現(xiàn)金出納機和條碼掃描器,他們的手指尖將會傳遞越來越多的關于他們企業(yè)的數(shù)據(jù)。如果企業(yè)機構能夠采集和使用更多的數(shù)據(jù),那么將可以更好地了解和改善他們的業(yè)務。傳統(tǒng)的基于關系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)的技術存在以下弱點:在支持可變、凌亂的數(shù)據(jù)和快速實驗方面顯得太過死板;無法輕易擴展到支撐PB級數(shù)據(jù);并且成本非常昂貴。與此相比,即使是很小的Hadoop集群也可以允許公司提出和回答比以前更復雜的問題,并且可以不斷地學習和提高。最后,我加入了Cloudera公司。
現(xiàn)況與展望
現(xiàn)在,七年后,Hadoop及其開啟的潮流已經(jīng)在主流企業(yè)中發(fā)揮了非常有價值的作用。
我們在多個方面正處于大變革的時代。目前,傳統(tǒng)的企業(yè)式關系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)軟件面臨著開源的大數(shù)據(jù)軟件這個競爭對手。出乎意料但是非常讓人驚喜的是,黑客式和企業(yè)式軟件傳統(tǒng)之間的差異已不再明顯,并且兩者之間已經(jīng)出現(xiàn)了融合。同時,軟件的開發(fā)者和使用者之間也沒有了有嚴格的劃分。
Hadoop生態(tài)系統(tǒng)中沒有任何一個單一的軟件組件占主導地位。Hadoop也許是最古老和最成功的組件,但是每年都會引入新的、改進的技術。新型的執(zhí)行引擎(例如Apache Spark)和新型的存儲系統(tǒng)(例如Apache Kudu(正在孵化中))表明,這種軟件生態(tài)系統(tǒng)的發(fā)展非常迅速,且不存在任何中心控制點。用戶也可以更快的獲得更好的軟件產(chǎn)品。
該軟件不僅更實惠,可擴展,而且提供了更好的風格。企業(yè)機構不僅可以探索混亂的、多樣化的數(shù)據(jù)源,開展實驗,而且可以迅速地開發(fā)和改進應用程序。我們可以綜合利用源于傳感器、社交媒體和生產(chǎn)過程的數(shù)據(jù)來進行更深入的分析,制定明智的決策以及推出新的產(chǎn)品。包括Cloudera在內的公司都在不斷地推動該軟件的完善,確保其滿足各行業(yè)的需求,使之更穩(wěn)定、更可靠、更易管理、更安全,并且可以與現(xiàn)有系統(tǒng)輕松地集成在一起。
當前,政府和行業(yè)本身也正在轉型。不僅是優(yōu)步(Uber)和特斯拉(Tesla)之類的新興公司正在使用數(shù)據(jù)來重新塑造自己的行業(yè),卡特彼勒公司(Caterpillar)和雪佛龍公司(Chevron)等老字號品牌也正在通過數(shù)據(jù)技術極大地提升自身。我們將在本世紀獲得的絕大部分的技術進步都將源于我們對所生成數(shù)據(jù)的深刻了解。
回首過去,10年前我們決不會猜到Hadoop將會在這般的滔天巨變中發(fā)揮如此關鍵性的作用。對于今天所取得的一切成就,感到十分自豪和驚喜。隨著數(shù)據(jù)世紀的到來,期待看到Hadoop繼續(xù)發(fā)揮它的影響。
CDA數(shù)據(jù)分析師考試相關入口一覽(建議收藏):
? 想報名CDA認證考試,點擊>>>
“CDA報名”
了解CDA考試詳情;
? 想學習CDA考試教材,點擊>>> “CDA教材” 了解CDA考試詳情;
? 想加入CDA考試題庫,點擊>>> “CDA題庫” 了解CDA考試詳情;
? 想了解CDA考試含金量,點擊>>> “CDA含金量” 了解CDA考試詳情;