Hydra与Hadoop之争谁将胜利?
Hadoop是一个面向批处理的系统,对数据实时处理的支持较差,这将会成为其未来发展的瓶颈,而Hydra从设计之初就考虑了数据实时处理的需求,宣布开源后,得到了越来越多的支持,未来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的另一句话:“天空才是极限。”