Hadoop之父:普通程序員到頂級(jí)公司CTO的進(jìn)階之路
做大數(shù)據(jù)開(kāi)發(fā)的朋友一定用過(guò) Hadoop 這個(gè)工具,它是一款支持?jǐn)?shù)據(jù)密集型的分布式應(yīng)用程序。Hadoop 基于分布式檔案系統(tǒng)和 MapReduce 技術(shù),通過(guò)節(jié)點(diǎn)分工的模式把海量的數(shù)據(jù)處理工作分發(fā)至多臺(tái)機(jī)器上,再將每臺(tái)機(jī)器處理的結(jié)果匯總整合。雖然它的邏輯原理并不復(fù)雜(即簡(jiǎn)單的分治思想),但其中要攻克的技術(shù)難點(diǎn)卻頗多,比如早期備受詬病的安全問(wèn)題、文件存儲(chǔ)壓縮問(wèn)題等。能開(kāi)發(fā)出這樣一個(gè)工具的人,必定有他的過(guò)人之處,那么接下來(lái)就跟雞仔一起來(lái)了解被譽(yù)為 Hadoop 之父的 Doug Cutting,他到底是何許人也?又有哪些值得我們學(xué)習(xí)的地方呢?
學(xué)計(jì)算機(jī)可以盡早還清貸款
Doug 來(lái)自加利福利亞納帕谷的農(nóng)村,1981 年他考上了斯坦福大學(xué)。雖然考上了大學(xué),但家庭并不富裕的 Doug 卻喜憂參半。只有借助貸款,他才能負(fù)擔(dān)起學(xué)費(fèi)
斯坦福大學(xué)
在斯坦福,Doug 學(xué)習(xí)了語(yǔ)言學(xué)和計(jì)算機(jī)相關(guān)的課程。他覺(jué)得計(jì)算機(jī)課程很有趣,更重要的是,他發(fā)現(xiàn)學(xué)習(xí)計(jì)算機(jī)可以幫他盡早還清貸款。因此,臨近畢業(yè)之際,他沒(méi)有選擇繼續(xù)求學(xué)深造,而是在施樂(lè)公司(看過(guò)《喬布斯傳》的朋友應(yīng)該對(duì)這所公司有所了解,這家公司在當(dāng)時(shí)非常有名,它的主要研究領(lǐng)域是印刷相關(guān)的技術(shù)。)找了一份薪水不錯(cuò)的工作,他的工作內(nèi)容是進(jìn)行自然語(yǔ)言處理和人工智能相關(guān)的研究,借此他也有幸參與了在當(dāng)時(shí)比較新潮的一個(gè)領(lǐng)域——搜索
施樂(lè)的工作環(huán)境
見(jiàn)證搜索行業(yè)的崛起
在谷歌之前,有不少公司曾對(duì)搜索領(lǐng)域做過(guò)探索,而這些公司在 Google 之后都被遺忘了。施樂(lè)就是其中的一員,它可以說(shuō)是搜索領(lǐng)域的先驅(qū)。當(dāng)然,他們對(duì)搜索的探索,重點(diǎn)圍繞著自己的主業(yè)開(kāi)展
我們都知道,施樂(lè)一直從事打印、復(fù)印相關(guān)的業(yè)務(wù),他們當(dāng)時(shí)研究的方向是如何將紙制品電子化。而紙制品電子化面臨的主要問(wèn)題,除了如何正確地識(shí)別紙制品上的文字外,還要保證如何快速檢索這些已電子化的文件資料,Doug 當(dāng)時(shí)從事的主要是后一項(xiàng)工作。這段時(shí)間的工作經(jīng)驗(yàn)積累,讓他在搜索技術(shù)的廣度和深度上都得到了極大的提升
施樂(lè)的豆袋會(huì)議室
之后不久,隨著網(wǎng)絡(luò)時(shí)代到來(lái),以雅虎為代表的基于網(wǎng)絡(luò)搜索的公司如雨后春筍一樣涌現(xiàn)出來(lái)。Doug 見(jiàn)證了整個(gè)搜索行業(yè)的崛起,當(dāng)時(shí),為了便于用戶檢索互聯(lián)網(wǎng)信息,雅虎采用的方案是分類(lèi)整合,就是說(shuō)每當(dāng)有人新建立一個(gè)網(wǎng)站,雅虎便將它添加到雅虎的網(wǎng)站庫(kù)目錄中,然后再將網(wǎng)站分成金融、新聞、體育、娛樂(lè)等板塊
雅虎中國(guó)首頁(yè)
雅虎的這個(gè)方案雖然能夠幫助人們快速找到對(duì)應(yīng)需求的站點(diǎn),但無(wú)法精細(xì)地幫助用戶找到自己的個(gè)性化需求。這時(shí)候谷歌出現(xiàn)了,它采用的是基于 PageRank 的搜索算法,可以精準(zhǔn)地定位人們的檢索目標(biāo),幫助人們找到想要的結(jié)果。就憑著這點(diǎn)關(guān)鍵的技術(shù)創(chuàng)新,谷歌搜索業(yè)務(wù)迎來(lái)了發(fā)展的飛躍期
PageRank算法簡(jiǎn)化圖解
兩次練手收獲兩個(gè)開(kāi)創(chuàng)性工具
Doug 雖然在施樂(lè)公司已積累了不少搜索技術(shù)的經(jīng)驗(yàn),但他探索的搜索技術(shù)都是基于離線環(huán)境的,因此數(shù)據(jù)量級(jí)不可能很大。Doug 感覺(jué)它的技術(shù)經(jīng)驗(yàn)有點(diǎn)紙上談兵。于是在 1997 年底,Doug 決定利用業(yè)余時(shí)間寫(xiě)一個(gè)開(kāi)源項(xiàng)目,他在家以每周兩天的時(shí)間投入開(kāi)發(fā),不久之后,便誕生了***個(gè)開(kāi)源文本搜索函數(shù)庫(kù)——Lucene
Lucene logo
Google 的高速發(fā)展讓 Doug 產(chǎn)生了危機(jī),他擔(dān)心日益減少的網(wǎng)絡(luò)搜索引擎可能讓信息檢索行業(yè)出現(xiàn)新的商業(yè)壟斷。Doug 于是著手與同事一起開(kāi)發(fā)出了 Nutch,這是***個(gè)與 Google 進(jìn)行競(jìng)爭(zhēng)的大型開(kāi)源網(wǎng)絡(luò)搜索引擎項(xiàng)目。Nutch 雖然開(kāi)發(fā)出來(lái)了,但和之前一樣,Nutch 工具依然沒(méi)有經(jīng)歷過(guò)實(shí)戰(zhàn)檢驗(yàn),Doug 接下來(lái)要做的,是在大量級(jí)的數(shù)據(jù)下,對(duì) Nutch 進(jìn)行壓測(cè)。但大數(shù)據(jù)壓測(cè)就意味著要采購(gòu)大量的設(shè)備和數(shù)據(jù)。但 Doug 當(dāng)時(shí)待業(yè)在家,并沒(méi)有足夠的財(cái)力購(gòu)買(mǎi)這些設(shè)備和數(shù)據(jù)
Nutch 架構(gòu)示意圖
Hadoop比Webmap快33倍
就在 Doug 為測(cè)試?yán)_時(shí),Google 隨即發(fā)布了一份研究報(bào)告,報(bào)告中介紹了兩款 Google 為了支持自家產(chǎn)品而研發(fā)的軟件平臺(tái),一個(gè)是 GFS(即 Google File System),用于存儲(chǔ)不同設(shè)備產(chǎn)生的海量數(shù)據(jù)。另外一個(gè)是 MapReduce,它在 GFS 上工作,用于分布式大規(guī)模數(shù)據(jù)處理。基于這兩個(gè)平臺(tái),Doug 開(kāi)發(fā)出了大名鼎鼎的 Hadoop
Hadoop logo
這就解決了困擾 Doug 很久的壓測(cè)問(wèn)題,之前可能需要一臺(tái)超級(jí)計(jì)算機(jī)才能完成的工作,現(xiàn)在只需要將任務(wù)分布在幾臺(tái)廉價(jià)的計(jì)算機(jī)上同樣可以完成。Doug 對(duì) Google 的開(kāi)源大加贊賞「我們開(kāi)始設(shè)想用 4-5 臺(tái)電腦來(lái)實(shí)現(xiàn)這個(gè)項(xiàng)目,但在實(shí)際運(yùn)行中牽涉了大量繁瑣的步驟需要靠人工來(lái)完成。Google 的平臺(tái)讓這些步驟得以自動(dòng)化,為我們實(shí)現(xiàn)整體框架打下了良好的基礎(chǔ)。」
MapReduce 工作流簡(jiǎn)化圖
出于時(shí)間成本的考慮,Doug 決定結(jié)束自己的自由職業(yè)生涯。以此來(lái)進(jìn)一步完善他的 Hadoop 項(xiàng)目。他先找了 IBM ,但 IBM 對(duì)他早期的 Lucene 項(xiàng)目更感興趣。就在此時(shí),雅虎的負(fù)責(zé)人 Raymie Stata 熱情邀請(qǐng)他加入雅虎公司并馬上對(duì)搜索業(yè)務(wù)項(xiàng)目進(jìn)行優(yōu)化改造。加入雅虎后,Doug 如虎添翼,他有一支一百人的團(tuán)隊(duì)幫他完善 Hadoop 項(xiàng)目,這大大加速了 Hadoop 項(xiàng)目的發(fā)展。不久之后,雅虎就將它的搜索業(yè)務(wù)架構(gòu)遷移到 Hadoop 上來(lái)。兩年后,雅虎啟動(dòng)了基于 Hadoop 的***項(xiàng)目 Webmap——一個(gè)用來(lái)計(jì)算網(wǎng)頁(yè)間鏈接關(guān)系的算法。遷移項(xiàng)目至 Hadoop 的成效立竿見(jiàn)影,在相同的硬件環(huán)境下,基于 Hadoop 的 Webmap 的反應(yīng)速度是之前系統(tǒng)的 33 倍
新身份,新征程
雖然 Hapdoop 極大地提高了雅虎的搜索性能,但當(dāng)時(shí)的雅虎是熱鍋上的螞蟻。內(nèi)部管理,產(chǎn)品定位,技術(shù)服務(wù)等諸多問(wèn)題無(wú)法得到解決,雅虎的局面實(shí)在是江河日下了。由于公司只關(guān)注產(chǎn)品,卻不想在技術(shù)上有過(guò)多的投入,Doug 于是跳槽到了 Cloudera
Cloudera logo
Cloudera 是為某些公司提供技術(shù)服務(wù)和咨詢(xún)的平臺(tái),它的客戶多來(lái)自傳統(tǒng)行業(yè)。傳統(tǒng)行業(yè)的客戶有大量的數(shù)據(jù),但不知道如何合理地使用它們,這正好與 Doug 想在 Hadoop 平臺(tái)處理更大量的數(shù)據(jù)的想法不謀而合,在這里他有大量的客戶業(yè)務(wù)數(shù)據(jù),輔助他更好地完善 Hadoop 項(xiàng)目。值得一提的是,在 Doug 服務(wù)傳統(tǒng)企業(yè)的過(guò)程中,越來(lái)越多的互聯(lián)網(wǎng)巨頭也開(kāi)始加入了 Hadoop 的隊(duì)伍(如 Facebook、eBay、LinkedIn 等),Hadoop 的團(tuán)隊(duì)無(wú)形之中被進(jìn)一步擴(kuò)大了
目前, 除了作為 Hadoop 之父外,Doug 還有另外一個(gè)身份——Cloudera ***架構(gòu)師。Cloudera 可以說(shuō)是 Hadoop 生態(tài)圈最知名的公司了,它的核心產(chǎn)品是為客戶搭建基于 Hadoop 的大數(shù)據(jù)平臺(tái),幫助企業(yè)安裝、配置、運(yùn)行 Hadoop 以便處理海量的數(shù)據(jù)
Cloudera 版本衍化
談到目前 Hadoop 的發(fā)展趨勢(shì),Doug 很是意外 「我從沒(méi)有想過(guò),Hadoop 除了搜索引擎,還能在其它方面發(fā)揮作用,它如今的受關(guān)注程度,已經(jīng)完全超過(guò)了我之前的想象?!?/p>
Doug Cutting
談及他的成功事跡,Doug 覺(jué)得主要?dú)w功于兩點(diǎn):熱情。他喜歡攻克技術(shù)難題帶來(lái)的成就感,他非常享受自己的程序被千萬(wàn)人使用的感覺(jué)。另外一個(gè)就是腳踏實(shí)地。Doug 的所有成就都是他一點(diǎn)一滴積累來(lái)的,頭頂青天腳踏實(shí)地,時(shí)間會(huì)給人***的嘉獎(jiǎng)