Hadoop上开源的类SQL实时查询系统对比

开源 Hadoop
总体来说虽然impala、stinger、drill三个系统都是类SQL实时查询系统,但是它们的侧重点完全不同。而且它们也不是为了替换Hive而生,hive在做数据仓库时还是很有价值的。

以前只用过Hive与impala两个类SQL查询系统,最近又将Hortonworks开源的Stinger与Apache的Drill做了些调研。累死累活搞了一天的资料,头都大了。为了纪念我那逝去的脑细胞,特将这些信息整理出来。

由于调查时间比较短(一天的时间都头晕眼花了,再长点估计我就要过劳死了),所写之处难免会有差错,欢迎大家指正。

总体来说虽然impala、stinger、drill三个系统都是类SQL实时查询系统,但是它们的侧重点完全不同。而且它们也不是为了替换Hive而生,hive在做数据仓库时还是很有价值的。

目前来说只有impala比较成熟(人家标称要使用CDH版本hadoop,如果要使用apache的,要做好测试的心里准备)。

其它两个系统还都处理孵化状态,但是前景非常不错。


Impala

这个系统是Cloudera开源的,时间大约是在12年下半年。虽然到现在才一年的时间但是已经有很多人在使用。社区也比较活跃,大家可以在github上面看到项目的开发人员与代码提交情况(地址:https://github.com/cloudera/impala)。个人感觉开发者虽然有其它几个公司,但是还是以cloudera为主。这样也造就了impala开发的比较快速,虽然到现在才一年左右的时间,但是impala已经可以很稳定的运行。

impala主要是为hdfs与hbase数据提供实时SQL查询。它是根据google的dremel论文实现的一套分布式系统,自用户提交的SQL开始都是基于自身的分析器与执行器。下图是其架构图

 

(图片源自:impala安装使用说明书)

由于完全脱离了M/R技术,自身根据HDFS的文件分布来调整计算,所以速度较Hive有很大提升。根据我个人使用部分TPC基准测(为什么是部分?没理 由,我只选了一部分SQL来跑),impala虽然性能提升不像Cloudera标称的达到hive的一百倍,但是在比较复杂的情况下达到40-70倍性 能提高还是有的。

就日常使用来说,标称是支持大部分SQL-92标准(我也不清楚这个标准到底有多少,专业的童鞋给点解读呗!!)。根据我 是测试,日常用的SQL都没有问题。并且impala支持JDBC与ODBC的连接,这对于我们的使用也是很必要的,基于此特点我们可以开发对应业务系统 的UI部分,从而不用要求业务人员自己下SQL了(这是为数不多的展现工作成果的时候了)。

其次就是impala支持的文件格式,我们存取 数据的时候肯定要应景的选择压缩与否以及文件的存储格式。impala支持常用的Text、Sequence、avro格式,压缩方面支持Snappy、 bzip、gzip以及deflate压缩应该可以满足我们大部分的使用场景了。

而最棒的是它的UDF功能可以直接使用hive的udf库,而不需要修改任何代码,使用hive的童鞋可以庆祝了,很多任务不需要任何改变即可平滑切换impala。不过因为impala使用的是C开发的,所以impala还是鼓励大家写一个c下面的udf来提高性能。


drill

开源时间跟impala差不多,只不过属于Apache,。这个系统的目标很宏大--抽象所有数据源,做成统一接口。底层支持hbase、mongoDB、HDFS、Cassandra等数据源。

它的数据接口都是插件化,理论上支持各种查询语言,SQL自然也不例外,不过目前这个系统还是Apache的一个孵化项目,很多功能尚未完成与稳定。但是可以预见,这个系统如果完成是很有影响力的。下图为drill的架构图。

(图片源自:https://cwiki.apache.org/confluence/display/DRILL/High-level+Architecture


Stinger

Hortonworks开源的一个实时类SQL查询系统,也是声称可以提升较hive 100倍的速度(悲崔的hive,都拿它来当反面教材)。目前处于其计划中三个阶段的最后一个阶段。

综合来看Hortonwork做的事是在hive等分析系统的现有基上加了一个优化层,所有的事都要经过它的优化层Tez(此框架是基于Yarn)来处理,以减少不必要的工作以及资源开销。虽然它也对HIVE进行了很多的优化与加强,但是这个效果就要看子系统Tez的表现的了。Tez目前也是apache的孵化项目,Stringer如果要稳定可以商用依然还有很多路要走。

从下面的示意图大家可以了解Tez所处的位置。

(图片源自:http://hortonworks.com/hadoop/tez/

责任编辑:奔跑的冰淇淋 来源: 开源中国博客
相关推荐

2012-10-29 09:55:52

HadoopImpalaDremel

2014-07-29 09:19:07

Hadoop

2010-01-04 13:44:41

SQL

2022-07-14 15:08:21

SQL数据驱动NoSQL

2011-09-08 09:24:34

Mac Widget监测系统iStatpro

2013-02-21 16:27:07

开源开源流计算

2016-12-23 09:59:27

Linux

2009-11-18 16:16:51

Oracle数据库

2016-01-06 10:22:18

开源eBayHadoop

2015-08-27 15:03:08

Live Query sql2016Livesql2016 调优s

2013-12-13 10:24:34

开源SQLHadoop

2013-02-22 11:07:36

Red Hat开源Hadoop

2013-10-22 09:36:48

2011-08-17 21:23:41

约束NOT NULLUNIQUE

2016-03-28 10:32:36

Hadoop数据库引擎BI

2021-04-09 23:00:12

SQL数据库Pandas

2018-06-05 12:06:20

Hadoop开源工具

2013-02-20 09:51:17

HStreamingJanaUhlig初创公司

2015-10-08 10:35:47

架构师开源实时流处理

2017-11-16 17:26:35

深度学习移动设备MobileNets应
点赞
收藏

51CTO技术栈公众号