那么,Hydra到底是什么?簡(jiǎn)而言之,它是分布式的任務(wù)處理系統(tǒng),可以同時(shí)支持流處理和批處理。它利用一種基于樹的數(shù)據(jù)結(jié)構(gòu)來(lái)存儲(chǔ)和處理具有數(shù)千個(gè)節(jié)點(diǎn)集群的數(shù)據(jù)。它具有一個(gè)基于Linux的文件系統(tǒng),這使得它可以與ext3、ext4甚至ZFS兼容;它還具有作業(yè)/集群管理組件,可以自動(dòng)為集群分配新的作業(yè)和平衡已有的作業(yè);系統(tǒng)還可以自動(dòng)將數(shù)據(jù)備份,并自動(dòng)處理節(jié)點(diǎn)故障。
Hydra包括很多的組件:跨異構(gòu)集群處理任務(wù)的分布式作業(yè)執(zhí)行系統(tǒng)、可網(wǎng)絡(luò)訪問(wèn)的文件服務(wù)系統(tǒng),還有本地備份及遠(yuǎn)程備份(考慮到難以預(yù)防的節(jié)點(diǎn)故障)。
基于樹形結(jié)構(gòu)使它可以在同一時(shí)間處理流數(shù)據(jù)并進(jìn)行批處理作業(yè)。AddThis工程部門的一位成員Chris Burroughs在他1月23日的博客中首次宣布Hydra開(kāi)源,還提供了對(duì)于Hydra精辟的描述:“它攝取流數(shù)據(jù)(比如日志文件),并生成聚合樹、 摘要樹或者數(shù)據(jù)轉(zhuǎn)換樹,這些樹可用來(lái)探索(小型查詢),作為機(jī)器學(xué)習(xí)的一部分(大型查詢)、或者在網(wǎng)站上支持實(shí)時(shí)控制臺(tái)(大量的查詢)。”
Hydra最初是用以幫助AddThis解決自身問(wèn)題,供內(nèi)部使用,以及為網(wǎng)站運(yùn)營(yíng)商提供服務(wù)。典型的問(wèn)題包括:“上個(gè)月有多少用戶訪問(wèn)網(wǎng)站?”以及“網(wǎng)站從不同國(guó)家和瀏覽器獲得訪問(wèn)量分別有多大?”
AddThis繼續(xù)使用Hydra來(lái)處理其大規(guī)模的數(shù)據(jù)流量,分析其客戶得到網(wǎng)站的發(fā)展趨勢(shì)。AddThis可以了解人們?cè)诰€分享了什么,哪些話題比較熱門。社交標(biāo)簽服務(wù)被超過(guò)1300萬(wàn)的網(wǎng)站使用,一個(gè)月有13億用戶訪問(wèn),平均每天30億訪問(wèn)量產(chǎn)生10TB數(shù)據(jù),現(xiàn)在Hydra在AddThis的上千個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)上運(yùn)行著。
Abrams通過(guò)郵件告訴Datanami:“我們處理大型數(shù)據(jù)集已經(jīng)很長(zhǎng)時(shí)間了,Hydra一直以來(lái)對(duì)我們都非常有用,我們覺(jué)得它以獨(dú)特的方式解決了分布式數(shù)據(jù)處理的問(wèn)題。”