Doug Cutting—搜索之父
原文作者:時(shí)間的朋友
原文地址:Hadoop之父Doug Cutting
Doug Cutting 看到他兒子在牙牙學(xué)語(yǔ)時(shí),抱著黃色小象,親昵的叫?hadoop,他靈光一閃,就把這技術(shù)命名為?Hadoop,而且還用了黃色小象作為標(biāo)示?Logo,不過(guò),事實(shí)上的小象瘦瘦長(zhǎng)長(zhǎng),不像?Logo?上呈現(xiàn)的那么圓胖?!拔覂鹤蝇F(xiàn)在?17?歲了,所以就把小象給我了,有活動(dòng)時(shí)就帶著小象出席,沒(méi)活動(dòng)時(shí),小象就丟在家里放襪子的抽屜里?!?Doug Cutting?大笑著說(shuō)。
圖丨Doug Cutting 手拿的黃色小象就是命名 Hadoop 的靈感來(lái)源?
1985年,Cutting畢業(yè)于美國(guó)斯坦福大學(xué)。他并不是一開(kāi)始就決心投身IT行業(yè)的,在大學(xué)時(shí)代的頭兩年,Cutting學(xué)習(xí)了諸如物理、地理等常規(guī)課程。因?yàn)閷W(xué)費(fèi)的壓力,Cutting開(kāi)始意識(shí)到,自己必須學(xué)習(xí)一些更加實(shí)用、有趣的技能。這樣,一方面可以幫助自己還清貸款,另一方面,也是為自己未來(lái)的生活做打算。因?yàn)樗固垢4髮W(xué)座落在IT行業(yè)的“圣地”硅谷,所以學(xué)習(xí)軟件對(duì)年輕人來(lái)說(shuō)是再自然不過(guò)的事情了。
Cutting的第一份工作是在Xerox做實(shí)習(xí)生,Xerox當(dāng)時(shí)的激光掃描儀上運(yùn)行著三個(gè)不同的操作系統(tǒng),其中的一個(gè)操作系統(tǒng)還沒(méi)有屏幕保護(hù)程序。因此,Cutting就開(kāi)始為這套系統(tǒng)開(kāi)發(fā)屏幕保護(hù)程序。由于這套程序是基于系統(tǒng)底層開(kāi)發(fā)的,所以 其他同事可以給這個(gè)程序添加不同的主題。這份工作給了Cutting一定的滿足感,也是他最早的“平臺(tái)”級(jí)的作品。
盡管Xerox讓Cutting積累了不少技術(shù)知識(shí),但他卻認(rèn)為,自己當(dāng)時(shí)搞的這些研究只是紙 上談兵,沒(méi)有人試驗(yàn)過(guò)這些理論的可實(shí)踐性。于是,他決定勇敢地邁出這一步,讓搜索技術(shù)可以為更多人所用。
1997年底,Cutting開(kāi)始以每周兩天的時(shí)間投入,在家里試著用Java把這個(gè)想法變成現(xiàn)實(shí),不久之后,Lucene誕生了。作為第一個(gè)提供全文文本搜索的開(kāi)源函數(shù)庫(kù),Lucene的偉大自不必多言。之后,Cutting再接再厲,在 Lucene的基礎(chǔ)上將開(kāi)源的思想繼續(xù)深化。
2004年,Cutting和同為程序員出身的Mike Cafarella決定開(kāi)發(fā)一款可以代替當(dāng)時(shí)的主流搜索產(chǎn)品的開(kāi)源搜索引擎,這個(gè)項(xiàng)目被命名為Nutch。Doug Cutting 希望以開(kāi)源架構(gòu)開(kāi)發(fā)出一套搜索技術(shù),類似于現(xiàn)在的 Google Search 或是微軟的 Bing,剛好 2004 年 Google Labs 發(fā)布了關(guān)于自家大數(shù)據(jù)分析、MapReduce 算法的論文。Doug Cutting 利用 Google 公開(kāi)的技術(shù)擴(kuò)充他已經(jīng)開(kāi)發(fā)出來(lái)的 Lucene 搜索技術(shù),進(jìn)而打造出了 Hadoop。
2006年項(xiàng)目成立的一開(kāi)始,“Hadoop”這個(gè)單詞只代表了兩個(gè)組件——HDFS和MapReduce。到現(xiàn)在,這個(gè)單詞代表的是“核心”(即Core Hadoop項(xiàng)目)以及與之相關(guān)的一個(gè)不斷成長(zhǎng)的生態(tài)系統(tǒng)。這個(gè)和Linux非常類似,都是由一個(gè)核心和一個(gè)生態(tài)系統(tǒng)組成。
Hadoop 是基于開(kāi)放源代碼所建構(gòu),用于分散式處理和分析電腦叢集上的巨量資料集,也可以想成是一個(gè)能夠儲(chǔ)存并管理大量資料的云端平臺(tái)。它主要有兩個(gè)核心技術(shù),分別是分布式檔案系統(tǒng)(Hadoop Distributed File System,HDFS)以及 MapReduce 技術(shù)。正因?yàn)橥高^(guò)多節(jié)點(diǎn)分工來(lái)處理巨量資料,解決了檔案儲(chǔ)存的問(wèn)題,同時(shí)也大幅縮短了運(yùn)作時(shí)間,讓 Hadoop 成了大數(shù)據(jù)的主流技術(shù),知名大企業(yè)如Google、Facebook、沃爾瑪、銀聯(lián)、聯(lián)通、臺(tái)積電等,都利用了 Hadoop 技術(shù)。
Doug Cutting 表示,Hadoop 的意義不在技術(shù),更大的意義在于“數(shù)字轉(zhuǎn)型”(digital transformation),從 Hadoop 的成功經(jīng)歷我們可以學(xué)到幾件事:首先、開(kāi)放源代碼已經(jīng)是必要的,例如在 20 年前他開(kāi)發(fā)出 Hadoop 的前身— Lucene 開(kāi)源代碼搜尋技術(shù)時(shí),并沒(méi)有料想到 Lucene 會(huì)成功,“因?yàn)樗⒉皇亲詈玫募夹g(shù),也不完美,但它因?yàn)槭菍儆陂_(kāi)放源代碼,透過(guò)社群的力量,使它成為了最好的搜索技術(shù)?!睂?duì)使用者來(lái)說(shuō),現(xiàn)在更多想要的是開(kāi)放源代碼的軟件。第二件事就是數(shù)字轉(zhuǎn)型需要不同的運(yùn)算跟儲(chǔ)存架構(gòu)。在完成 Lucene 之后幾年,Cutting 就開(kāi)始投入到 Hadoop 的研發(fā)之中,“你可以看到整體的應(yīng)用已經(jīng)興起,它的成功在于滿足了大家的需求?!?span style="color:#f33b45;">在 Hadoop 之前,幾乎所有的資料或應(yīng)用程序都要被儲(chǔ)存在分開(kāi)的系統(tǒng)里,但有了 Hadoop 之后,它們可以被存在單一的系統(tǒng)里,在擴(kuò)充性、處理運(yùn)算方面有更好的成效。
Doug Cutting 指出,Hadoop 與機(jī)器學(xué)習(xí)、AI 有高度關(guān)聯(lián)性,要訓(xùn)練、測(cè)試、評(píng)價(jià)人工智能都需要數(shù)據(jù),許多開(kāi)發(fā)者在 Hadoop 平臺(tái)上寫了很多應(yīng)用程序,可以利用這個(gè)平臺(tái)搜集各種巨量數(shù)據(jù),支援 AI 和機(jī)器學(xué)習(xí)的數(shù)據(jù)也是爆炸性成長(zhǎng),很難有一家公司可以做到提供這么大量的工具。
現(xiàn)在,Doug Cutting 的身份除了是 Hadoop 之父外,也是 Cloudera 的首席架構(gòu)師。Cloudera 可以說(shuō)是 Hadoop 生態(tài)圈里最知名的公司,核心產(chǎn)品是為企業(yè)客戶搭建基于 Hadoop 的大數(shù)據(jù)平臺(tái),幫助企業(yè)安裝、配置、運(yùn)行 Hadoop 以進(jìn)行海量數(shù)據(jù)的處理、分析以及機(jī)器學(xué)習(xí)。
?
Doug Cutting給2017寄語(yǔ)時(shí),指出五種讓開(kāi)源項(xiàng)目成功的方法:
1. 擁抱開(kāi)源的不斷改變和演進(jìn)
不斷地變化,這是每一個(gè)剛接觸開(kāi)源技術(shù)的人需要學(xué)習(xí)的第一課,也是開(kāi)源有別于傳統(tǒng)軟件的最大不同之處。開(kāi)源的本質(zhì)是易變、靈活,它的新項(xiàng)目常常起源于一些特別的用例。這種動(dòng)態(tài)的循環(huán)促使產(chǎn)品變得更好、更快。因此,公司如果想從開(kāi)源獲得完全的好處,他們必須對(duì)技術(shù)轉(zhuǎn)變保持開(kāi)放的心態(tài)。Spark和MapReduce的辯論就完美的體現(xiàn)了這點(diǎn)的重要性:
事實(shí)上,人們?cè)跇?gòu)建新的應(yīng)用時(shí),MapReduce用得越來(lái)越少,而Spark成為他們默認(rèn)的數(shù)據(jù)處理引擎。MapReduce正逐漸成為Hive、Pig的底層引擎,這并不意味著它過(guò)時(shí)了。它還會(huì)為現(xiàn)存應(yīng)用很好地工作很多年,而且對(duì)某些大規(guī)模批量加載來(lái)說(shuō)仍然是卓越的工具。這一趨勢(shì)遵循開(kāi)源技術(shù)的自然演進(jìn):MapReduce是開(kāi)源數(shù)據(jù)生態(tài)系統(tǒng)的1.0引擎,Spark是2.0,而某一天會(huì)出現(xiàn)3.0讓Spark成為歷史。
2. 當(dāng)引入一個(gè)新技術(shù)棧時(shí),從小開(kāi)始、由上而下
先不去考慮要構(gòu)建、部署什么樣的解決方案,我們現(xiàn)在有了很多通用數(shù)據(jù)平臺(tái)和很多工具,它們能靈活地組合在一起去做搜索、流處理、機(jī)器學(xué)習(xí)還有更多事情。這些工作需要的不僅僅是一套不同的技能,而且還需要管理方式、組織結(jié)構(gòu)等在文化上的轉(zhuǎn)變。為此,重要的是要獲得組織內(nèi)高層的支持,并讓數(shù)據(jù)管理列入董事會(huì)層面的一項(xiàng)重點(diǎn)議題。同時(shí),建議拿一些新的應(yīng)用來(lái)逐步建立一個(gè)新文化,而不是要取代所有的一切,這樣可以讓大家通過(guò)一個(gè)個(gè)具體的用例來(lái)適應(yīng)這個(gè)變化。
3. 仔細(xì)挑選開(kāi)源軟件以避免云供應(yīng)商捆綁
隨著使用云計(jì)算的企業(yè)組織和產(chǎn)業(yè)越來(lái)越多,應(yīng)該考慮到開(kāi)源軟件不僅會(huì)帶來(lái)越來(lái)越好的健壯性、可擴(kuò)展性和安全性,而且也可以幫助他們避免被云供應(yīng)商捆綁。通過(guò)開(kāi)源平臺(tái)的構(gòu)建,組織可以采用云供應(yīng)商套利以降低成本,可以使用不同地域的不同云,或者基于云和內(nèi)部部署的混合方式。事實(shí)上,開(kāi)源平臺(tái)已經(jīng)證明了自己的技術(shù)優(yōu)越性,2017年也許會(huì)取得更多的落地。大量的機(jī)構(gòu)通過(guò)開(kāi)源項(xiàng)目進(jìn)行合作,單一的供應(yīng)商要去競(jìng)爭(zhēng)是很困難的。例如,現(xiàn)在那些開(kāi)源數(shù)據(jù)系統(tǒng)在性能和靈活性上就處于領(lǐng)先地位,并且改進(jìn)得更加迅速。
4. 對(duì)求職者來(lái)說(shuō),開(kāi)源生態(tài)環(huán)境里要關(guān)注森林,而不是樹(shù)木
IT領(lǐng)域的求職者,不管是編程還是數(shù)據(jù)科學(xué),不應(yīng)該僅僅專注于掌握個(gè)別技術(shù),而應(yīng)該關(guān)注理解開(kāi)源數(shù)據(jù)生態(tài)系統(tǒng)各個(gè)組成部分的最佳利用,以及如何把它們連接起來(lái)解決問(wèn)題。這種上層建筑的理解是企業(yè)在技術(shù)創(chuàng)新中最有價(jià)值的技能。隨著新技術(shù)的到來(lái),至關(guān)重要的是了解它們的適應(yīng)力如何、它們能取代什么、它們能做到什么。
5. 在技能缺口中尋找機(jī)會(huì)
大數(shù)據(jù)的技能缺口將在明年保持相對(duì)穩(wěn)定,但這不應(yīng)該成為人們采用Hadoop以及其它開(kāi)源技術(shù)的阻礙。大多數(shù)人都知道,當(dāng)新的技術(shù)被創(chuàng)造出來(lái)并爭(zhēng)奪用戶時(shí),它們對(duì)外界而言是很陌生的。只有當(dāng)一個(gè)特定類型的軟件成為某個(gè)規(guī)范的成熟而標(biāo)準(zhǔn)的一部分,才會(huì)開(kāi)始出現(xiàn)大量熟練使用它的人,而即使如此仍然會(huì)存在技能缺口。只有當(dāng)我們不再對(duì)技術(shù)棧做大的改進(jìn)時(shí),才會(huì)消除這種缺口,不過(guò)Doug不認(rèn)為我們會(huì)希望這樣做。簡(jiǎn)而言之,技能缺口是影響平臺(tái)變革速度的主要因素之一,也是即將來(lái)臨的創(chuàng)新的標(biāo)志。
總結(jié)
以上是生活随笔為你收集整理的Doug Cutting—搜索之父的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ElasticSearch—基本概念
- 下一篇: Doug Cutting—访谈录