基于Hadoop的SQL查询引擎性能研究
2016-11-29吴黎兵叶璐瑶王晓栋
吴黎兵, 邱 鑫, 叶璐瑶, 王晓栋, 聂 雷
(1.武汉大学 计算机学院, 武汉 430072; 2.英特尔 英特尔亚太研发中心, 上海 201100)
基于Hadoop的SQL查询引擎性能研究
吴黎兵1*, 邱 鑫1,2, 叶璐瑶1, 王晓栋2, 聂 雷1
(1.武汉大学 计算机学院, 武汉 430072; 2.英特尔 英特尔亚太研发中心, 上海 201100)
Apache Hadoop处理超大规模数据集有非常出色的表现,相比较于传统的数据仓库和关系型数据库有不少优势.为了让原有业务能够充分利用Hadoop的优势,SQL-on-Hadoop系统越来越受到工业界和学术界的关注.基于Hadoop的SQL查询引擎种类繁多,各有优势,其运算引擎主要包括三种:①传统的Map/Reduce引擎;②新兴的Spark引擎;③基于shared-nothing架构的MPP引擎.本文选取了其中最有代表性的三种SQL查询引擎—Hive、Spark SQL、Impala,并使用了一种类TPC-H的测试基准对它们的决策支持能力进行测试及评估.从实验结果来看,Impala和Spark SQL相对于传统的Hive都有较大的提高,其中Impala的部分查询比Hive快了10倍以上,并且Impala在完成查询所占用的集群资源也是最少的.然而若从稳定性、易用性、兼容性和性能等多个方面进行对比,并不存在各方面均最优的查询引擎,因此在构建基于Hadoop的数据仓库系统时,推荐采用Hive+Impala或者Hive+Spark SQL的混合架构.
大数据; SQL-on-Hadoop; 数据仓库; Spark SQL; Impala; Hive
随着数据量的急剧增长,传统的数据仓库应用已经难以满足联机分析处理 (On-line Analytical Processing, OLAP)对数据仓库提出的新需求,特别是大数据4V特性中,大规模(Volume)、高复杂度(Variety)两座大山让扩展性不足的传统数据仓库不堪重负,寻求新型的高可扩展性数据仓库成为了当务之急.
搭建在廉价商用机器之上的Hadoop[1],在处理超大数据集的优……