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