阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

153次阅读
没有评论

共计 2354 个字符,预计需要花费 6 分钟才能阅读完成。

以前只用过 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 开始都是基于自身的分析器与执行器。下图是其架构图

Hadoop 上时实类 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 的架构图。

Hadoop 上时实类 SQL 查询系统对比(图片来源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 所处的位置。

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

相关阅读

Ubuntu 13.04 上搭建 Hadoop 环境 http://www.linuxidc.com/Linux/2013-06/86106.htm

Ubuntu 12.10 +Hadoop 1.2.1 版本集群配置 http://www.linuxidc.com/Linux/2013-09/90600.htm

Ubuntu 上搭建 Hadoop 环境(单机模式 + 伪分布模式)http://www.linuxidc.com/Linux/2013-01/77681.htm

Ubuntu 下 Hadoop 环境的配置 http://www.linuxidc.com/Linux/2012-11/74539.htm

单机版搭建 Hadoop 环境图文教程详解 http://www.linuxidc.com/Linux/2012-02/53927.htm

搭建 Hadoop 环境(在 Winodws 环境下用虚拟机虚拟两个 Ubuntu 系统进行搭建)http://www.linuxidc.com/Linux/2011-12/48894.htm

更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计2354字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中