CN104346447A - 一种面向混合型大数据处理系统的分区连接方法 - Google Patents
一种面向混合型大数据处理系统的分区连接方法 Download PDFInfo
- Publication number
- CN104346447A CN104346447A CN201410585204.6A CN201410585204A CN104346447A CN 104346447 A CN104346447 A CN 104346447A CN 201410585204 A CN201410585204 A CN 201410585204A CN 104346447 A CN104346447 A CN 104346447A
- Authority
- CN
- China
- Prior art keywords
- hive
- join
- data
- hbase
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000012545 processing Methods 0.000 title claims abstract description 16
- 230000008569 process Effects 0.000 claims abstract description 16
- 238000005192 partition Methods 0.000 claims abstract description 13
- 230000005540 biological transmission Effects 0.000 claims abstract description 4
- 230000008676 import Effects 0.000 claims description 8
- 230000007246 mechanism Effects 0.000 claims description 5
- 238000002360 preparation method Methods 0.000 claims description 5
- 230000003247 decreasing effect Effects 0.000 abstract 1
- 238000012482 interaction analysis Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 241000251730 Chondrichthyes Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000012098 association analyses Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000006116 polymerization reaction Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
Abstract
本发明提供一种面向混合型大数据处理系统的分区连接方法,本发明提出的面向混合型大数据处理系统的分区连接方法,能够满足行业大数据针对不同处理系统的交互分析业务应用需求,并且通过分区、coprocessr和mapjoin,大大提高了此类分析的性能,并可以进一步应用于基于join的分组、统计、排序等交互分析。通过确定Hive查询分区,减少参与传输、缓存和join过程的数据量,并且充分利用分布式架构优势,使所有节点的缓存过程并行执行,通过在各节点缓存数据,能够加快join执行效率,并且HBase表的数据量和节点数量能够按需扩展。
Description
技术领域
本发明涉及大数据技术领域, 具体地说是一种面向混合型大数据处理系统的分区连接方法。
背景技术
针对行业大数据业务应用需求,面向数据密集型应用的计算框架和系统不断出现,这些系统仅针对各自的问题域提供解决方案。为了应对行业日益复杂的业务需求,需要在大规模集群或数据中心中综合运用多种处理架构来存储和处理海量数据。因此,当前出现了混合型大数据处理系统,融合了批处理、内存计算、流处理、NoSQL数据库等多种处理模式,如YARN架构,满足行业大数据的实时处理、交互处理、高效检索、深入数据挖掘和商业智能等多样性和多维度需求,在实现资源调度和作业管理分离的基础上,提供对计算、存储和网络等集群资源的统一监控和分配,并解决当前单一数据处理系统普遍存在的管理节点单点失效和安装部署困难等问题,在提高资源利用率的同时促进对大数据技术的全方位有效利用。
在混合型大数据处理系统支持的处理模式中,由于MapReduce、Spark、HBase等都引入了新的编程模型,学习成本较大,因此,基于各类大数据处理系统构建的交互分析应用最为广泛。交互分析的模式和效果与传统数据库应用非常相似的,数据以表的形式存储,应用层采用标准的SQL语句发起各种数据请求,支持对数据扫描、统计、聚合、多表关联等操作的高并发、低延迟的处理。当前出现的基于MapReduce的Hive、基于Spark的Shark都属于这一类交互分析引擎。然而,现有混合型大数据架构中的交互分析引擎,还仅是针对单一的大数据系统,无法实现跨系统的数据处理。例如,当前Hive与HBase中的数据无法直接建立关联,通常的做法是将进行一次数据迁移,在Hive或HBase单一系统中进行,在大量数据情况下造成的数据冗余以及传输延迟都是不可容忍的。为了实现混合型大数据架构中各类处理系统的真正融合,需要研究跨异构系统间的数据交互分析方法,其中比较重要的一种就是关联join分析。
发明内容
本发明的目的是提供一种面向混合型大数据处理系统的分区连接方法。
本发明的目的是按以下方式实现的,本发明提出的面向混合型大数据处理系统的分区连接方法,通过分区、coprocessr和mapjoin方法,大大提高了跨Hive和HBase系统的关联分析性能,能够满足行业大数据针对混合处理系统的交互分析业务应用需求。
面向混合型大数据处理系统基于HBase数据库及基于内存计算引擎的Hive系统构建,交互查询sql语句由客户端发出,包括针对Hive表和HBase表的join操作,以及针对Hive表某个字段的过滤where条件。分区连接方法包括数据准备过程和运行时执行过程。
在数据准备阶段,建立Hive表并按过滤字段分区,按分区导入数据;建立HBase表,将HBase表主键设计为同Hive表一直,并导入数据。
在查询执行阶段客户端Driver解释sql语句,编译执行计划,在客户端构造内存空间、线程池等用于驱动执行的运行时环境。
利用HBase的coprocessor引擎实现分区连接。Coprocessor是一个可构建分布式服务编程模型,在HBase Master和RegionServer进程内的运行时框架执行用户代码,在HBase内实现灵活、轻量级的分布式数据处理功能,并可以随HBase自动扩展和负载均衡等。Coprocessor分为Observer和EndPoint,Observer可以监听HBase Get, Put, Delete, Scan等数据操作,以及元数据和日志操作,可实现类似数据库驱动器的功能;EndPoint属于远过程调用RPC类型的Coprocessor,客户端通过调用PRC接口可按每个row/range的位置自动分片为多个并行的RPC调用,实现类似数据库中存储过程的功能。
在分区连接方法中,客户端调用HBase的Endpoint类型coprocessor ServerCachingProtocal进行数据缓存。在ServerCachingProtocal的实现中,每个RegionServer调用Hive驱动查询分区数据,Hive引擎仅仅针对所需分区执行查询操作,返回结果后,以HashMap形式缓存在内存cache中,并通知客户端。
客户端Driver调用设定scan的类型为join,发出scan调用原语;每个RegionServer的Obesever型coprocessor regionseverScanObserver拦截该join请求,调用MapJoinScanner;MapJoinScanner执行Hash join算法。针对在本RegionSever上扫描结果result中的每个tuple,判断是否在cache中存在相同key的数据,如有,则进行jion处理;各个RegionServer将join结果返回客户端。
上述方法通过确定Hive查询分区,能够大大减少参与数据传输、数据缓存和join过程的数据量,并且充分利用大数据系统的分布式架构使所有节点的缓存过程同时并行执行,减少处理延迟、避免缓存溢出。此外,通过在各节点缓存数据,能够加快join执行效率,并且HBase表的数据量和节点数量能够按需扩展。
本发明的目的有益效果是:本发明提出的面向混合型大数据处理系统的分区连接方法,能够满足行业大数据针对不同处理系统的交互分析业务应用需求,并且通过分区、coprocessr和mapjoin,大大提高了此类分析的性能,并可以进一步应用于基于join的分组、统计、排序等交互分析。
附图说明
图1 是分区连接运行机制和处理过程图。
具体实施方式
参照说明书附图对本发明的作以下详细地说明。
以下将结合附图及实施例来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决技术问题,并达成技术效果的实现过程能充分理解并据以实施。需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征的相互均在本发明的保护范围之内。
本发明以一个具体的执行过程为例说明本系统的运行机制和处理过程。
设有Hive系统的表hive_table,包括主键id,分区字段part,内容字段value, HBase系统中表hbase_table, 包括主键id,内容字段value。对此执行如下join查询;
select id,a.value,b.value from hive_table as a
join hbase_table as b on a.id=b.id
where a.part=’2’
1. 数据准备过程
(1)建立Hive表并分区,按分区导入数据。
create table hive_table (
id int,
value string
)
partitioned by(part string)
stored as rcfile;
from datasources
insert overwrite table hive_table partition(part =“1”)
select id, value where part =“1”
insert overwrite table hive_table partition(part =“2”)
select id, value where part =“2”
insert overwrite table hive_table partition(part =“3”)
select id, value where part =“3”;
(2)建立hbase表并导入数据;
create ‘hbase_table’,‘cf’
put ‘hbase_table’, ’001’ ‘cf:value’, ’v’
2. 分区连接方法
select id,a.value,b.value from hive_table as a join hbase_table as b on a.id=b.id where a.part=’2’
分区连接的运行机制和处理过程,如图1所示:
(1)客户端Driver解释sql语句,编译执行计划,在客户端构造内存空间、线程池等用于驱动执行的运行时环境;
(2)客户端调用ServerCachingProtocal进行数据缓存, 在ServerCachingProtocal的实现中,每个RegionServer调用hive驱动查询分区数据,Hive引擎仅仅针对所需分区执行查询操作,返回结果后,以HashMap形式缓存在内存cache中,并通知客户端
ServerCache cache = hashClient.addHashCache(“Hive”,” select id,a.value from hive_table as a where a.part=’2’”)
(3)客户端Driver调用设定scan的类型为join,发出scan调用 原语
(4)每个RegionServer的regionseverScanObserver拦截请求,判断为join,调用MapJoinScanner,
(5)MapJoinScanner执行Hash join算法。即针对在本RegionSever上扫描结果result中的每个tuple,判断是否在cache中存在相同key的数据,如有,则进行jion处理。
for(Tuple tupleA: result)
key=getkey(tupleA)
tupleB=cache.get(key)!
if (tupleB!=null)join(tupleA,tupleB)
(6)各个RegionServer将join结果返回客户端。
上例partition方法与完全map join方式相比,减少了数据传输量和参与join的数据量,避免了HBase端缓存溢出的可能性,处理性能提高1/3以上。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (1)
1.一种面向混合型大数据处理系统的分区连接方法, 其特征在于, 通过确定Hive查询分区,减少参与传输、缓存和join过程的数据量,并且充分利用分布式架构优势,使所有节点的缓存过程并行执行,通过在各节点缓存数据,能够加快join执行效率,并且HBase表的数据量和节点数量能够按需扩展,其中:
1)在数据准备阶段,建立Hive表并按过滤字段分区,按分区导入数据;建立HBase表,将HBase表主键设计为同Hive表一致,并导入数据;
2)在查询执行阶段,客户端Driver解释sql语句,编译执行计划,在客户端构造内存空间、线程池用于驱动执行的运行时环境;
3)在分区连接方法中,客户端调用HBase的Endpoint类型coprocessor ServerCachingProtocal进行数据缓存,在ServerCachingProtocal的实现中,每个RegionServer调用Hive驱动查询分区数据,Hive引擎仅仅针对所需分区执行查询操作,返回结果后,以HashMap形式缓存在内存cache中,并通知客户端;
4)客户端Driver调用设定scan的类型为join,发出scan调用原语;每个RegionServer的Obesever型coprocessor regionseverScanObserver拦截该join请求,调用MapJoinScanner;MapJoinScanner执行Hash join算法,针对在本RegionSever上扫描结果result中的每个tuple,判断是否在cache中存在相同key的数据,如有,则进行jion处理;各个RegionServer将join结果返回客户端;
系统的运行机制和处理过程如下:
设有Hive系统的表hive_table,包括主键id,分区字段part,内容字段value, HBase系统中表hbase_table, 包括主键id,内容字段value,对此执行如下join查询;
select id,a.value,b.value from hive_table as a
join hbase_table as b on a.id=b.id
where a.part=’2’
1.数据准备过程
(1)建立Hive表并分区,按分区导入数据;
create table hive_table (
id int,
value string
)
partitioned by(part string)
stored as rcfile;
from datasources
insert overwrite table hive_table partition(part =“1”)
select id, value where part =“1”
insert overwrite table hive_table partition(part =“2”)
select id, value where part =“2”
insert overwrite table hive_table partition(part =“3”)
select id, value where part =“3”;
(2)建立hbase表并导入数据
create ‘hbase_table’,‘cf’
put ‘hbase_table’, ’001’ ‘cf:value’, ’v’
2.分区连接方法
select id,a.value,b.value from hive_table as a join hbase_table as b on a.id=b.id where a.part=’2’
分区连接的运行机制和处理过程:
(1)客户端Driver解释sql语句,编译执行计划,在客户端构造内存空间、线程池等用于驱动执行的运行时环境;
(2)客户端调用ServerCachingProtocal进行数据缓存, 在ServerCachingProtocal的实现中,每个RegionServer调用hive驱动查询分区数据,Hive引擎仅仅针对所需分区执行查询操作,返回结果后,以HashMap形式缓存在内存cache中,并通知客户端;
ServerCache cache = hashClient.addHashCache(“Hive”,” select id,a.value from hive_table as a where a.part=’2’”)
(3)客户端Driver调用设定scan的类型为join,发出scan调用 原语;
(4)每个RegionServer的regionseverScanObserver拦截请求,判断为join,调用MapJoinScanner;
(5)MapJoinScanner执行Hash join算法,即针对在本RegionSever上扫描结果result中的每个tuple,判断是否在cache中存在相同key的数据,如有,则进行jion处理:
for(Tuple tupleA: result)
key=getkey(tupleA)
tupleB=cache.get(key)!
if (tupleB!=null)join(tupleA,tupleB)
(6)各个RegionServer将join结果返回客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410585204.6A CN104346447A (zh) | 2014-10-28 | 2014-10-28 | 一种面向混合型大数据处理系统的分区连接方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410585204.6A CN104346447A (zh) | 2014-10-28 | 2014-10-28 | 一种面向混合型大数据处理系统的分区连接方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104346447A true CN104346447A (zh) | 2015-02-11 |
Family
ID=52502038
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410585204.6A Pending CN104346447A (zh) | 2014-10-28 | 2014-10-28 | 一种面向混合型大数据处理系统的分区连接方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104346447A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106293938A (zh) * | 2016-08-05 | 2017-01-04 | 飞思达技术(北京)有限公司 | 解决大数据计算过程中数据倾斜的方法 |
CN106528810A (zh) * | 2016-11-18 | 2017-03-22 | 党玉龙 | 一种融合异构数据便于快速大数据分析的方法 |
CN106980906A (zh) * | 2017-03-19 | 2017-07-25 | 国网福建省电力有限公司 | 一种基于spark的Ftrl电压预测方法 |
CN107368477A (zh) * | 2016-05-11 | 2017-11-21 | 北京京东尚科信息技术有限公司 | 基于HBase协处理器的类SQL查询的方法和系统 |
CN107491544A (zh) * | 2017-08-25 | 2017-12-19 | 上海德拓信息技术股份有限公司 | 一种增强非关系型数据库分析能力的数据处理平台 |
CN108241724A (zh) * | 2017-05-11 | 2018-07-03 | 新华三大数据技术有限公司 | 一种元数据管理方法和装置 |
CN117033004A (zh) * | 2023-10-10 | 2023-11-10 | 苏州元脑智能科技有限公司 | 负载均衡方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120182891A1 (en) * | 2011-01-19 | 2012-07-19 | Youngseok Lee | Packet analysis system and method using hadoop based parallel computation |
CN103268336A (zh) * | 2013-05-13 | 2013-08-28 | 刘峰 | 一种快数据和大数据结合的数据处理方法及其系统 |
CN103440288A (zh) * | 2013-08-16 | 2013-12-11 | 曙光信息产业股份有限公司 | 一种大数据存储方法及装置 |
CN103678519A (zh) * | 2013-11-29 | 2014-03-26 | 中国科学院计算技术研究所 | 一种支持Hive DML增强的混合存储系统及其方法 |
CN103729453A (zh) * | 2014-01-02 | 2014-04-16 | 浪潮电子信息产业股份有限公司 | 一种HBase表联合查询优化的方法 |
-
2014
- 2014-10-28 CN CN201410585204.6A patent/CN104346447A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120182891A1 (en) * | 2011-01-19 | 2012-07-19 | Youngseok Lee | Packet analysis system and method using hadoop based parallel computation |
CN103268336A (zh) * | 2013-05-13 | 2013-08-28 | 刘峰 | 一种快数据和大数据结合的数据处理方法及其系统 |
CN103440288A (zh) * | 2013-08-16 | 2013-12-11 | 曙光信息产业股份有限公司 | 一种大数据存储方法及装置 |
CN103678519A (zh) * | 2013-11-29 | 2014-03-26 | 中国科学院计算技术研究所 | 一种支持Hive DML增强的混合存储系统及其方法 |
CN103729453A (zh) * | 2014-01-02 | 2014-04-16 | 浪潮电子信息产业股份有限公司 | 一种HBase表联合查询优化的方法 |
Non-Patent Citations (3)
Title |
---|
BIGDATA-余建新: "Hive整合HBase——通过Hive读/写 HBase中的表", 《HTTP://BLOG.CSDN.NET/AARONHADOOP/ARTICLE/DETAILS/28398157?UTM_SOURCE=TUICOOL&UTM_MEDIUM=REFERRAL》 * |
TOBYQIU: "Hive Join 优化", 《HTTP://ITINDEX.NET/DETAIL/48877-HIVE-JOIN-%E4%BC%98%E5%8C%96?UTM_SOURCE=TUICOOL&UTM_MEDIUM=REFERRAL》 * |
VAH101: "hive与hbase集成", 《HTTP://BLOG.CSDN.NET/VAH101/ARTICLE/DETAILS/22597341》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107368477A (zh) * | 2016-05-11 | 2017-11-21 | 北京京东尚科信息技术有限公司 | 基于HBase协处理器的类SQL查询的方法和系统 |
CN106293938A (zh) * | 2016-08-05 | 2017-01-04 | 飞思达技术(北京)有限公司 | 解决大数据计算过程中数据倾斜的方法 |
CN106528810A (zh) * | 2016-11-18 | 2017-03-22 | 党玉龙 | 一种融合异构数据便于快速大数据分析的方法 |
CN106528810B (zh) * | 2016-11-18 | 2021-07-13 | 党玉龙 | 一种融合异构数据便于快速大数据分析的方法 |
CN106980906A (zh) * | 2017-03-19 | 2017-07-25 | 国网福建省电力有限公司 | 一种基于spark的Ftrl电压预测方法 |
CN106980906B (zh) * | 2017-03-19 | 2020-10-13 | 国网福建省电力有限公司 | 一种基于spark的Ftrl电压预测方法 |
CN108241724A (zh) * | 2017-05-11 | 2018-07-03 | 新华三大数据技术有限公司 | 一种元数据管理方法和装置 |
CN107491544A (zh) * | 2017-08-25 | 2017-12-19 | 上海德拓信息技术股份有限公司 | 一种增强非关系型数据库分析能力的数据处理平台 |
CN107491544B (zh) * | 2017-08-25 | 2020-12-29 | 上海德拓信息技术股份有限公司 | 一种增强非关系型数据库分析能力的数据处理平台 |
CN117033004A (zh) * | 2023-10-10 | 2023-11-10 | 苏州元脑智能科技有限公司 | 负载均衡方法、装置、电子设备及存储介质 |
CN117033004B (zh) * | 2023-10-10 | 2024-02-09 | 苏州元脑智能科技有限公司 | 负载均衡方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104346447A (zh) | 一种面向混合型大数据处理系统的分区连接方法 | |
CN103678609B (zh) | 一种基于分布式关系‑对象映射处理的大数据查询的方法 | |
CN104391957A (zh) | 一种针对混合型大数据处理系统的数据交互分析方法 | |
CN109492040B (zh) | 一种适用于数据中心海量短报文数据处理的系统 | |
CN105765578B (zh) | 分布式文件系统中的数据的并行访问 | |
Yan et al. | Incmr: Incremental data processing based on mapreduce | |
CN103246749B (zh) | 面向分布式计算的矩阵数据库系统及其查询方法 | |
US20130346446A9 (en) | Parallel processing of continuous queries on data streams | |
CN108885641B (zh) | 高性能查询处理和数据分析 | |
CN104063486A (zh) | 一种大数据分布式存储方法和系统 | |
CN103631870A (zh) | 一种用于大规模分布式数据处理的系统及其方法 | |
CN107545014A (zh) | 基于Storm的流计算即时处理系统 | |
Yang et al. | Huge: An efficient and scalable subgraph enumeration system | |
US9836516B2 (en) | Parallel scanners for log based replication | |
US20150363467A1 (en) | Performing an index operation in a mapreduce environment | |
Aguilar-Saborit et al. | POLARIS: the distributed SQL engine in azure synapse | |
CN105786918B (zh) | 基于数据载入存储空间的数据查询方法和装置 | |
CN107480202B (zh) | 一种用于多并行处理框架的数据处理方法及装置 | |
CN111404818B (zh) | 一种面向通用多核网络处理器的路由协议优化方法 | |
Trigonakis et al. | {aDFS}: An Almost {Depth-First-Search} Distributed {Graph-Querying} System | |
CN112269887A (zh) | 一种基于图数据库的分布式系统 | |
Chandramouli et al. | Quill: Efficient, transferable, and rich analytics at scale | |
Elshawi et al. | Big graph processing systems: State-of-the-art and open challenges | |
CN116431635A (zh) | 基于湖仓一体的配电物联网数据实时处理系统及方法 | |
CN108319604A (zh) | 一种hive中大小表关联的优化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150211 |
|
WD01 | Invention patent application deemed withdrawn after publication |