Hydra(九頭蛇),分布式任務(wù)處理系統(tǒng),由社交標(biāo)簽服務(wù)提供商AddThis六年前開發(fā),現(xiàn)在已得到Apache的開源許可,就像Hadoop一樣,只是還沒有Hadoop那樣的知名度和聲勢。Hydra的創(chuàng)造者稱,該“多頭”平臺非常擅長處理一些大的數(shù)據(jù)任務(wù)——對非常大的數(shù)據(jù)集進(jìn)行實(shí)時(shí)處理,這樣的任務(wù)恐怕會讓那只大象(Hadoop)很頭疼。
Hadoop仍然是一個(gè)儲存大量數(shù)據(jù)的優(yōu)秀平臺,但很多公司面臨著另一個(gè)問題,我們將數(shù)據(jù)存儲到Hadoop之后如何去分析數(shù)據(jù),無論是Hive還是Pig都需要方便地訪問Hadoop中的數(shù)據(jù),才能從中獲得的價(jià)值。正如我們看到的:Hadoop用于實(shí)時(shí)分析并不合適。
Hydra是一個(gè)大數(shù)據(jù)存儲和處理平臺,由Matt Abrams和他的AddThis同事們共同開發(fā)完成。AddThis也就是過去的Clearspring,是開發(fā)Web服務(wù)器窗口小部件的公司,使訪問者可以通過Twitter、Facebook、Pintrest、Google +或者Instagram輕松共享他們的數(shù)據(jù)。
當(dāng)AddThis開始逐漸擴(kuò)大其業(yè)務(wù)時(shí),它對越來越多的用戶數(shù)據(jù)漸漸感到無能為力。該公司需要一個(gè)可擴(kuò)展的分布式系統(tǒng),對其用戶共享的這些數(shù)據(jù)進(jìn)行實(shí)時(shí)分析。那時(shí)Hadoop無法滿足AddThis的需求,所以它開發(fā)了Hydra。
那么,Hydra到底是什么?簡而言之,它是分布式的任務(wù)處理系統(tǒng),可以同時(shí)支持流處理和批處理。它利用一種基于樹的數(shù)據(jù)結(jié)構(gòu)來存儲和處理具有數(shù)千個(gè)節(jié)點(diǎn)集群的數(shù)據(jù)。它具有一個(gè)基于Linux的文件系統(tǒng),這使得它可以與ext3、ext4甚至ZFS兼容;它還具有作業(yè)/集群管理組件,可以自動為集群分配新的作業(yè)和平衡已有的作業(yè);系統(tǒng)還可以自動將數(shù)據(jù)備份,并自動處理節(jié)點(diǎn)故障。
Hydra包括很多的組件:跨異構(gòu)集群處理任務(wù)的分布式作業(yè)執(zhí)行系統(tǒng)、可網(wǎng)絡(luò)訪問的文件服務(wù)系統(tǒng),還有本地備份及遠(yuǎn)程備份(考慮到難以預(yù)防的節(jié)點(diǎn)故障)。
基于樹形結(jié)構(gòu)使它可以在同一時(shí)間處理流數(shù)據(jù)并進(jìn)行批處理作業(yè)。AddThis工程部門的一位成員Chris Burroughs在他1月23日的博客中首次宣布Hydra開源,還提供了對于Hydra精辟的描述:“它攝取流數(shù)據(jù)(比如日志文件),并生成聚合樹、 摘要樹或者數(shù)據(jù)轉(zhuǎn)換樹,這些樹可用來探索(小型查詢),作為機(jī)器學(xué)習(xí)的一部分(大型查詢)、或者在網(wǎng)站上支持實(shí)時(shí)控制臺(大量的查詢)。”
Hydra最初是用以幫助AddThis解決自身問題,供內(nèi)部使用,以及為網(wǎng)站運(yùn)營商提供服務(wù)。典型的問題包括:“上個(gè)月有多少用戶訪問網(wǎng)站?”以及“網(wǎng)站從不同國家和瀏覽器獲得訪問量分別有多大?”
AddThis繼續(xù)使用Hydra來處理其大規(guī)模的數(shù)據(jù)流量,分析其客戶得到網(wǎng)站的發(fā)展趨勢。AddThis可以了解人們在線分享了什么,哪些話題比較熱門。社交標(biāo)簽服務(wù)被超過1300萬的網(wǎng)站使用,一個(gè)月有13億用戶訪問,平均每天30億訪問量產(chǎn)生10TB數(shù)據(jù),現(xiàn)在Hydra在AddThis的上千個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)上運(yùn)行著。
Abrams通過郵件告訴Datanami:“我們處理大型數(shù)據(jù)集已經(jīng)很長時(shí)間了,Hydra一直以來對我們都非常有用,我們覺得它以獨(dú)特的方式解決了分布式數(shù)據(jù)處理的問題。”
傳統(tǒng)的Hadoop面向批處理,而Hydra可以同時(shí)支持批處理和實(shí)時(shí)流處理。Abrams說:“Hydra支持的批處理主要側(cè)重流分析和增量數(shù)據(jù)處理,能夠使用樹形數(shù)據(jù)結(jié)構(gòu)描述數(shù)據(jù),對自然數(shù)據(jù)進(jìn)行壓縮及高效查詢和訪問。Hydra可以從HDFS中生產(chǎn)和接受數(shù)據(jù),但它在本機(jī)文件系統(tǒng)上完成操作,這使其可以在Hydra上靈活地使用其他服務(wù)。”
現(xiàn)在Hydra已經(jīng)開源,Abrams希望該軟件會被更加廣泛的使用,并得到更好的發(fā)展。“這將需要一些時(shí)間,但我們相信未來我們將建成一個(gè)完善的Hydra開源社區(qū),這樣AddThis和OS(開源)社區(qū)都可以從Hydra未來的發(fā)展中受益。在華盛頓特區(qū)已經(jīng)有一些其他公司在使用Hydra了,我們很期待Hydra社區(qū)得到進(jìn)一步的發(fā)展。”
2013秋天,Doug Cutting,Hadoop的創(chuàng)始人也是Cloudera的首席架構(gòu)師感嘆Hadoop缺乏替代品——那時(shí)Cutting說:“我多么期待能有更多像Hadoop一樣的系統(tǒng)出現(xiàn)……”雖然如今Hadoop在大數(shù)據(jù)界占據(jù)了主導(dǎo)地位,但誰又能說它會是唯一的一個(gè)大數(shù)據(jù)分布式計(jì)算平臺?相信未來Hydra的發(fā)展不會令他失望,對于未來Hydra的發(fā)展,我想引用Cutting的另一句話:“天空才是極限。