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