Hadoop 之父:普通程序員到頂級公司 CTO 的進階之路

大數據技術2019-06-16 06:01:59

來自:雞仔説(微信號:jizaishuo)


做大數據開發的朋友一定用過 Hadoop 這個工具,它是一款支持數據密集型的分佈式應用程序。Hadoop 基於分佈式檔案系統和 MapReduce 技術,通過節點分工的模式把海量的數據處理工作分發至多台機器上,再將每台機器處理的結果彙總整合。雖然它的邏輯原理並不複雜(即簡單的分治思想),但其中要攻克的技術難點卻頗多,比如早期備受詬病的安全問題、文件存儲壓縮問題等。能開發出這樣一個工具的人,必定有他的過人之處,那麼接下來就跟雞仔一起來了解被譽為 Hadoop 之父的 Doug Cutting,他到底是何許人也?又有哪些值得我們學習的地方呢?


Doug 來自加利福利亞納帕谷的農村,1981 年他考上了斯坦福大學。雖然考上了大學,但家庭並不富裕的 Doug 卻喜憂參半。只有藉助貸款,他才能負擔起學費

斯坦福大學


在斯坦福,Doug 學習了語言學和計算機相關的課程。他覺得計算機課程很有趣,更重要的是,他發現學習計算機可以幫他儘早還清貸款。因此,臨近畢業之際,他沒有選擇繼續求學深造,而是在施樂公司(看過《喬布斯傳》的朋友應該對這所公司有所瞭解,這家公司在當時非常有名,它的主要研究領域是印刷相關的技術。)找了一份薪水不錯的工作,他的工作內容是進行自然語言處理和人工智能相關的研究,藉此他也有幸參與了在當時比較新潮的一個領域——搜索

施樂的工作環境

在谷歌之前,有不少公司曾對搜索領域做過探索,而這些公司在 Google 之後都被遺忘了。施樂就是其中的一員,它可以説是搜索領域的先驅。當然,他們對搜索的探索,重點圍繞着自己的主業開展

我們都知道,施樂一直從事打印、複印相關的業務,他們當時研究的方向是如何將紙製品電子化。而紙製品電子化面臨的主要問題,除了如何正確地識別紙製品上的文字外,還要保證如何快速檢索這些已電子化的文件資料,Doug 當時從事的主要是後一項工作。這段時間的工作經驗積累,讓他在搜索技術的廣度和深度上都得到了極大的提升


施樂的豆袋會議室


之後不久,隨着網絡時代到來,以雅虎為代表的基於網絡搜索的公司如雨後春筍一樣湧現出來。Doug 見證了整個搜索行業的崛起,當時,為了便於用户檢索互聯網信息,雅虎採用的方案是分類整合,就是説每當有人新建立一個網站,雅虎便將它添加到雅虎的網站庫目錄中,然後再將網站分成金融、新聞、體育、娛樂等板塊


雅虎中國首頁


雅虎的這個方案雖然能夠幫助人們快速找到對應需求的站點,但無法精細地幫助用户找到自己的個性化需求。這時候谷歌出現了,它採用的是基於 PageRank 的搜索算法,可以精準地定位人們的檢索目標,幫助人們找到想要的結果。就憑着這點關鍵的技術創新,谷歌搜索業務迎來了發展的飛躍期




PageRank算法簡化圖解




Doug 雖然在施樂公司已積累了不少搜索技術的經驗,但他探索的搜索技術都是基於離線環境的,因此數據量級不可能很大。Doug 感覺它的技術經驗有點紙上談兵。於是在 1997 年底,Doug 決定利用業餘時間寫一個開源項目,他在家以每週兩天的時間投入開發,不久之後,便誕生了第一個開源文本搜索函數庫——Lucene


Lucene logo


Google 的高速發展讓 Doug 產生了危機,他擔心日益減少的網絡搜索引擎可能讓信息檢索行業出現新的商業壟斷。Doug 於是着手與同事一起開發出了 Nutch,這是第一個與 Google 進行競爭的大型開源網絡搜索引擎項目。Nutch 雖然開發出來了,但和之前一樣,Nutch 工具依然沒有經歷過實戰檢驗,Doug 接下來要做的,是在大量級的數據下,對 Nutch 進行壓測。但大數據壓測就意味着要採購大量的設備和數據。但 Doug 當時待業在家,並沒有足夠的財力購買這些設備和數據


Nutch 架構示意圖




就在 Doug 為測試困擾時,Google 隨即發佈了一份研究報告,報告中介紹了兩款 Google 為了支持自家產品而研發的軟件平台,一個是 GFS(即 Google File System),用於存儲不同設備產生的海量數據。另外一個是 MapReduce,它在 GFS 上工作,用於分佈式大規模數據處理。基於這兩個平台,Doug 開發出了大名鼎鼎的 Hadoop


Hadoop logo


這就解決了困擾 Doug 很久的壓測問題,之前可能需要一台超級計算機才能完成的工作,現在只需要將任務分佈在幾台廉價的計算機上同樣可以完成。Doug 對 Google 的開源大加讚賞「我們開始設想用 4-5 台電腦來實現這個項目,但在實際運行中牽涉了大量繁瑣的步驟需要靠人工來完成。Google 的平台讓這些步驟得以自動化,為我們實現整體框架打下了良好的基礎。」

MapReduce 工作流簡化圖


出於時間成本的考慮,Doug 決定結束自己的自由職業生涯。以此來進一步完善他的 Hadoop 項目。他先找了 IBM ,但 IBM 對他早期的 Lucene 項目更感興趣。就在此時,雅虎的負責人 Raymie Stata 熱情邀請他加入雅虎公司並馬上對搜索業務項目進行優化改造。加入雅虎後,Doug 如虎添翼,他有一支一百人的團隊幫他完善 Hadoop 項目,這大大加速了 Hadoop 項目的發展。不久之後,雅虎就將它的搜索業務架構遷移到 Hadoop 上來。兩年後,雅虎啟動了基於 Hadoop 的第一項目 Webmap——一個用來計算網頁間鏈接關係的算法。遷移項目至 Hadoop 的成效立竿見影,在相同的硬件環境下,基於 Hadoop 的 Webmap 的反應速度是之前系統的 33 倍


雖然 Hapdoop 極大地提高了雅虎的搜索性能,但當時的雅虎是熱鍋上的螞蟻。內部管理,產品定位,技術服務等諸多問題無法得到解決,雅虎的局面實在是江河日下了。由於公司只關注產品,卻不想在技術上有過多的投入,Doug 於是跳槽到了 Cloudera


Cloudera logo


Cloudera 是為某些公司提供技術服務和諮詢的平台,它的客户多來自傳統行業。傳統行業的客户有大量的數據,但不知道如何合理地使用它們,這正好與 Doug 想在 Hadoop 平台處理更大量的數據的想法不謀而合,在這裏他有大量的客户業務數據,輔助他更好地完善 Hadoop 項目。值得一提的是,在 Doug 服務傳統企業的過程中,越來越多的互聯網巨頭也開始加入了 Hadoop 的隊伍(如 Facebook、eBay、LinkedIn 等),Hadoop 的團隊無形之中被進一步擴大了


目前, 除了作為 Hadoop 之父外,Doug 還有另外一個身份——Cloudera 首席架構師。Cloudera 可以説是 Hadoop 生態圈最知名的公司了,它的核心產品是為客户搭建基於 Hadoop 的大數據平台,幫助企業安裝、配置、運行 Hadoop 以便處理海量的數據


Cloudera 版本衍化


談到目前 Hadoop 的發展趨勢,Doug 很是意外 「我從沒有想過,Hadoop 除了搜索引擎,還能在其它方面發揮作用,它如今的受關注程度,已經完全超過了我之前的想象。」


Doug Cutting


談及他的成功事蹟,Doug 覺得主要歸功於兩點:熱情。他喜歡攻克技術難題帶來的成就感,他非常享受自己的程序被千萬人使用的感覺。另外一個就是腳踏實地。Doug 的所有成就都是他一點一滴積累來的,頭頂青天腳踏實地,時間會給人最好的嘉獎


希望 Doug Cutting 的故事對你能有所啟發。



●編號835,輸入編號直達本文

●輸入m獲取到文章目錄

推薦↓↓↓

程序員數學之美

https://hk.wxwenku.com/d/200886885