那么,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一直以来对我们都非常有用,我们觉得它以独特的方式解决了分布式数据处理的问题。”