圖片來(lái)源@視覺(jué)中國(guó)
文|郭華
我今年大概三十多歲,因?yàn)楣ぷ鞯年P(guān)系,看上去比實(shí)際年齡還要老一些,像個(gè)微禿的胖子,但如果硬要回憶的話,我也是有過(guò)青春的。
只不過(guò)時(shí)間稍微有些久遠(yuǎn),要到2004年。
那年周星馳拍了《功夫》,王寶強(qiáng)出演了《天下無(wú)賊》,百度收購(gòu)了hao123,騰訊剛剛上市,而支付寶還沒(méi)出現(xiàn)。
那年我剛上高一,才知道縣城比村子大的多。于是開(kāi)始在懵懂中新奇,又在新奇中自卑,我不知道歐洲杯,不認(rèn)識(shí)貝克漢姆,也沒(méi)用過(guò)摩托羅拉,我不大愛(ài)說(shuō)話,只是喜歡晚自習(xí)。
因?yàn)橹挥性谶@個(gè)時(shí)候我才會(huì)感到一種青澀的希望,我可以用左手托著腦袋,把耳機(jī)藏在袖子里聽(tīng)周杰倫的七里香,然后目光穿過(guò)右手,偷偷的看隔壁背單詞的女同學(xué),她的馬尾辮擺來(lái)擺去,嘴巴嘟嘟囔囔不敢出聲,在紅白校服的襯托下,我覺(jué)得她好像一個(gè)誰(shuí)。
我常常想,如果時(shí)間可以定格的話,那最好一直留在那個(gè)瞬間。
但這是不可能的,關(guān)于我的未來(lái)正在展開(kāi),只是遙遠(yuǎn)的像與我無(wú)關(guān)。
2003、2004年的時(shí)候,谷歌接連發(fā)表了兩篇論文,大概意思就是自己的數(shù)據(jù)太多了,所以就開(kāi)發(fā)了兩個(gè)系統(tǒng),一個(gè)是分布式存儲(chǔ)系統(tǒng)GFS,一個(gè)是分布式計(jì)算系統(tǒng)MapReduce,然后說(shuō)在這兩個(gè)系統(tǒng)的幫助下,谷歌已經(jīng)完美的解決了這些問(wèn)題,所以如果你也有類似問(wèn)題的話,最好也這么試試,因?yàn)槿绻覀兌紱](méi)想出來(lái)的話,應(yīng)該是不存在什么其他辦法了云云。
論文很短,也沒(méi)什么公式,再加上是谷歌寫(xiě)的,所以很快就傳播開(kāi)了。
在眾多讀者之中,有一個(gè)叫Doug Cutting人。
他當(dāng)時(shí)正在弄自己的開(kāi)源搜索引擎Nutch,碰到了很多論文里描述的問(wèn)題,所以他在看到這兩篇文章的時(shí)候眼睛立馬就亮了,斷定這就是他苦苦追尋的東西,很快便照著文章在Nutch里把兩個(gè)系統(tǒng)都實(shí)現(xiàn)了一遍。在這個(gè)過(guò)程中,他還敏銳的意識(shí)到這種處理范式有著比搜索引擎廣闊的多的應(yīng)用空間,所以又在2006年把這兩個(gè)系統(tǒng)從Nutch中獨(dú)立了出來(lái),創(chuàng)建了大名鼎鼎的Hadoop項(xiàng)目。
他看到了Hadoop的前景,也意識(shí)到了自己的局限,Hadoop要發(fā)展僅僅靠自己是不夠的,他還要找一個(gè)地方,一個(gè)適合Hadoop成長(zhǎng)的地方。于是他來(lái)到了雅虎,也就是在雅虎,Hadoop集群突破了一千臺(tái),從一個(gè)試驗(yàn)品變成了真正可用的大系統(tǒng),然后以燎原之勢(shì)席卷了全球互聯(lián)網(wǎng)公司。
2007年,中國(guó)的百度、淘寶等紛紛開(kāi)始調(diào)研Hadoop。
而我也在當(dāng)年上了大學(xué),來(lái)到了海濱城市大連。
實(shí)話實(shí)說(shuō),我對(duì)計(jì)算機(jī)只有抗拒,因?yàn)槊看巫剿媲拔叶紩?huì)頭昏腦脹,所以報(bào)志愿的時(shí)候便避開(kāi)了所有與之相關(guān)的專業(yè),只不過(guò)由于分?jǐn)?shù)不夠,我還是被調(diào)劑到了軟件工程系。這個(gè)系有兩個(gè)特點(diǎn),一個(gè)是學(xué)費(fèi)高,一個(gè)是分?jǐn)?shù)低,所以當(dāng)時(shí)大部分同學(xué)都是被調(diào)劑過(guò)來(lái)的,很少有人對(duì)學(xué)習(xí)有什么熱情。
輔導(dǎo)員也看到了這一點(diǎn),于是他給我們推薦了《世界是平的》這本書(shū),讓我們好好看看,計(jì)算機(jī)就是未來(lái)。
我大約看了,也或者沒(méi)看,總之除了書(shū)名外什么都不記得,但交了學(xué)費(fèi)總要學(xué)習(xí),上了大學(xué)總要畢業(yè)。而且退一萬(wàn)步講,班里都是比自己又高又帥的男生,看著那三四個(gè)女同學(xué),我便不再抱任何希望了,于是就借了幾本C++的書(shū)跑去了圖書(shū)館,開(kāi)始琢磨計(jì)算機(jī)這個(gè)莫名其妙的東西。
我的進(jìn)步是緩慢的,大數(shù)據(jù)的發(fā)展卻是迅猛的。
Hadoop不斷攻城略地,在展示力量的同時(shí)也暴露了自己的問(wèn)題,一是運(yùn)行起來(lái)太慢,二是MapReduce的編程方式太難用——這就是開(kāi)源軟件的運(yùn)作方式,我并不完美,但你可以一起完善。
2008年的時(shí)候,F(xiàn)acebook率先開(kāi)始了對(duì)Hadoop易用性的改造,發(fā)起了一個(gè)叫做Hive的項(xiàng)目,其目的就是在MapReduce上加一層SQL,讓所有的人都能直接上手Hadoop。這個(gè)項(xiàng)目迅速走紅,Hadoop加Hive成了很多公司大數(shù)據(jù)的標(biāo)準(zhǔn)解決方案,直到今天都沒(méi)過(guò)時(shí)。
但是如果把Hadoop比做一輛車(chē)的話,Hive只是把原來(lái)的手動(dòng)擋換成了自動(dòng)擋,好開(kāi)是好開(kāi)了,但引擎沒(méi)變,所以速度還是上不來(lái)。
這時(shí)號(hào)稱比Hadoop快一百倍的Spark就出現(xiàn)了。
Spark的作者曾經(jīng)在谷歌做過(guò)分布式系統(tǒng)。他覺(jué)得Hadoop最大的問(wèn)題就是數(shù)據(jù)都放硬盤(pán)了,如果能把他們放在內(nèi)存的話,速度肯定會(huì)快很多。在這個(gè)思路的引導(dǎo)下,他發(fā)明了一種叫做RDD的分布式數(shù)據(jù)結(jié)構(gòu),巧妙的利用內(nèi)存解決了Hadoop的性能問(wèn)題。
Spark很快就成了MapReduce的替代方案。
到這時(shí),Hadoop已經(jīng)成了一個(gè)龐大的生態(tài)系統(tǒng),從計(jì)算到存儲(chǔ)到查詢到工作流,其版圖擴(kuò)展到了大數(shù)據(jù)的方方面面,一時(shí)間成了所有人談?wù)摰慕裹c(diǎn)。
這大概是2010年。
當(dāng)時(shí)我剛上大四,正在頭疼研究生實(shí)驗(yàn)室的事情,拿不準(zhǔn)該選哪個(gè),便去咨詢一個(gè)學(xué)長(zhǎng)。學(xué)長(zhǎng)說(shuō)現(xiàn)在Hadoop最火,找工作只要說(shuō)懂這個(gè)很快就能拿到offer,反正你讀研也是要工作的,不如選個(gè)Hadoop相關(guān)的吧。我信以為真,再加上當(dāng)時(shí)一直想和幾個(gè)同學(xué)出去玩,早有點(diǎn)不耐煩了,就隨便選了一個(gè)介紹里有Hadoop的實(shí)驗(yàn)室,背著書(shū)包離開(kāi)了大連。
2011年,我來(lái)到杭州,開(kāi)始真正接觸Hadoop,然后在導(dǎo)師的建議下看了03、04年谷歌那兩篇文章,終于弄懂了什么叫MapReduce,但這并沒(méi)有讓我有多少成就感,反而覺(jué)得越看不懂的越多,一想起Hadoop那龐大的版圖,便覺(jué)得前路漫漫怎么都學(xué)不完。
我是悲觀的心灰意冷,但有人卻是樂(lè)觀的熱血向前。
比如Nathan Marz,他在這年興致勃勃的發(fā)布了Storm,口號(hào)是實(shí)時(shí)的Hadoop。
簡(jiǎn)單來(lái)說(shuō),那時(shí)Hadoop版圖雖大,里邊卻存在著空缺,這個(gè)空缺就是流式處理。Hadoop的所有系統(tǒng)都假設(shè)數(shù)據(jù)已經(jīng)歸檔,從沒(méi)假設(shè)過(guò)數(shù)據(jù)正在產(chǎn)生,然而在真實(shí)的世界中,數(shù)據(jù)卻總是正在產(chǎn)生的。Nathan Marz意識(shí)到了這個(gè)問(wèn)題,并想到了流式處理的概念,即把數(shù)據(jù)當(dāng)成水流一樣,源源不斷的流過(guò)來(lái),來(lái)一條處理一次,然后立即推送結(jié)果——圍繞這些想法,他開(kāi)發(fā)了一個(gè)叫做Storm的引擎,并在Twitter的推動(dòng)下大獲成功,最終補(bǔ)上了Hadoop拼圖里實(shí)時(shí)計(jì)算的這一角。
Spark很快,Storm也很快,兩者有什么區(qū)別呢?
我舉個(gè)例子。
大家知道公交車(chē)開(kāi)起來(lái)肯定比電瓶車(chē)快,所以要去十公里外你肯定會(huì)不假思索的選擇坐公交車(chē)而不是騎電瓶車(chē),可如果要去五百米外的隔壁小區(qū),你的選擇可能會(huì)截然相反,因?yàn)榭赡艿溶?chē)的功夫你已經(jīng)騎到了。
Spark是公交車(chē),Storm就是電瓶車(chē),Spark需要等大家都上車(chē)之后一批運(yùn)過(guò)去,而Storm不用,來(lái)一個(gè)走一個(gè)。
當(dāng)然了,這個(gè)例子也是我現(xiàn)在才想到的,因?yàn)楫?dāng)時(shí)的我完全沒(méi)有動(dòng)力再看任何關(guān)于Hadoop的東西,心情就像莊子說(shuō)的“吾生也有涯,而知也無(wú)涯 。以有涯隨無(wú)涯,殆已”,干脆放棄了。
抱著這個(gè)念頭的我,2014年研究生一畢業(yè)便選擇了一家三線城市的國(guó)企,做好了這輩子也就這樣的準(zhǔn)備。
可大數(shù)據(jù)實(shí)在是太火了,領(lǐng)導(dǎo)一聽(tīng)我學(xué)過(guò)Hadoop便兩眼放光,興沖沖的把我塞到了公司的大數(shù)據(jù)實(shí)驗(yàn)室里,于是我開(kāi)始在一個(gè)連不上網(wǎng)的環(huán)境里繼續(xù)折騰Hadoop,除了版本低一些、集群小一點(diǎn)之外和互聯(lián)網(wǎng)公司也沒(méi)什么區(qū)別,一樣辛苦,一樣996。
后來(lái)我覺(jué)得這輩子可能是躲不開(kāi)了大數(shù)據(jù)了,這樣干著也不是個(gè)事,不如索性堂堂正正的面對(duì)這個(gè)問(wèn)題。
所以在2015年的時(shí)候,我又回到了杭州。
作為一個(gè)剛畢業(yè)的壯勞力,我很快就在一家不大不小的公司里找到了工作,生活開(kāi)始變的很簡(jiǎn)單,每天就是寫(xiě)各種SQL,然后加著和大部分人差不多的班,業(yè)余時(shí)間看看InfoQ上分享的大數(shù)據(jù)架構(gòu),憧憬著什么時(shí)候能有一套自己的房子。雖然我很快就又一次確定了自己對(duì)大數(shù)據(jù)毫無(wú)興趣的事實(shí),但不同的是我這次找到了堅(jiān)持的力量,因?yàn)槲医Y(jié)婚了,還要很多事情要做,而這都需要錢(qián)。
時(shí)間過(guò)的很快,我開(kāi)始記不起年少時(shí)的模樣,在這種日復(fù)一日的工作之中,我的兒子出生了,這件事給平淡的生活增加了一絲樂(lè)趣,也給我那日漸稀疏的頭頂增加了一層壓力。
有一次在帶娃的間歇里,我坐在馬桶上刷手機(jī),不經(jīng)意間看到了阿里收購(gòu)Flink的消息,里邊講了Flink的種種神跡,我隨手便轉(zhuǎn)到了公司的群里,過(guò)了一會(huì),主管回復(fù)說(shuō),有點(diǎn)意思,那誰(shuí)誰(shuí)你就負(fù)責(zé)研究研究看看吧。
我一邊在心里說(shuō),得,手賤了,一邊快速在群里回復(fù)說(shuō)“收到,沒(méi)問(wèn)題”。
時(shí)間已經(jīng)是2019年了,我還沒(méi)搞懂2014年發(fā)布的Flink,我被時(shí)代裹挾著向前,卻不知道要去哪里。兒子正在長(zhǎng)大,父母越來(lái)越老,我看著那些裁員的新聞,不敢想象未來(lái)。
但我必須強(qiáng)行充滿希望。
馬換了一次又一次,路愈趕越遠(yuǎn),再要回去已經(jīng)來(lái)不及了,于是我只得繼續(xù)往前趕。朝霧早已在一片肅穆中消散凈盡,那花花世界就展現(xiàn)在我的面前。
借狄更斯的話,敬所有人都有遠(yuǎn)大前程。(本文首發(fā)鈦媒體)
![]()
大數(shù)據(jù)計(jì)算引擎發(fā)展史
【鈦媒體作者介紹:郭華,微信kakuka1988】
快報(bào)
根據(jù)《網(wǎng)絡(luò)安全法》實(shí)名制要求,請(qǐng)綁定手機(jī)號(hào)后發(fā)表評(píng)論