SQL on Hadoop技术分析(一)

背景

Hadoop的诞生是划时代的数据变革,但关系型数据库时代的存留也为Hadoop真正占领数据库领域埋下了许多的障碍。对SQL(尤其是PL/SQL)的支持一直是Hadoop大数据平台在替代旧数据时代亟待解决的问题。Hadoop对SQL数据库的支持度一直是企业用户最关心的诉求点之一,也是他们选择的Hadoop平台的重要标准。

自打Hive出现之后,SQL onHadoop相关系统已经百花齐放,速度越来越快,功能也越来越齐全。目前比较主流的有Impala,Spark SQL,HAWQ,Tez,Drill,Presto,Tajo等。下面从技术层面梳理下一个技术统一的视角,来为后续在技术方案上选择做参考。

系统架构:Runtime Framework vs MPP

在SQL on Hadoop系统中,有两种主流的架构,一种是基于某个运行时框架来构建查询引擎,典型的案例就是Hive,另一种是仿照MPP数据库架构,典型的如Impala,HAWQ。前者现有运行时框架,然后套上SQL层,后者则是一个一体化的查询引擎,有时我们能听到一种声音,说后者的架构优于前者,至少在性能上。那么是否果真如此?

一般来说,对于SQL on Hadoop系统很重要的一个评价指标就是:快,低时延。在Hive逐渐普及后,就逐渐有了所谓交互式的查询需求,因为无论是BI系统,还是Ad-hoc,都不能按照离线的方式来处理。很多厂商都试图去解决这个问题,于是就有了Impala,HAWQ等,同时经过不断的发展,Hive也能跑在DAG框架上了,不仅有Tez,还有Spark。从任务的运行角度来看,MPP类引擎的执行方式其实跟DAG模型是类似的,主要的特点如下:

  • DAG v.s. MR:最主要的优势,中间结果不写磁盘(除非内存不够)。
  • 流水线计算:上游stage一出结果马上推送或者拉到下一个stage处理,比如多表join时前两个表有结果直接给第三个表,不像MR要等两个表完全join完再给第三个表join。
  • 高效的IO:本地查询没有多余的消耗,充分利用磁盘。
  • 线程级别的并发:相比之下MR每个task要启动JVM,本身就有很大延迟,占用资源也多。

当然MPP模式也有其劣势,一个是扩展性不是很高,这在关系数据库时代就已经有过结论;另一个是容错性差,对于Impala来说一旦运行过程中出点问题,整个查询就挂了。

存储格式

主流的存储格式有,ORC,Parquet,最近华为大数据团队研发的CarbonData数据格式,从原型测试数据,CarbonData性能上比Parquet要快,这主要得益于在构建Carbon数据格式中,创建了很多的索引,从整个查询扫描过程中,利用索引快速过滤掉数据,减少扫描的数据量,类似这样的系统,有腾讯的Hermes等。另外Impala使用的Parquet格式存储,现在又有了一种新的解决方案,kudu+Impala的方案,Cloudera宣称查询分析非常快,并且能支持数据的更新等操作。

资源控制

在SQL on Hadoop方案中,另外一个客户关注的方面是资源控制,在Hadoop体系中,与Yarn的集成。比如目前的Impala版本就不支持通过Yarn来管理分布使用资源,不过从Impala的版本路标中,与Yarn的数据集成已经是Impala的一个重要的目标。目前能与Yarn集成的有Spark SQL,HAWQ等.

总结

SQL on Hadoop的技术发展越来越快,各个厂家的竞争也是越来越激烈,到底哪种技术性能更加的好,查询时延更加的低,这个还是要从业务使用场景上来针对性分析选择。

任何一种技术,都有其适合的场景,然后结合技术上分析,如何减少扫描的数据量,是提升查询性能的关键。

原文发布于微信公众号 - 大数据和云计算技术(jiezhu2007)

原文发表时间:2016-07-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏hadoop学习

大数据hadoop入门之hadoop家族详解

大数据这个词也许几年前你听着还会觉得陌生,但我相信你现在听到hadoop这个词的时候你应该都会觉得“熟悉”!越来越发现身边从事hadoop开发或者是正在学习ha...

1402
来自专栏腾讯大数据的专栏

飞起来的大象-Hadoop从离线到在线

时代在变迁,市场在变化,周边的软硬件环境也突飞猛进般的发展,同时企业的业务需求也不断升级,从规模到成本都有较高的要求,这刺激Hadoop生态圈的变革。据AMR研...

2548
来自专栏灯塔大数据

干货|大数据主流工具,你知道几个?

业内有这样一种说法,SQL虽然在大数据分析领域久经考验,但是无奈长江后浪推前浪,和炙手可热的Hadoop相比,SQL已经过时了。这个说法有点言过其实,现在很多...

3386
来自专栏PPV课数据科学社区

大数据主流工具,你知道几个?

业内有这样一种说法,SQL虽然在大数据分析领域久经考验,但是无奈长江后浪推前浪,和炙手可热的Hadoop相比,SQL已经过时了。这个说法有点言过其实,现在很多的...

3217
来自专栏钱塘大数据

Spark与Hadoop两大技术趋势解析

导读: 开源数据集如今深受开发者喜爱,比如谷歌的Images dataset数据集,YouTube-8M数据集等。通过对数据集里的数据进行分析,可以发现许多隐...

3584
来自专栏大数据技术学习

常用的大数据技术有哪些?hadoop学习总结

大数据技术为决策提供依据,在政府、企业、科研项目等决策中扮演着重要的角色,在社会治理和企业管理中起到了不容忽视的作用,很多国家,如中国、美国以及欧盟等都已将大数...

2132
来自专栏钱塘大数据

大数据主流工具,你知道几个?

导读:大数据时代,我们有很多的查询工具可以选择。虽然SQL占据着绝对优势,但是随着大数据的持续升温,也给了Apache Pig和Hive很大的发挥空间。工欲善其...

2826
来自专栏华章科技

Uber的大数据之道

原文网址:http://mp.weixin.qq.com/s?__biz=MzA3NTM4NDE2Mw==&mid=2649545686&idx=1&sn=4a...

862
来自专栏大数据和云计算技术

hadoop发行商介绍:Cloudera

‍‍‍‍在Hadoop生态系统中,规模最大、知名度最高的公司则是Cloudera。现在国内很多公司也都选用他们的发行版本(CDH)。‍‍ ‍‍Cloudera由...

2938
来自专栏人工智能头条

3位Committer,12场国内外技术实践,2016中国Spark技术峰会议题详解

2065

扫码关注云+社区