大数据环境下基于Hbase的分布式查询优化研究
摘 要:大数据环境下数据库所存储的数据量呈爆炸式增长,如何保持高吞吐率并让客户得到满意的数据查询和处理结果,已经成为一个急需解决的问题。金融、电信以及互联网等行业要求企业的统计分析平台能支持分布式、高可用性和可扩展性的分布式查询环境,以便能及时高效的完成查询分析任务,做出更合理的业务决策。目前已经有很多公司在一定范围内将应用从关系数据库向Hbase进行迁移,但是大多数都是和Hadoop MapReduce或Hive结合使用,导致数据量增加后的分布式查询耗时过长,性能也随之下降。此外Hbase也有其自身的局限性,不能兼容传统数据库上的SQL应用。本文在分析了现有分布式数据库系统平台并深入研究Hbase的实现原理及高级特性的基础上,提出了基于Hbase的可扩展性查询优化方案(Hbase DSPE),即把Hbase的优点和SQL的易用性结合。这样做有助于对复杂SQL查询的优化,可以充分利用Hbase的诸多高级特性进行查询性能调优,对企业在大数据环境下从传统关系数据库向大数据平台的迁移具有现实的指导意义。
关键词:大数据;分布式查询;Hbase;SQL解析引擎;查询优化
中图分类号:TP311.13
大数据(Big Data)是近年来科学研究和商业领域的新的发展方向,运用于大数据的系统可统一管理地理上分布的异构计算或存储数据,组成功能类似于大型数据库服务器但相对松散耦合的资源群体,用来解决海量数据的分布式存储和查询问题。大数据环境下分布式数据处理目前已得到广泛应用,很多世界500强软件公司或科研机构都在从事相关方面的研究与应用。
1 大数据环境下的分布式查询
大数据时代的分布式查询已经随处可见,金融、电信及互联网行业对大数据环境下数据库集群的响应速度、可扩展性和查询的整体性能都提出了更高的要求。由于大数据业务的多样化发展,有越来越多的业务系统的需求开始发生了变化,所以如何提高大数据环境下的数据处理及查询的效率,是目前新的研究方向。
1.1 研究现状。海量数据的分布式查询技术目前已得到广泛应用,目前主流实现有如下三种方式:(1)传统关系型数据库分布式查询。传统关系型数据库的分布式查询主要存在于网络环境中,由于数据的分布性,关系数据库一次查询所操纵的对象可能分布于不同的网络节点中,由此带来的开销和执行速度就会与Hbase(基于列存储)不一样,并且查询优化的所考虑的因素很复杂,节点间的通信代价和分布式处理成为不可回避的问题[1]。此外,传统关系数据库在分布式查询时做了太多的事情,比如事务,B+索引等,导致关系数据库本身代码很复杂,同时对于海量数据的查询比较慢[2]。而对于很多业务场景来说,查询可能只用到数据库的部分功能,却要初始化复杂操作所要用到的代码。所以,传统关系数据库并不适用于大数据环境下的分布式查询。(2)Apache Hadoop Hive分布式查询。Hadoop Hive是一种数据分析框架,可以支持通过类似SQL语句的语法来操作Hbase中的数据。大多数企业都有对结构化查询语言(SQL)有丰富经验的员工,Hive允许这些数据库开发人员或者数据分析人员在无需了解Java编程语言或者Hbase API的情况下使用Hbase数据库。但是Hive不能完全兼容现有的关系型数据库,所以执行SQL的速度比较慢,从而导致查询效率不高。尤其是对于那些实时、简单的查询,使用Hive可能会带来很多额外的开销,如:查询的初始化、变量的转换以及其他冗余且耗时的操作。虽然目前已经有一些公司采用Hadoop Hive+Hbase对海量数据进行处理,但是实验证明对于一些简单的查询Hive在没有执行任何实质性的查询任务前已经有超过10秒的开销,包括初始化,SQL解析等[2]。(3)“NoSQL”数据库分布式查询。“Nosql”数据库的典型代表是Hadoop Hbase。Hbase已广泛应用于金融及互联网领域,支持众多业务应用程序和金融风险管理应用程序。Hbase的数据由HDFS天然的做了数据冗余,数据的可靠高己经证明了HDFS集群的安全性,以及服务于大数据的能力。而且Hbase本身的数据读写服务没有单点的限制,服务能力可以随服务器的增长而线性增长,达到几十上百台的规模[3]。但是,如果用户想迁移传统数据库到Hbase上,就必须遵循Hbase API的编码规范。这使得程序开发人员要用Hbase来提高分布式查询能力,必须针对Hbase开发相应的接口,从而增加了很多开发和维护的工作量。而且对于大多数从事分布式大数据处理的数据库管理人员(DBA)来讲,使用SQL这样易于理解的语言可以使人们能够更加轻松地使用HBase。相对于学习另一套Hbase私有API,开发人员可以使用熟悉的语言来读写数据[4]。
1.2 Hbase分布式数据库框架。Hbase是一个稀疏的、分布的、持续多维度的排序映射数组,它模仿并提供了基于Google文件系统的Big Table数据库的所有功能[5]。Hbase的目标是处理非常庞大的表,可以用普通的计算机处理超过10亿行数据,并且有数百万列元素组成的数据表。为了提高数据可靠性和系统的健壮性,Hbase使用HDFS分布式文件系统或者Hadoop作为其存储基础,其服务器体系结构遵循简单的主从服务器架构。Hbase由一个HMaster主服务器协调一个或多个Hregion服务器组成的集群,同时也依赖于Zookeeper。在针对Hbase的应用中,涉及到角色依次为:Client,Zookeeper,HMaster,HRegionServer。他们在Hbase体系结构中各司其职并且共同提供了Hbase分布式存储及查询服务[6]。
1.3 基于Hbase的分布式查询应用存在的问题。Hbase分布式数据库数据存储具有一定的哈希性质,非常适合处理Key/Value类型的数据以及结构稀疏的大规模数据。一次写入多次读取是Hbase数据库最大的特色,而这种特色正好满足分析系统的要求[7]。通过对Hbase分布式数据库进行的性能测试和分析,我们了解到Hbase在执行大数据量的查询任务时提交Scan的操作耗时较长,影响到了系统的处理并行任务的响应时间。不管是在客户端还是在服务器端,查询任务初始化的时间过长导致整个实时查询操作的响应时间增加,影响了Hbase数据库并行处理查询任务的能力。此外,大多数企业针对大数据应用的程序和处理逻辑都是基于传统的关系数据库上的SQL语句,所以使传统数据库在不改变其应用程序和处理逻辑的情况下迁移到大数据Hbase平台,将是未来大数据平台研究的一个全新的发展方向。
2 基于Hbase的大数据查询优化研究
Hbase本身提供的API中,只有Scan是用来查询数据的,这使得程序开发人员要用Hbase来提高分布式查询能力,必须针对Hbase开发相应的接口,从而增加了很多开发和维护的工作量。现有的基于Hbase的SQL解决方案(如Hive等)有很多局限性,并且当数据量变大时会遇到阻碍,查询效率也随之降低[8]。所以本文的研究目标就是为了兼容以前从关系型数据库中查询数据的接口,让Hbase可以通过标准SQL语句来查询Hbase表中的数据。因此,我们需要将SQL语句转成Hbase的Scan。本文研究计划基于Hbase重新设计并实现SQL解析引擎,即在HBase上提供SQL API接口。Hbase中有一个类似MapReduce的高级分析组件名为协处理器(Coprocessor)[9]。Hbase协处理器是一套通信框架,能够在客户端向RegionServer注入代码并执行获取结果。本文的前期研究通过对Hbase协处理器的测试以及简单实验,证明这种设计方案是可以实现的。
2.1 分布式SQL解析引擎。本文对Hbase的查询优化研究运用SQL解析引擎技术,使目前主流的分布式数据库Hbase支持企业现有的复杂数据库查询应用。基于Hbase的SQL解析引擎能够为Hbase提供企业级的分布式处理能力,可以将SQL查询任务的工作负载分配给多个分布式处理单元。同时可以将企业级分布式数据查询引入到业务分析应用中,使得用户可以基于Hbase分布式数据库集群并采用SQL编程模型来处理海量数据。
Hbase数据库对SQL解析引擎的支持主要解决部署在现有大数据平台上的Hbase查询应用面临的性能瓶颈,以及传统关系数据库查询向大数据分布式查询平台的迁移。主要实现步骤及功能包括:(1)基于Hbase API,研究并设计符合SQL规范的SQL解析引擎,使得应用程序开发者可以应用基于Hbase SQL解析引擎的分布式查询达到与传统关系型数据库SQL相同的效果。(2)扩展Hbase协处理器API,使SQL解析引擎可以与Hbase实现无缝集成,以满足变化的的查询负载管理的要求。(3)对应用程序编程接口(API)的支持:Apache Hadoop的子项目包括Hadoop MapReduce API,Hive和Spark;利用Apache Hadoop数据访问框架来连接分布式文件系统和数据库架构,从而避免了现有数据的迁移,主要研究对HDFS,GPFS的支持。
期刊库(http://www.zgqkk.com),是一个专门从事期刊推广、投稿辅导的网站。
本站提供如何投稿辅导,寻求投稿辅导合作,快速投稿辅导,投稿辅导格式指导等解决方案:省级投稿辅导/国家级投稿辅导/核心期刊投稿辅导//职称投稿辅导。
【免责声明】本文仅代表作者本人观点,与投稿辅导_期刊发表_中国期刊库专业期刊网站无关。投稿辅导_期刊发表_中国期刊库专业期刊网站站对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。
投稿辅导服务咨询与期刊合作加盟
陆老师联系QQ: 913775405(普刊)
蒋老师联系QQ: 867306987(核心)
刘老师联系QQ: 271374912(核心)
联系电话:18015016272
17327192284
投稿辅导投稿邮箱:zgqkk365@126.com
期刊推荐
- 《课程教育研究》 旬刊 国家级
- 《网络空间安全》(信息安全与技术)月刊 国
- 《价值工程》旬刊 国家级 科技统计源期刊
- 《高教论坛》 月刊 省级
- 《法制与社会》旬刊 省级
- 《中国教育学刊》月刊 14版北大核心
- 《语文建设》 旬刊 14版北大核心
- 《中国绿色画报》 月刊 国家级
- 《社科纵横》季刊 社科类优秀期刊
- 《求索》月刊 14版北大核心期刊
- 《财会月刊》旬刊 14版北大核心
- 《艺术品鉴》 月刊 省级
- 《中华建设》月刊 国家级 建设类优秀期刊
- 《教学与管理》旬刊 北大核心
- 《当代经济》 旬刊 省级
- 《新课程研究》旬刊 省级 教育类优秀学术期
- 《文教资料》 旬刊 省级
- 《学术界》 月刊 双核心
- 《吉林教育》旬刊 省级 教育类学术期刊
- 《中国农业资源与区划》 月刊 14版北大核心
- 《继续教育研究》月刊 北大核心期刊
- 《财经界(学术版)》半月刊 国家级
- 《电影评介》半月刊 14版北大核心
- 《公路交通科技》 月刊 北大核心
- 《新闻传播》月刊 省级 新闻类优秀期刊