CN105893521A - 一种读写分离的HBase入库方法 - Google Patents

一种读写分离的HBase入库方法 Download PDF

Info

Publication number
CN105893521A
CN105893521A CN201610194383.XA CN201610194383A CN105893521A CN 105893521 A CN105893521 A CN 105893521A CN 201610194383 A CN201610194383 A CN 201610194383A CN 105893521 A CN105893521 A CN 105893521A
Authority
CN
China
Prior art keywords
hbase
write
writerserver
read
data
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
Application number
CN201610194383.XA
Other languages
English (en)
Inventor
王勇强
赵智峰
周帅锋
曹俊亮
崔博
李佳宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Fiberhome Software Technology Co Ltd
Original Assignee
Nanjing Fiberhome Software Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing Fiberhome Software Technology Co Ltd filed Critical Nanjing Fiberhome Software Technology Co Ltd
Priority to CN201610194383.XA priority Critical patent/CN105893521A/zh
Publication of CN105893521A publication Critical patent/CN105893521A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Fuzzy Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及数据处理技术领域,尤其涉及一种读写分离的HBase入库方法,写操作时,引入WriterServer进程接收HBaseClient发送的写请求,并且将写请求转换为HFile文件存储在HDFS上,然后通过HBase提供的bulkLoad接口将HFile文件移动到HBase数据目录下。本发明通过将读写请求下发到物理隔离或资源隔离的负责读或写的进程上,避免读写操作互相影响,竞争资源,从而确保在实时入库的同时,有较好的查询性能。其中,引入了WriterServer集群负责接收写请求,实现了对HBase的实时入库,入库效率高。

Description

一种读写分离的HBase入库方法
技术领域
本发明涉及数据处理技术领域,尤其涉及一种读写分离的HBase入库方法。
背景技术
随着大数据技术的发展和应用,HBase逐渐成为业界广泛使用的NoSQL分布式存储系统,它具有高可靠、面向列、开源等特点,已被Facebook、阿里巴巴等公司成功用于生产系统。
目前HBase对外提供两种数据写入方式:
1)批量加载
如图3所示,批量加载依赖于MapReduce框架,运行MapReduce任务,以待入库的数据为输入,将输入数据转换为HFile,存储在HDFS上,再由HBase提供的bulkLoad接口将HFile移动到HBase数据目录下,该方式适合加载大量的离线数据,但是时延大。
2)利用HBase的put接口
如图4所示,入库程序从数据源中获取数据,构造HBase可识别的put结构,调用HBase对外提供的put接口,将数据加载到HBase中。regionServer收到put请求后,会先将数据写到内存中,当内存中的数据超过一定大小或数据被写入内存超过一定时间,regionServer会将内存中的数据写出到文件系统中,形成HFile文件。
现有入库方案的主要问题有:
批量加载需要依赖于MapReduce框架,MapReduce任务比较耗费资源,影响其它进程的稳定运行,无法直接对流式数据入库,只能以固定的文件作为加载任务的输入。由于批量加载需要依赖MapReduce框架,因此数据入库的时延较大,实时性不好。
利用HBase的put接口实时入库程序会持续的对HBase集群进行写操作(put),占用大量资源(如CPU),读操作(get、scan)的性能会受到严重影响。
发明内容
本发明的目的是克服现有技术存在的缺陷,提供一种高效实时的读写分离的HBase入库方法。
实现本发明目的的技术方案是:一种读写分离的HBase入库方法,
写操作时,引入WriterServer进程接收HBaseClient发送的写请求,并且将写请求转换为HFile文件存储在HDFS上,然后通过HBase提供的bulkLoad接口将HFile文件移动到HBase数据目录下;
读操作时,HBaseClient发出读取请求,HBase集群接收读取请求后,将需要的数据返回给HBaseClient。
作为本发明的优化方案,WriterServer进程部署在WriterServer集群上。
作为本发明的优化方案,WriterServer进程部署在regionServer集群上,HBase的regionServer进程用于处理读请求,通过资源隔离技术对读写进程的资源进行隔离。
作为本发明的优化方案,WriterServer进程接收写请求的处理流程为:
1)接收写请求:WriterServer进程接收写请求,检查该写请求是否合法,如果非法则返回错误信息给HBaseClient,如果合法则打开该写请求需要写入的region,将数据写入对应的region中;
2)缓存写入的数据:WriterServer进程会先将写入的数据写到对应region的内存中,缓存起来;
3)生成HFile:当缓存的数据满足内存中的数据大于阈值或者数据被写入到内存中超过设定时间,则会将内存中的数据写出到文件系统中,形成HFile文件;
4)加载HFile到HBase数据目录:将WriterServer进程生成的HFile文件加载到HBase数据目录下,使得WriterServer进程写出的HFile文件可以被HBase集群读写。
作为本发明的优化方案,步骤3)形成的HFile文件被立即加载到HBase数据目录下,使得WriterServer进程写出的HFile文件可以被HBase集群读写。
作为本发明的优化方案,WriterServer进程持续监控HFile文件的个数,当HFile文件的个数超过一定阈值时,步骤3)形成的HFile文件被加载到HBase数据目录下,使得WriterServer进程写出的HFile文件可以被HBase集群读写。
本发明具有积极的效果:本发明通过将读写请求下发到物理隔离或资源隔离的负责读或写的进程上,避免读写操作互相影响,竞争资源,其中,引入了WriterServer集群负责接收写请求,实现了对HBase的实时入库,入库效率高。
附图说明
为了使本发明的内容更容易被清楚地理解,下面根据具体实施例并结合附图,对本发明作进一步详细的说明,其中:
图1是本发明的原理框图;
图2是WriterServer进程接收写请求的处理流程图;
图3是本发明现有技术的原理框图;
图4是本发明现有技术的原理框图。
具体实施方式
如图1所示,一种读写分离的HBase入库方法,写操作时,引入WriterServer进程接收HBaseClient发送的写请求,并且将写请求转换为HFile文件存储在HDFS上,然后通过HBase提供的bulkLoad接口将HFile文件移动到HBase数据目录下;
读操作时,HBaseClient发出读取请求,HBase集群接收读取请求后,将需要的数据返回给HBaseClient。
通过引入WriterServer进程来接收写请求操作,将原本共存于regionServer内的读写请求分离,由WriterServer进程处理写请求,由regionServer进程来处理读请求。其中,将WriterServer进程部署在WriterServer集群上。通过将WriterServer进程和regionServer进程部署在不同的机器上,即通过物理隔离实现了读写分离。
还有一种隔离方法是资源隔离,即将WriterServer进程部署在regionServer集群上,读操作使用regionServer进程,regionServer进程部署在regionServer集群上,通过资源隔离技术如cgroups或Yarn来实现内存、CPU等资源的隔离,从而实现读写分离。
如图2所示,WriterServer进程接收写请求的处理流程为:
1)接收写请求:WriterServer进程接收写请求,检查该写请求是否合法,如果非法则返回错误信息给HBaseClient,如果合法则打开该写请求需要写入的region,将数据写入对应的region中;
2)缓存写入的数据:WriterServer进程会先将写入的数据写到对应region的内存中,缓存起来;
3)生成HFile:当缓存的数据满足内存中的数据大于阈值或者数据被写入到内存中超过设定时间,则会将内存中的数据写出到文件系统中,形成HFile文件;
4)加载HFile到HBase数据目录:将WriterServer进程生成的HFile文件加载到HBase数据目录下,使得WriterServer进程写出的HFile文件可以被HBase集群读写。
步骤3)形成的HFile文件被立即加载到HBase数据目录下,使得WriterServer进程写出的HFile文件可以被HBase集群读写。
WriterServer进程持续监控HFile文件的个数,当HFile文件的个数超过一定阈值时,步骤3)形成的HFile文件被加载到HBase数据目录下,使得WriterServer进程写出的HFile文件可以被HBase集群读写。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (6)

1.一种读写分离的HBase入库方法,其特征在于:
写操作时,引入WriterServer进程接收HBaseClient发送的写请求,并且将写请求转换为HFile文件存储在HDFS上,然后通过HBase提供的bulkLoad接口将HFile文件移动到HBase数据目录下;
读操作时,HBaseClient发出读取请求,HBase集群接收读取请求后,将需要的数据返回给HBaseClient。
2.根据权利要求1所述的一种读写分离的HBase入库方法,其特征在于:所述的WriterServer进程部署在WriterServer集群上。
3.根据权利要求1所述的一种读写分离的HBase入库方法,其特征在于:所述的WriterServer进程部署在regionServer集群上,所述的读操作使用regionServer进程,所述的regionServer进程部署在regionServer集群上。
4.根据权利要求1所述的一种读写分离的HBase入库方法,其特征在于:所述的WriterServer进程接收写请求的处理流程为:
1)接收写请求:所述的WriterServer进程接收写请求,检查该写请求是否合法,如果非法则返回错误信息给HBaseClient,如果合法则打开该写请求需要写入的region,将数据写入对应的region中;
2)缓存写入的数据:WriterServer进程会先将写入的数据写到对应region的内存中,缓存起来;
3)生成HFile:当缓存的数据满足内存中的数据大于阈值或者数据被写入到内存中超过设定时间,则会将内存中的数据写出到文件系统中,形成HFile文件;
4)加载HFile到HBase数据目录:将WriterServer进程生成的HFile文件加载到HBase数据目录下,使得WriterServer进程写出的HFile文件可以被HBase集群读写。
5.根据权利要求4所述的一种读写分离的HBase入库方法,其特征在于:步骤3)形成的HFile文件被立即加载到HBase数据目录下,使得WriterServer进程写出的HFile文件可以被HBase集群读写。
6.根据权利要求4所述的一种读写分离的HBase入库方法,其特征在于:WriterServer进程持续监控HFile文件的个数,当HFile文件的个数超过一定阈值时,步骤3)形成的HFile文件被加载到HBase数据目录下,使得WriterServer进程写出的HFile文件可以被HBase集群读写。
CN201610194383.XA 2016-03-31 2016-03-31 一种读写分离的HBase入库方法 Pending CN105893521A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610194383.XA CN105893521A (zh) 2016-03-31 2016-03-31 一种读写分离的HBase入库方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610194383.XA CN105893521A (zh) 2016-03-31 2016-03-31 一种读写分离的HBase入库方法

Publications (1)

Publication Number Publication Date
CN105893521A true CN105893521A (zh) 2016-08-24

Family

ID=57014775

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610194383.XA Pending CN105893521A (zh) 2016-03-31 2016-03-31 一种读写分离的HBase入库方法

Country Status (1)

Country Link
CN (1) CN105893521A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107229673A (zh) * 2017-04-20 2017-10-03 努比亚技术有限公司 Hbase数据库的数据写入方法、Hbase终端及存储介质
CN108897748A (zh) * 2018-04-18 2018-11-27 顺丰科技有限公司 一种HBase系统监控方法及HBase系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102622427A (zh) * 2012-02-27 2012-08-01 杭州闪亮科技有限公司 读写分离数据库的方法及系统
CN102682043A (zh) * 2011-04-14 2012-09-19 天脉聚源(北京)传媒科技有限公司 一种分布式数据库连接方法
CN103473267A (zh) * 2013-08-09 2013-12-25 深圳市中科新业信息科技发展有限公司 数据存储查询方法及系统
CN103617211A (zh) * 2013-11-20 2014-03-05 浪潮电子信息产业股份有限公司 一种HBase加载数据的导入方法
CN104750757A (zh) * 2013-12-31 2015-07-01 中国移动通信集团公司 一种基于HBase的数据存储方法和设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102682043A (zh) * 2011-04-14 2012-09-19 天脉聚源(北京)传媒科技有限公司 一种分布式数据库连接方法
CN102622427A (zh) * 2012-02-27 2012-08-01 杭州闪亮科技有限公司 读写分离数据库的方法及系统
CN103473267A (zh) * 2013-08-09 2013-12-25 深圳市中科新业信息科技发展有限公司 数据存储查询方法及系统
CN103617211A (zh) * 2013-11-20 2014-03-05 浪潮电子信息产业股份有限公司 一种HBase加载数据的导入方法
CN104750757A (zh) * 2013-12-31 2015-07-01 中国移动通信集团公司 一种基于HBase的数据存储方法和设备

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
TOMWHITE: "《Hadoop权威指南》", 31 January 2015 *
张水平,等: "《云计算原理及应用技术》", 30 April 2014 *
董西成: "《Hadoop技术内幕 深入解析YARN架构设计与实现原理》", 31 January 2014 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107229673A (zh) * 2017-04-20 2017-10-03 努比亚技术有限公司 Hbase数据库的数据写入方法、Hbase终端及存储介质
CN108897748A (zh) * 2018-04-18 2018-11-27 顺丰科技有限公司 一种HBase系统监控方法及HBase系统

Similar Documents

Publication Publication Date Title
US9619430B2 (en) Active non-volatile memory post-processing
CN107247808B (zh) 一种分布式NewSQL数据库系统及图片数据查询方法
CN110442560B (zh) 一种日志重演方法、装置、服务器和存储介质
US9836516B2 (en) Parallel scanners for log based replication
US10387258B2 (en) Method and apparatus for processing redo data in database
CN104731569B (zh) 一种数据处理方法及相关设备
EP2500831A1 (en) Method and apparatus for accessing database, database application system
US20160117116A1 (en) Electronic device and a method for managing memory space thereof
CN107608627B (zh) 一种远端数据分级存储方法、电子设备及存储介质
CN103500120A (zh) 基于多线程异步双写的分布式缓存高可用处理方法及系统
CN104881466A (zh) 数据分片的处理以及垃圾文件的删除方法和装置
CN107357885B (zh) 数据写入方法及装置、电子设备、计算机存储介质
CN103593298A (zh) 内存回收方法和装置
US9304946B2 (en) Hardware-base accelerator for managing copy-on-write of multi-level caches utilizing block copy-on-write differential update table
US20150347470A1 (en) Run-time decision of bulk insert for massive data loading
CN102915344B (zh) 一种sql语句处理方法及装置
CN113377868A (zh) 一种基于分布式kv数据库的离线存储系统
US20190163536A1 (en) Dynamic container-based application resource tuning and resizing
CN111416825A (zh) 线程间无锁日志管理方法和系统、终端、存储介质
CN105302869A (zh) 一种HBase二级索引查询和存储系统及其查询方法
CN112416654A (zh) 一种数据库日志重演方法、装置、设备及存储介质
CN105893521A (zh) 一种读写分离的HBase入库方法
US10860472B2 (en) Dynamically deallocating memory pool subinstances
CN105205162A (zh) HBase二级索引存储和查询系统及其查询方法
CN105868370A (zh) 读写分离的HBase入库装置及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20160824