在Hadoop發(fā)展的8年時間里,我們看到一種“使用浪潮”——一代又一代用戶在相同的時間和類似的環(huán)境下使用Hadoop。每一個在數(shù)據(jù)處理時使用了Hadoop的用戶,都面臨著類似的挑戰(zhàn),為了讓一切正常運轉(zhuǎn),要么被迫協(xié)同工作,要么干脆隔離。接下來我們就討論這些客戶,看他們彼此之間有何不同。
第0代——火種
這是開頭:在谷歌2000年中的研究論文的基礎(chǔ)上,一些信徒奠定了廉價存儲和計算能力的商品化基礎(chǔ)。
Doug Cutting是教父。他跟Mike Cafarella一起,實現(xiàn)了谷歌文件系統(tǒng)和MapReduce的一個開源版本,它也是Apache Nutch項目的一部分。這兩者一起演繹出無處不在的Apache Hadoop,一個蓬勃發(fā)展的大數(shù)據(jù)生態(tài)系統(tǒng)。令人吃驚的是,沒有其他競爭項目或商業(yè)實體看到這項技術(shù)的潛力,并開發(fā)出與之競爭的產(chǎn)品。
第一代——早期
Hadoop建立后迅速吸引了一些早期用戶,包括web2.0及其后的公司Yahoo!、Facebook、Powerset、Rapleaf等,他們中的一些人比如后兩者更關(guān)注Hadoop的NoSQL組件,Hadoop的數(shù)據(jù)庫(又名HBase)。他們都需要一個能幫助他們應(yīng)對現(xiàn)有及正在快速增長的用戶基礎(chǔ)平臺。他們賭一個能讓Google正常運轉(zhuǎn)的東西也能滿足他們的需求。Hadoop做到了,然后才有了今天。
更重要的是這些公司都有強大的工程背景,擁有比一般企業(yè)更多的開發(fā)人員。他們的技術(shù)專家能在公司內(nèi)使用Hadoop,開發(fā)搭建于Hadoop之上的解決方案。對工程師來說,技術(shù)道路從這里開始分化:要么開始深入挖掘代碼并最終構(gòu)建一個Hadoop生態(tài)系統(tǒng)內(nèi)的項目,要么被歸到既做開發(fā)又做集群的那一類里…我們見證了Hadoop發(fā)展規(guī)則的誕生——參與其中的人員應(yīng)該具備多種技能、能一肩挑起所有重?fù)?dān)。這很有用,因為這些孤獨戰(zhàn)斗的武士們都是有天賦的家伙,能夠完成他們的工作。
這兩組工程師最終都促進了Hadoop代碼庫的發(fā)展,并因此被選入Hadoop提交團隊,他們被允許檢查提交到開源庫中的代碼。我們談?wù)摰氖且恢患s200人的團隊,他們在世界范圍內(nèi)推動Hadoop的發(fā)展。
現(xiàn)在,其中的一些工程師已經(jīng)轉(zhuǎn)到其他項目或跳到其他公司,但他們中的絕大多數(shù)仍然活躍在Hadoop圈子里。特別值得一提的是Yahoo!公司,它在最開始的時候推動了Hadoop的發(fā)展。
第二代——追隨者
在早期使用Hadoop的公司里,Hadoop成功對一批新用戶留下深刻的印象,他們通常被現(xiàn)在蓬勃發(fā)展的Web 3.0和社交網(wǎng)絡(luò)的公司雇傭。這些用戶是Hadoop的形成和時代到來的主因(雖然一個比一個年輕)。他們通常沒有你積累豐富的Java代碼,但是這些用Python, Ruby 或Scala標(biāo)識著“我們寫代碼快”的家伙們,在能量飲料和無盡的時間幫助下能夠破解任何代碼,唯獨不包括java。因此,他們建立一個偉大的網(wǎng)站,如Last.fm、Spotify,網(wǎng)站把Hadoop缺乏的東西迅速匯集到一起,例如一個叫Dumbo(Last.fm)的Python MapReduce橋,或Luigi (Spotify)的新作業(yè)調(diào)度系統(tǒng)。
現(xiàn)在,這種缺乏Hadoop組件而引發(fā)的模塊化開發(fā)方式不僅發(fā)生在年輕的創(chuàng)業(yè)者身上,也出現(xiàn)在其他公司,這些公司不愿意介入Hadoop核心開發(fā)者社區(qū)里日益增長的政治化問題。LinkedIn就是一個例子,它圍繞Hadoop的核心服務(wù)開發(fā)了很多工具,它還建立輔助系統(tǒng)以幫助收集事件、進行隊列處理等。LinkedIn將這些項目開源,以便幫助有興趣的用戶建立新社區(qū)。
第三代——大器晚成
到目前為止,對所有Hadoop項目感興趣的下一代用戶是所謂的企業(yè)公司。他們的規(guī)模從小到大都有,他們是純粹的IT用戶,他們購買需要的軟硬件許可,架構(gòu)師會將這些東西揉到解決方案、產(chǎn)品或服務(wù)中。但他們不會雇用一批核心開發(fā)者打補丁或建立Hadoop堆棧。事實上這些用戶大多數(shù)采用分布式安裝Hadoop,如用Cloudra的CDH以讓Hadoop運行得更快。這與在不同操作系統(tǒng)下做事兒是一樣的,你可以將精力集中于Hadoop之上的業(yè)務(wù)邏輯,如果遇到問題或缺乏組件,你跟供應(yīng)商溝通,然后升級到新版本。
有趣的是這些用戶對年輕的Hadoop很滿意,其應(yīng)用缺乏更多的企業(yè)特征。Hadoop集群被從網(wǎng)絡(luò)中分離并由少數(shù)幾個人管理,通常一個集群只跑一個應(yīng)用,所以遇到多用戶或多負(fù)載的任務(wù)時自然會被安全地推遲。
第四代——新浪潮
我們現(xiàn)在看到的應(yīng)用Hadoop的公司,他們等待了很長時間,因為Hadoop缺點太多所以干脆推遲上Hadoop。但隨著企業(yè)級數(shù)據(jù)中心的出現(xiàn),企業(yè)也為Hadoop的運行做好了準(zhǔn)備。等待的時間并非空等,他們認(rèn)真研究Hadoop功能,花時間測試系統(tǒng)的各個部分,明確知道自己想要一個安全的、多用戶、多負(fù)載的數(shù)據(jù)平臺,能與現(xiàn)有的IT系統(tǒng)集成到一起,并帶有數(shù)據(jù)管理、安全審計和綜合管理功能。
我想指出的另一個重要發(fā)展是,隨著時間的推移從最開始到現(xiàn)在的新浪潮用戶,Hadoop項目本身已經(jīng)是許多用戶共同努力的結(jié)果,現(xiàn)在的Hadoop已經(jīng)沒有了哪怕一絲一毫初始成員的印記,在所有太常見以至于無人能夠代表的行業(yè)里Hadoop只是其中之一,唯一值得一提的有且只有Doug Cutting。
現(xiàn)在越來越多的企業(yè)級產(chǎn)品在向Hadoop轉(zhuǎn),拉里·埃里森可不喜歡這種趨勢,因為這無益于Oracle數(shù)據(jù)庫的銷售。這其實已經(jīng)成為一種讓Doug對Hadoop用戶來解釋大數(shù)據(jù)的縮水版請求。事實上大量用戶根本不了解這個圈子里最初的那批家伙。時代還在繼續(xù)進步。
第1.1代——周期性波動
這個圈子看起來封閉的地方,用我個人最喜歡的詞來形容就是:技術(shù)債務(wù)。讓我們回到第一代、、但更多成長為第二代的用戶。我們能夠看到,他們積累了大量的遺留系統(tǒng),對不斷進化的Hadoop生態(tài)圈而言這些系統(tǒng)需要不斷維護和使用。在實際商業(yè)應(yīng)用中這需要投入人力資本,比如開發(fā)產(chǎn)品、提供服務(wù)以增加收入。與最初創(chuàng)建它相反的是,當(dāng)時看上去偉大的想法如今卻成為一種不斷花錢的負(fù)擔(dān)。對第一代公司而言Hadoop的運行已經(jīng)成為常態(tài),他們修改代碼庫的版本以保證自己的Hadoop正常運行。對第二代公司來說,他們現(xiàn)在有非常豐富的工具可供選擇,這些工具不需要他們自己去開發(fā),但仍然需要自己去維護。
所以我預(yù)測,最終這些前幾代的用戶將廢除其先前的努力,遷移到Hadoop發(fā)行版,這將幫助他們專注于自己業(yè)務(wù),比如成功地開發(fā)數(shù)據(jù)驅(qū)動的產(chǎn)品和服務(wù),而選擇Hadoop的供應(yīng)商將確保他們總是有這樣做所需的數(shù)據(jù)中心。這里有一個偉大的未來!