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的另一句話:“天空才是極限。”
來源:Datanami 作者:Alex Woodie