一种基于列存储的大数据并行处理系统及方法技术方案

技术编号:9794555 阅读:152 留言:0更新日期:2014-03-21 19:09
一种基于列存储的大数据并行处理系统及方法,涉及大数据处理领域,包括客户端、主控节点和多个数据节点,所述主控节点包括HBase主控制器和SQL主引擎,HBase主控制器负责管理和维护所述数据节点,SQL主引擎负责SQL语句的解析并将SQL语句继续向数据节点进行分发;每个所述数据节点包括HBase分区节点和SQL从引擎,HBase分区节点负责每个数据节点上数据的存储和管理,SQL从引擎负责SQL在该数据节点的解析和执行,主控节点和数据节点均包括HBase表,还分别包括SQL表。本发明专利技术适合大规模数据量的环境,提供更完善的结构化关系数据模型的SQL接口。

【技术实现步骤摘要】
一种基于列存储的大数据并行处理系统及方法
本专利技术涉及大数据处理领域,具体来讲是一种基于列存储的大数据并行处理系统及方法。
技术介绍
随着移动互联网、智能终端、物联网、云计算以及智慧城市的普及,人们逐渐的进入了“大数据”时代。大数据是规模非常巨大和复杂的数据集,数据量达到PB、EB或ZB的级别后,传统数据库管理工具处理起来面临很多问题,比如说获取、存储、检索和分析等。大数据引发了一些问题,如对数据库高并发读写要求、对海量数据的高效率存储和访问需求、对数据库高可扩展性和高可用性的需求,传统数据库以及数据仓库技术显得力不从心。Hadoop是一个能够对大量数据进行分布式处理的开源软件框架,Hadoop带来了廉价的处理大数据的能力。Hadoop是一个庞大的生态系统,为处理大数据提供了各种工具和平台。在Hadoop生态系统中Hive扮演数据仓库的角色,Hive的核心是将结构化查询语言接口转化为MapReduce任务,直接对Hadoop分布式文件系统上的保存的文件进行分析,由于文件没有进行结构化的组织,而MapReduce本身非常耗时,因此Hive在性能上通常无法满足用户需求。HBase是一个高可靠性、高性能、可伸缩的、面向列存储的分布式数据库系统,具有非常好的查询性能和扩展性。HBase以表的形式存储数据,表由行和列族组成,每个列族(columnfamily)又有若干列组成;HBase中可以有任意多个表,这由用户决定,如表1所示,为一个HBase表,包括行主键(rowkey)和列族1,列族1中具有列1和列2。表1在HBase表中,用行主键(rowkey)来检索表中的记录。访问HBase表中的行,可以通过三种方式:通过单个主键访问、通过主键的范围访问或者全表扫描;存储时,数据按照行主键的字典序排序存储。HBase的目标就是快速在主机内数十亿行数据中定位所需的数据并访问它。但是HBase的缺点是不能提供结构化语言查询接口。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种基于列存储的大数据并行处理系统及方法,适合大规模数据量的环境,提供更完善的结构化关系数据模型的SQL接口。为达到以上目的,本专利技术提供一种基于列存储的大数据并行处理系统,包括客户端、主控节点和多个数据节点,所述主控节点包括HBase主控制器和SQL主引擎,HBase主控制器负责管理和维护所述数据节点,SQL主引擎负责SQL语句的解析并将SQL语句继续向数据节点进行分发;每个所述数据节点包括HBase分区节点和SQL从引擎,HBase分区节点负责每个数据节点上数据的存储和管理,SQL从引擎负责SQL在该数据节点的解析和执行,主控节点和数据节点均包括HBase表,还分别包括SQL表。在上述技术方案的基础上,所述SQL主引擎和SQL从引擎组成并行SQL查询引擎,SQL主引擎和SQL从引擎之间的通信由其内部会话完成。在上述技术方案的基础上,所述客户端通过主控节点通信来访问系统数据。在上述技术方案的基础上,所述HBase表中的元素是SQL表中元素的映射,其中SQL表的名称不做任何变换映射为HBase表的名称,SQL表中非主键的列映射为HBase中列族中的列,SQL表中的主键列映射为HBase中的行主键。本专利技术还提供一种基于列存储的大数据并行处理方法,包括如下步骤:S1.客户端发送一个SQL语句给主控节点;S2.主控节点解析所述SQL语句,判断所述SQL语句是数据定义类型的语句还是数据操作类型的语句,若是数据定义类型的语句,进入S3,若是数据操作类型的语句,进入S4;S3.主控节点对SQL语句解析后,修改元数据信息并存放在列存储的元数据表内;并将SQL语句映射到HBase表,并完成与SQL语句相应的操作;最后,主控节点通知各数据节点重新获取元数据信息;S4.主控节点根据SQL语句的解析结果判断涉及的范围,若涉及索引的查找,则确定索引表的范围;若涉及主表的查找,确定主表的范围;根据所涉及表的确定的范围,得出该SQL语句所涉及分区名字列表以及这些分区对应的分区节点的名字列表,将该SQL语句及分区名字列表逐个发送到对应的分区节点,进入S5;S5.每个数据节点收到该SQL语句及分区名字列表,为SQL语句所涉及的每个分区启动一个线程,每个线程进行SQL语句解析以及对应的查询和计算,执行完成后汇总结果,将结果返回至主控节点;S6.所述主控节点对所有数据节点的结果进行合并操作,合并的结果返回给客户端。在上述技术方案的基础上,所述数据定义类型语句涉及创建表、创建索引、删除表、删除索引或修改表的处理;所述数据操作类型语句涉及数据插入、数据删除、数据查询的处理。在上述技术方案的基础上,所述S3中,将SQL语句映射到HBase表,映射规则为:所述HBase表中的元素是SQL表中元素的映射,其中SQL表的名称不做任何变换映射为HBase表的名称,SQL表中非主键的列映射为HBase中列族中的列,SQL表中的主键列映射为HBase中的行主键。在上述技术方案的基础上,所述确定索引表的范围在HBase里表现为主表的主键的一个范围,或者是索引表的主键的范围:<开始值,结束值>;根据这个范围计算出该SQL语句的操作是在哪个分区节点的分区上,计算结果是一系列分区节点的名字列表,以及该分区节点上涉及该SQL语句操作的分区。在上述技术方案的基础上,所述数据节点将接收到的分区信息记录下来。本专利技术的有益效果在于:在低成本的分布式集群上实现列存储的并行查询和分析的数据仓库系统,该系统通过在HBase这种列存储数据库上提供并行的SQL查询机制,并结构化关系数据模型,不仅可以满足超大规模的的数据处理性能,实现了一种可水平扩展的、完全并行的数据仓库系统,还提供了标准的SQL接口,简单易用。附图说明图1为本专利技术基于列存储的大数据并行处理系统的分布式架构;图2为本专利技术基于列存储的大数据并行处理的方法流程图。具体实施方式以下结合附图及实施例对本专利技术作进一步详细说明。如图1所示,本专利技术基于列存储的大数据并行处理系统,采用分布式体系架构,包括客户端、主控节点和多个数据节点,每个节点都可用普通的X86体系架构的服务器进行构建,数据节点的数量根据业务需求可以线性扩展。所述主控节点包括HBase主控制器和SQL主引擎,HBase主控制器负责管理和维护所述数据节点,SQL主引擎负责SQL语句的解析,并将SQL语句继续向数据节点进行分发。HBase分区节点负责每个数据节点上数据的存储和管理,SQL从引擎负责SQL在该数据节点的解析和执行,主控节点和数据节点均包括HBase表,还分别包括SQL表。所述客户端通过主控节点通信来访问系统数据,或者通过和数据节点通信来访问系统数据。所述SQL主引擎和SQL从引擎一起组成了系统的并行SQL查询引擎,在本系统中,SQL主引擎和SQL从引擎之间的通信由其内部会话完成,不经过HBase的远程调用机制,因此避免了由HBase远程调用机制引起的系统超时问题。本专利技术SQL主引擎和SQL从引擎负责SQL的解析和计算,SQL的解析和计算采用与底层存储无关的技术,可支持多种存储方式,能够支持完整的SQL语法。SQL引擎采用面向对象的方法来实现各种SQL操作,在各种SQL操作中本文档来自技高网
...
一种基于列存储的大数据并行处理系统及方法

【技术保护点】
一种基于列存储的大数据并行处理系统,包括客户端、主控节点和多个数据节点,其特征在于:所述主控节点包括HBase主控制器和SQL主引擎,HBase主控制器负责管理和维护所述数据节点,SQL主引擎负责SQL语句的解析并将SQL语句继续向数据节点进行分发;每个所述数据节点包括HBase分区节点和SQL从引擎,HBase分区节点负责每个数据节点上数据的存储和管理,SQL从引擎负责SQL在该数据节点的解析和执行,主控节点和数据节点均包括HBase表,还分别包括SQL表。

【技术特征摘要】
1.一种基于列存储的大数据并行处理系统,包括客户端、主控节点和多个数据节点,其特征在于:所述主控节点包括HBase主控制器和SQL主引擎,HBase主控制器负责管理和维护所述数据节点,SQL主引擎负责SQL语句的解析并将SQL语句继续向数据节点进行分发;每个所述数据节点包括HBase分区节点和SQL从引擎,HBase分区节点负责每个数据节点上数据的存储和管理,SQL从引擎负责SQL在该数据节点的解析和执行,主控节点和数据节点均包括HBase表,还分别包括SQL表;进行大数据并行处理时,客户端发送一个SQL语句给主控节点;主控节点解析所述SQL语句,判断所述SQL语句是数据定义类型的语句还是数据操作类型的语句;若是数据定义类型的语句,主控节点对SQL语句解析后,修改元数据信息并存放在列存储的元数据表内;并将SQL语句映射到HBase表,并完成与SQL语句相应的操作;最后,主控节点通知各数据节点重新获取元数据信息;若是数据操作类型的语句,主控节点根据SQL语句的解析结果判断涉及的范围,若涉及索引的查找,则确定索引表的范围;若涉及主表的查找,确定主表的范围;根据所涉及表的确定的范围,得出该SQL语句所涉及分区名字列表以及这些分区对应的分区节点的名字列表,将该SQL语句及分区名字列表逐个发送到对应的分区节点,每个数据节点收到该SQL语句及分区名字列表,为SQL语句所涉及的每个分区启动一个线程,每个线程进行SQL语句解析以及对应的查询和计算,执行完成后汇总结果,将结果返回至主控节点;所述主控节点对所有数据节点的结果进行合并操作,合并的结果返回客户端。2.如权利要求1所述的基于列存储的大数据并行处理系统,其特征在于:所述SQL主引擎和SQL从引擎组成并行SQL查询引擎,SQL主引擎和SQL从引擎之间的通信由其内部会话完成。3.如权利要求1所述的基于列存储的大数据并行处理系统,其特征在于:所述客户端通过主控节点通信来访问系统数据。4.如权利要求1所述的基于列存储的大数据并行处理系统,其特征在于:所述HBase表中的元素是SQL表中元素的映射,其中SQL表的名称不做任何变换映射为HBase表的名称,SQL表中非主键的列映射为HBase中列族中的列,SQL表中的主键列映射为HBase中的行主键。5.一种基于权利要求1所述系统的基于列...

【专利技术属性】
技术研发人员:郝俊瑞向智宇高汉松唐业祎郭嘉许德玮王静
申请(专利权)人:武汉邮电科学研究院
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1