大数据环境下基于Hbase的分布式查询优化研究(2)
最后,我们还将对大数据环境下基于Hbase的分布式SQL解析引擎进行性能测试及调优。
2.2 系统架构设计。本文的设计将基于Hbase分布式数据库,设计并实现SQL解析引擎,然后通过Hbase协处理器框架提供的API注入到Hbase服务器并且部署到HRegionServer上,作为Hbase数据查询的分布式SQL解析引擎,即:Hbase Distributed SQL Parse Engine,简称Hbase DSPE。Hbase DSPE中包含四大核心模块:(1)DSPE Client(客户端):提供基于JDBC的SQL客户端。DSPE Client部署在Hbase客户端,其封装了对JDBC的实现,同时将用户的SQL进行必要的检查,并且转换成对Hbase友好的SQL,如包含Row Key条件的Select查询语句。(2)DSPE Master(主服务器):提供分布式SQL解析引擎。DSPE Master部署在Hbase的HRegionServer上,可以将DSPE客户端提交过来的SQL查询请求进行解析,转换为一个或多个HBase能够识别的Scan或者Put操作(Schema转换,SQL schema转换为底层Hbase中数据表的Schema,通过解析SQL语句的方式实现查询或者操作Hbase的数据)。如果是查询请求,就利用Scan编排执行并获取数据,然后将获取回来的数据再根据SQL进行过滤和计算,以生成标准的JDBC结果集,返回给客户端。如果是其他请求,那么就将Hbase的操作结果返回给客户端。整个SQL语句解析与执行完成后的组装通过Hbase协处理器实现。(3)DSPE Coprocessor(协处理器):提供DSPE和Hbase集成的API,通过Hbase协处理器实现。(4)DSPE Common Interface(通用接口):提供公共基础类库以及SQL节点的Java对象。DSPE Common Interface模块也包含一些公共的基础Bean,比如用来表征一行记录的类(Record Class),DSPE Client和DSPE Master都会依赖其提供的类库以及API。
图1是HbaseDSPE中四个主要模块的组织架构图:
图1 DSPE中四个模块的组织架构图
2.3 各模块详细设计:(1)DSPE客户端。DSPE Client提供了一个客户端可嵌入的JDBC驱动。因为实现了SQL语言查询,客户端可以不再使用HBase自带的Client API,而是使用DSPE Client,从而使客户端所需编写的代码量大幅度降低,同时也使Hbase API的易用性、可扩展性大大提高。DSPE Client客户端的设计主要包含以下几个部分:JDBC连接以及驱动开发,SQL提交工具,输入输出的压缩与加密,与ZooKeeper的接口等。此外,DSPE Client也会维护一些Cache来加快对Hbase的访问(使用Hbase的HMemstore),比如HRegion的位置信息。(2)DSPE主服务器。DSPE Master(主服务器)是本设计方案的核心,其中包括DSPE的核心组件SQL解析引擎。DSPE Master的设计基于Hbase API,将DSPE Client提交过来的SQL查询请求进行解析,转换为一个或多个HBase能够识别的Scan(Schema转换,SQL Schema转换为底层Hbase中数据表的Schema,通过解析SQL语句的方式实现Scan Hbase的数据),利用Scan编排执行并获取数据,然后将获取回来的数据再根据SQL进行过滤和计算,以生成标准的JDBC结果集,返回给客户端。整个SQL语句解析与执行完成后的组装通过Hbase协处理器实现。从而达到直接使用HBase API、Coprocessor协处理器与自定义过滤器以提高查询效率。DSPE Master实现的主要功能模块有:SQL解析引擎、SQL语法节点(对象)、多线程分布式查询、查询结果缓存以及对事务(Transaction)的有限支持。(3)DSPE协处理器。DSPE协处理器的实现基于Hbase 协处理器API,将DSPE Master封装成为一个Coprocessor Observer。同时,利用Coprocessor EndPoint实现元数据(Metadata)的处理(类似于Hive中对元数据的处理,主要用来做性能调优),并部署在Hbase的HRegionServer上来实现接收DSPE客户端的请求。(4)DSPE通用接口。DSPE通用接口的实现主要基于Hbase公共基础类库API,提供DSPE需要的公共基础类库以及SQL节点的Java对象。DSPE Common Interface模块也包含一些公共的基础Bean,比如用来表征一行记录的类(Record Class),DSPE Client和DSPE Master都会依赖其提供的类库以及API。此外,还采用开放式架构以支持Hadoop Hbase以外的其他规范,如Hadoop分布式文件系统(HDFS)异构开发环境以及编程模型如Spark。(5)DSPE的查询处理流程及性能测试。DSPE可以通过标注SQL语句来查询Hbase中的表数据,并且支持 为了验证Hbase DSPE在大数据环境下的查询性能,我们使用大规模的数据对Hbase DSPE进行性能测试(1000万条记录行数),并且针对Hive以及Hbase本身进行了基准比较测试。测试环境由6台机器组成Hbase集群,并且部署Hbase DSPE,同时在Hbase集群上安装Hive,使Hbase集群其同时兼做Hive集群。我们可以从表1中看出Hbase DSPE的查询性能要胜过Hive近2.5倍。
3 结束语
本文设计的基于Hbase的SQL解析引擎将提供与传统SQL编程模型完全兼容的分布式查询平台,并且直接使用HBase API和协处理器(Coprocessor),从而实现向外扩展的大数据分布式处理机制。通过性能测试我们可以看Hbase DSPE相对于Hive在查询性能上的优越性,并且对于同样使用了HBase API、协同处理器及自定义过滤器的Impala与OpenTSDB来说,Hbase DSPE进行相似查询的速度预期也会更快。由于使用分布式批处理查询,Hbase DSPE可支持超过1000个并发的查询任务,将大幅度提高服务器的利用率。此外,Hbase DSPE还可以应用Hbase分布式数据库的诸多高级特性,使用户对SQL查询的优化可以通过配置Hbase的各种参数来实现,而不需要进行复杂的SQL查询语句的优化。因此,基于Hbase的SQL解析引擎DSPE是值得进一步深入研究的。
Hbase DSPE未来还计划支持如Cloudera,Spark等分布式数据库以及大数据编程模型,并且逐步在大数据领域的分布式查询应用中进行推广、应用,形成开放的DSPE API接口,努力成为公共的大数据分布式查询解决方案。
参考文献:
[1]张旭中.分布式数据库查询优化技术[D].电子科技大学,2003.
[2]Jeffrey Dean,Sanjay Ghemawat.MapReduce:Simplified Data Processing on Large Clusters.Google,Inc,2004.
[3]Lars George.“Hbase:The Definitive Guide”.1st edition,O'Reilly Media,2008.
[4]http://hbase.apache.org/book/book.html.Apache Hbase Ref Guide.Hbase Website,2012.
[5]李崇欣.分布式数据库HBase快照的设计与实现[D].浙江大学,2011.
[6]Mehul Nalin Vora.Hadoop-HBase for Large-Scale Data.Innovation Labs,PERC Tata Consultancy Services(TCS)Ltd.Mumbai,India,2011.
[7]Chongxin Li.Transforming Relational Database into HBase:A Case Study.Zhejiang University,Hangzhou,China,2011.
[8]Hive.http://hive.apache.org.
[9]Lars George.“Hbase:The Definitive Guide”.1st edition,O'Reilly Media,2008.
期刊库(http://www.zgqkk.com),是一个专门从事期刊推广、投稿辅导的网站。
本站提供如何投稿辅导,寻求投稿辅导合作,快速投稿辅导,投稿辅导格式指导等解决方案:省级投稿辅导/国家级投稿辅导/核心期刊投稿辅导//职称投稿辅导。
【免责声明】本文仅代表作者本人观点,与投稿辅导_期刊发表_中国期刊库专业期刊网站无关。投稿辅导_期刊发表_中国期刊库专业期刊网站站对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。请读者仅作参考,并请自行承担全部责任。
投稿辅导服务咨询与期刊合作加盟
陆老师联系QQ: 913775405(普刊)
蒋老师联系QQ: 867306987(核心)
刘老师联系QQ: 271374912(核心)
联系电话:18015016272
17327192284
投稿辅导投稿邮箱:zgqkk365@126.com
期刊推荐
- 《课程教育研究》 旬刊 国家级
- 《网络空间安全》(信息安全与技术)月刊 国
- 《价值工程》旬刊 国家级 科技统计源期刊
- 《高教论坛》 月刊 省级
- 《法制与社会》旬刊 省级
- 《中国教育学刊》月刊 14版北大核心
- 《语文建设》 旬刊 14版北大核心
- 《中国绿色画报》 月刊 国家级
- 《社科纵横》季刊 社科类优秀期刊
- 《求索》月刊 14版北大核心期刊
- 《财会月刊》旬刊 14版北大核心
- 《艺术品鉴》 月刊 省级
- 《中华建设》月刊 国家级 建设类优秀期刊
- 《教学与管理》旬刊 北大核心
- 《当代经济》 旬刊 省级
- 《新课程研究》旬刊 省级 教育类优秀学术期
- 《文教资料》 旬刊 省级
- 《学术界》 月刊 双核心
- 《吉林教育》旬刊 省级 教育类学术期刊
- 《中国农业资源与区划》 月刊 14版北大核心
- 《继续教育研究》月刊 北大核心期刊
- 《财经界(学术版)》半月刊 国家级
- 《电影评介》半月刊 14版北大核心
- 《公路交通科技》 月刊 北大核心
- 《新闻传播》月刊 省级 新闻类优秀期刊