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的技术发展越来越快,各个厂家的竞争也是越来越激烈,到底哪种技术性能更加的好,查询时延更加的低,这个还是要从业务使用场景上来针对性分析选择。
任何一种技术,都有其适合的场景,然后结合技术上分析,如何减少扫描的数据量,是提升查询性能的关键。
微信扫一扫
关注该公众号
相关推荐
在过去的十年中,随着Hadoop技术的不断发展和成熟,SQL on Hadoop作为一项关键的技术也经历了显著的变化。Hadoop作为一个开源的分布式存储与计算框架,其核心版本中已累积了超过170万行代码,有着超过12000次的提交...
为了适应SQL专业分析人员的操作习惯和简化大数据分析方法,SQL on Hadoop技术应运而生,其典型技术是Hadoop中的Hive。 Hive是Hadoop中的一个数据仓库,可以直接对数据进行查询和分析。Hive提供了一个类似SQL的查询...
标题中的“64页大数据解决方案HiGraph+SQL on Hadoop汇报v2.0.pptx.zip”表明这是一个关于大数据处理的演示文稿,主要聚焦在HiGraph和SQL on Hadoop两个技术方面,版本为2.0。这个压缩包内包含了一个64页的PPT文件,...
为应对这些挑战,SQL on Hadoop技术应运而生。Hadoop和Spark提供了强大的计算能力,可以处理大规模结构化和非结构化数据。数据仓库架构包括: 1. 传统数据仓库层:集中的数据存储平台,包含元数据管理、数据稽查和...
随着Hadoop生态系统的成熟,各种基于Hadoop的SQL查询工具应运而生,它们使得用户可以利用熟悉的SQL语言来执行高效的数据查询和分析。下面将对几个流行的开源SQL on Hadoop工具进行比较和介绍。 1. Apache Hive ...
为了更好地利用Hadoop的强大功能并保持对SQL的支持,出现了一系列的SQL-on-Hadoop解决方案,旨在将传统的SQL查询能力与Hadoop的大规模分布式计算能力相结合,满足企业级数据分析的需求。 #### Hive与Impala对比 - ...
这篇文章主要讲述了如何利用SQL-on-Hadoop技术实现一个分布式的数据仓库系统TRAF,解决传统数据仓库在扩展能力、支持非结构化数据和处理速度等方面的不足。以下是文章的主要知识点汇总: 1. 传统数据仓库的局限性 ...
本文将从企业应用的角度,对比Hadoop技术与其他传统技术之间的差异,并分析其比较优势。 首先,我们来看Hadoop的主要技术特性以及它面向的企业应用案例。Hadoop的设计初衷是为了处理大规模数据集,尤其适用于互联网...
它的出现是为了让原有的业务系统能够充分利用Hadoop技术的优势,有效地应对大数据时代的挑战。 3. 网络日志分析平台的构建: 研究者构建了一个网络日志分析平台,以实现海量日志数据的采集、解析、存储以及高效、...
总结而言,Impala作为一款专为Hadoop环境量身打造的SQL引擎,以其高效的性能、灵活性和可扩展性,已经成为大数据分析领域的重要工具。它的成功展现了开源社区与商业公司的紧密合作在技术创新中的巨大潜力,也证明了...
Shark构建在Spark之上,共享Spark的内存计算框架,因此在执行速度上远超传统的Hadoop MapReduce上的Hive等SQL-on-Hadoop解决方案。 在"超越Hadoop的大数据技术:用Spark 和Shark进行基于内存的实时大数据分析.pdf...
标题"**Hadoop技术大数据技术体系共18页.pdf.zip**"表明这是一份关于Hadoop技术在大数据技术体系中的应用的文档,共有18页,并且是以PDF格式压缩存储的。从"zip"后缀我们可以推断,这是一个压缩文件,可能包含了多个...
SQL-on-Hadoop技术的核心在于提供在Hadoop生态系统中运行SQL查询的能力,以便高效地处理大数据。这一领域有多种系统,每个都有其特定的优势和适用场景。以下是对文章内容的详细阐述: 1. SQL On Hadoop 分类: - *...
Hadoop生态圈是指围绕Hadoop技术所构建的一系列工具和技术的集合体。随着Hadoop技术的发展,越来越多的企业和个人开始认识到其在处理大数据方面的巨大潜力,因此,围绕Hadoop形成了一系列的产品和服务。这些产品和...
Kylin是一个开源的大规模分布式分析引擎,由eBay公司开发,它为Hadoop平台提供了一个SQL接口和多维分析(OLAP)的能力,专门设计用于处理超大规模的数据集。Kylin的主要特性包括其在Hadoop上的SQL接口、多维分析功能...
### Hadoop概述 #### 一、传统数据与大数据的区别 Hadoop主要针对的是大数据处理领域。在理解Hadoop之前,我们需要先了解传统数据与...无论是对于企业还是个人而言,Hadoop都是一项值得深入了解和学习的重要技术。
随着技术的发展,Hive也引入了实时查询功能,如Hive on Tez和Hive on Spark,以适应更多样化的数据分析需求。 总结来说,Hadoop Hive是一个强大的大数据分析工具,它在Facebook和Yahoo等大型互联网公司的成功应用,...
标题所提及的“Presto-SQL-on-Everything.pdf”明确指出了文档将围绕开源分布式查询引擎Presto进行讨论,并阐述其如何在各种数据源上运用SQL进行查询。描述中提到Presto支持Facebook上大部分的SQL分析工作负载,并且...