CN103678650A - 一种基于thrift服务的HBase安全插件 - Google Patents
一种基于thrift服务的HBase安全插件 Download PDFInfo
- Publication number
- CN103678650A CN103678650A CN201310716989.1A CN201310716989A CN103678650A CN 103678650 A CN103678650 A CN 103678650A CN 201310716989 A CN201310716989 A CN 201310716989A CN 103678650 A CN103678650 A CN 103678650A
- Authority
- CN
- China
- Prior art keywords
- hbase
- privacy
- row
- service
- information
- 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
Images
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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于thrift服务的HBase安全插件,该插件提供了14个与HBase相关的安全HBase服务,4个与配置相关的安全HBase服务。HBase安全插件的基本配置信息存储在本地文件中,服务启动时加载,HBase连接信息文件存储与HBase的连接相关的信息,主要包括Zookeeper集群的主机名列表、Zookeeper的端口信息。通过HBase连接信息,安全HBase服务可以与HBase服务进行通信并操作HBase中的表。HBase安全插件的安全策略信息以Json格式保存在Zookeeper中,使得系统具有强一致性、高可靠性。通过本发明能去私隐化,对私隐数据加密,而且部署简单,运行高效。
Description
技术领域
本发明涉及大数据技术领域,尤其涉及一种基于thrift服务的HBase安全插件。
背景技术
随着云计算、移动互联网、物联网的崛起与发展,大数据的时代已经来临。HDFS、MapReduce、HBase作为Hadoop的核心组成部分,在大数据计算与存储领域处在无可替代的地位。
HBase作为分布式数据库,在Hadoop框架中具有不可替代的地位,具有优越的NoSQL分布式数据库性能。但是,由于HBase更关注于性能方面的优化与处理,而忽略信息安全方面的隐患,使得存储在HBase数据库里面的数据存在数据泄露的风险。因此,对HBase进行信息安全方面的改进与优化,有其实用价值与经济效益。
HBase,Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,一个分布式的、面向列的开源数据库,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。
Hbase的优点:
(1)列可以动态增加,并且列为空就不存储数据,节省了存储空间;
(2)自动切分数据,使得数据存储自动具有水平扩展性;
(3)可以提供高并发读写操作的支持。
Hbase的缺点:
(1)不能支持条件查询,只支持按照Row Key来查询。
(2)存在HMaster节点的单点故障问题,当HMaster宕机后,某些服务会停止,例如创建表、Region的Split操作等。RegionServer的读写在短时间内仍会继续运行,不过只是短时间。
thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。它结合了功能强大的软件堆栈和代码生成引擎,以构建在C++,Java,Python,PHP,Ruby,Erlang,Perl,Haskell,C#,Cocoa,JavaScript,Node.js,Smalltalk等编程语言间无缝结合的、高效的服务。
对比服务架构GSOAP、Thrift、REST,它们各自具有如下的特点:
GSOAP:更加适合C/C++程序,重量级应用;
thrift:适合Java程序,中量级应用;
REST:适合脚本语言,轻量级应用。
发明内容
本发明为了解决现有技术中的缺陷或不足,采用基于thrift服务的HBase安全插件,从而实现了安全的HBase分布式数据库的增删改查(CRUD)功能的目的。
一种基于thrift服务的HBase安全插件,其提供了14个与HBase相关的安全HBase服务,4个与配置相关的安全HBase服务;HBase安全插件的基本配置信息存储在文件中,服务启动时加载,HBase连接信息文件存储与HBase的连接相关的信息,包括Zookeeper集群的主机名列表、Zookeeper的端口信息,通过HBase连接信息,安全HBase服务能够与HBase服务进行通信并操作HBase中的表;HBase安全插件的安全策略信息以Json格式存储在Zookeeper中,然后在客户端请求thrift服务的时候,根据需要自动读取Zookeeper的安全策略信息,通过安全HBase服务提供的“查询安全策略”与“重设安全策略”服务对Zookeeper中的安全策略信息进行读取或者重设,使用Zookeeper存储安全策略信息,使得系统具有强一致性、高可靠性。
本发明技术方案带来的有益效果:
1、去私隐化
去除私隐数据,禁止管理人员或者用户查看私隐数据。
2、私隐数据加密
能够重新对全部的HBase私隐数据进行加密,防止操作人员或者用户使用HBase的其它接口查看到私隐数据。
3、部署简单,运行高效
基于thrift服务实现,进行高层的抽象,部署简单,运行高效。
4、支持多语言
利用thrift序列化技术,支持C++,PHP,Python等多种语言,适合其它异构系统在线访问安全的HBase表数据。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明中配置信息的读写逻辑图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明为了解决现有技术中HBase分布式数据库中私隐数据可以轻易查看,存在信息涉密的风险的缺点或不足,采用了一种基于thrift服务的HBase安全插件,从而实现了安全的HBase分布式数据库的增删改查(CRUD)功能的目的。
HBase安全插件提供的thrift服务主要有:
(1)列出全部的表
(2)创建表
(3)删除表
(4)插入列
(5)批量插入列
(6)删除列
(7)查询n行或者全部的数据
(8)根据RowKey查询一行数据
(9)根据ColumnKey等于某ColumnValue查询出数据
(10)根据多个ColumnKey等于ColumnValue的组合查询出数据
(11)根据表名判断表是否有效
(12)根据表名判断表是否可用
(13)根据表名判断表是否存在
(14)重建表进行私隐化
(15)查询HBase连接信息
(16)重设HBase连接信息
(17)查询策略
(18)重设策略
thrift服务分为thrift服务器端与客户端。在服务器端,启动thrift服务器,提供thrift服务;在客户端,提供一层接口把thrift服务端的信息映射到Java类对象中,然后提供给客户处理业务逻辑。
1、HBase安全插件的部署
基于thrift服务的HBase安全插件,部署在任意一台Hadoop节点上面,并通过Java命令启动thrift服务。
2、HBase安全插件的配置信息
基于thrift服务的HBase安全插件一共提供了4个与配置相关的安全HBase服务。
(1)查询HBase连接信息
(2)重设HBase连接信息
(3)查询策略
(4)重设策略
基于thrift服务的HBase安全插件的基本配置信息存储在本地文件中,服务启动时加载,HBase连接信息文件存储与HBase的连接相关的信息,主要包括Zookeeper集群的主机名列表、Zookeeper的端口信息。通过HBase连接信息,安全HBase服务可以与HBase服务进行通信并操作HBase中的表。
安全策略信息以Json格式存储在Zookeeper中,然后在客户端请求thrift服务的时候,根据需要自动读取Zookeeper的安全策略信息。通过安全HBase服务提供的“查询安全策略”与“重设安全策略”服务对Zookeeper中的安全策略信息进行读取或者重设,使用Zookeeper存储安全策略信息,使得系统具有强一致性、高可靠性。配置信息的读写逻辑图如图1所示。
3、HBase安全插件的逻辑实现
基于thrift服务的HBase安全插件一共提供了14个与HBase相关的安全HBase服务:
(1)列出全部的表
(2)创建表
(3)删除表
(4)插入列
(5)批量插入列
(6)删除列
(7)查询n行或者全部的数据
(8)根据RowKey查询一行数据
(9)根据ColumnKey等于某ColumnValue查询出数据
(10)根据多个ColumnKey等于ColumnValue的组合查询出数据
(11)根据表名判断表是否有效
(12)根据表名判断表是否可用
(13)根据表名判断表是否存在
(14)重建表进行私隐化
其中,查询表的操作需要进行去私隐化处理,列的插入操作需要进行私隐信息加密处理,“重建表进行私隐化”操作,是对整个表进行重新私隐化。
查询表时去私隐化的处理流程如下:
(1)设privacyStrategyMap为全部的私隐策略Map,通过configure取得全部的策略,然后再取得私隐策略的Map;privacyStrategy是私隐策略,通过表名tableName在privacyStrategyMap中获得;privacyColumns是私隐列的Map,通过privacyStrategy取得,columnMap是全部列的Map,privacyColumn是私隐列。
(2)判断privacyColumns是否为空,若为空,则直接结束,跳转到(9),否则,跳转到(2)。
(3)初始化第一个循环的条件,设i为0,i为当前行的计数,n为数据行的总数。
(4)判断i与n的大小:当i小于n时,跳到(5),否则,直接结束,跳转到(9)。
(5)row为第i行的值,然后i增加1,columnMap通过row取得。
(6)初始化第二个循环的条件,设j为0,j为当前私隐列的计数,m为privacyColumns的大小。
(7)判断j与m的大小:当i小于n时,跳到(8),否则,跳转到(4)。
(8)privacyColumn取第j个privacyColumns,然后j增加1,columnMap把key为privacyColumn的value设为空,跳转到(7)。
(9)结束。
私隐信息加密处理的流程如下:
(1)设privacyStrategyMap为全部的私隐策略Map,通过configure取得全部的策略,然后再取得私隐策略Map;privacyStrategy是私隐策略,通过表名tableName在Map中获得,privacyColumns是私隐列的Map,columnMap是全部列的Map,privacyColumn是私隐列。
(2)判断privacyStrategy是否为空,若为空,则直接结束,跳转到(15),否则,跳转到(3)。
(3)初始化第一个循环的条件,设i为0,i为当前行的计数,n为数据行的总数。
(4)判断i与n的大小:当i小于n时,跳到(5),否则,跳转到(15)。
(5)row为第i行的值,然后i增加1,columnMap通过row取得。
(6)初始化第二个循环的条件,设j为0,j为当前私隐列的计数,m为privacyColumns的大小。
(7)判断j与m的大小:当i小于n时,跳到(8),否则,跳转到(9)。
(8)privacyColumn取第j个privacyColumns,columnMap把key为privacyColumn的value设为空,同时j增加1,跳转到(7)。
(9)columnMap添加到rowList里面,跳转到(4)。
(10)初始化第一个循环的条件,设i为0,n为数据行的总数。
(11)判断i与n的大小:当i小于n时,跳到(12),否则,跳转到(15)。
(12)row为第i行的值,然后i增加1,columnMap通过row取得。
(13)columnMap添加到rowList里面,跳转到(11)。
(14)由action对象调用insertRowBatch函数进行批处理。
(15)结束。
此外,针对本发明还可以考虑使用REST替换thrift技术,通过Http API访问,解除语言限制。
以上对本发明实施例所提供的一种基于thrift服务的HBase安全插件进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (7)
1.一种基于thrift服务的HBase安全插件,其特征在于,该插件提供了14个与HBase相关的安全HBase服务,4个与配置相关的安全HBase服务;HBase安全插件的基本配置信息存储在文件中,服务启动时加载,HBase连接信息文件存储与HBase的连接相关的信息,包括Zookeeper集群的主机名列表、Zookeeper的端口信息,通过HBase连接信息,安全HBase服务能够与HBase服务进行通信并操作HBase中的表;HBase安全插件的安全策略信息以Json格式存储在Zookeeper中,然后在客户端请求thrift服务的时候,根据需要自动读取Zookeeper的安全策略信息,通过安全HBase服务提供的“查询安全策略”与“重设安全策略”服务对Zookeeper中的安全策略信息进行读取或者重设,使用Zookeeper存储安全策略信息,使得系统具有强一致性、高可靠性。
2.根据权利要求1所述的HBase安全插件,其特征在于,其部署在任意一台Hadoop节点上面,并通过Java命令启动thrift服务。
3.根据权利要求1所述的HBase安全插件,其特征在于,thrift服务分为thrift服务器端与客户端,在服务器端,启动thrift服务器,提供thrift服务;在客户端,提供一层接口把thrift服务端的信息映射到Java类对象中,然后提供给客户处理业务逻辑。
4.根据权利要求1所述的HBase安全插件,其特征在于,该插件提供的服务包括:列出全部的表、创建表、删除表、插入列、批量插入列、删除列、查询n行或者全部的数据、根据RowKey查询一行数据、根据ColumnKey等于某ColumnValue查询出数据、根据多个ColumnKey等于ColumnValue的组合查询出数据、根据表名判断表是否有效、根据表名判断表是否可用、根据表名判断表是否存在、重建表进行私隐化、查询HBase连接信息、重设HBase连接信息、查询策略、重设策略。
5.根据权利要求1或4所述的HBase安全插件,其特征在于,查询表时去私隐化的处理流程如下:
s1:设privacyStrategyMap为全部的私隐策略Map,通过configure取得全部的策略,然后再取得私隐策略的Map;privacyStrategy是私隐策略,通过表名tableName在privacyStrategyMap中获得;privacyColumns是私隐列的Map,通过privacyStrategy取得,columnMap是全部列的Map,privacyColumn是私隐列;
s2:判断privacyColumns是否为空,若为空,则直接结束,跳转到s9,否则,跳转到s2;
s3:初始化第一个循环的条件,设i为0,i为当前行的计数,n为数据行的总数;
s4:判断i与n的大小:当i小于n时,跳到s5,否则,直接结束,跳转到s9;
s5:row为第i行的值,然后i增加1,columnMap通过row取得;
s6:初始化第二个循环的条件,设j为0,j为当前私隐列的计数,m为privacyColumns的大小;
s7:判断j与m的大小:当i小于n时,跳到s8,否则,跳转到s4;
s8:privacyColumn取第j个privacyColumns,然后j增加1,columnMap把key为privacyColumn的value设为空,跳转到s7;
s9:结束。
6.根据权利要求1或4所述的HBase安全插件,其特征在于,私隐信息加密处理的流程如下:
1)设privacyStrategyMap为全部的私隐策略Map,通过configure取得全部的策略,然后再取得私隐策略Map;privacyStrategy是私隐策略,通过表名tableName在Map中获得,privacyColumns是私隐列的Map,columnMap是全部列的Map,privacyColumn是私隐列;
2)判断privacyStrategy是否为空,若为空,则直接结束,跳转到15),否则,跳转到3);
3)初始化第一个循环的条件,设i为0,i为当前行的计数,n为数据行的总数;
4)判断i与n的大小:当i小于n时,跳到5),否则,跳转到15);
5)row为第i行的值,然后i增加1,columnMap通过row取得;
6)初始化第二个循环的条件,设j为0,j为当前私隐列的计数,m为privacyColumns的大小;
7)判断j与m的大小:当i小于n时,跳到8),否则,跳转到9);
8)privacyColumn取第j个privacyColumns,columnMap把key为privacyColumn的value设为空,同时j增加1,跳转到7);
9)columnMap添加到rowList里面,跳转到4);
10)初始化第一个循环的条件,设i为0,n为数据行的总数;
11)判断i与n的大小:当i小于n时,跳到12),否则,跳转到15);
12)row为第i行的值,然后i增加1,columnMap通过row取得;
13)columnMap添加到rowList里面,跳转到11);
14)由action对象调用insertRowBatch函数进行批处理;
15)结束。
7.根据权利要求1所述的HBase安全插件,其特征在于,本发明还能够考虑使用REST替换thrift技术,通过Http API访问,解除语言限制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310716989.1A CN103678650A (zh) | 2013-12-23 | 2013-12-23 | 一种基于thrift服务的HBase安全插件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310716989.1A CN103678650A (zh) | 2013-12-23 | 2013-12-23 | 一种基于thrift服务的HBase安全插件 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103678650A true CN103678650A (zh) | 2014-03-26 |
Family
ID=50316194
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310716989.1A Pending CN103678650A (zh) | 2013-12-23 | 2013-12-23 | 一种基于thrift服务的HBase安全插件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103678650A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104036006A (zh) * | 2014-06-20 | 2014-09-10 | 浪潮(北京)电子信息产业有限公司 | 一种实现Windows下连接控制Hbase的方法及装置 |
CN104376102A (zh) * | 2014-11-26 | 2015-02-25 | 浪潮电子信息产业股份有限公司 | 一种基于python的hbase jdbc连接方法 |
CN104794567A (zh) * | 2015-04-10 | 2015-07-22 | 华东师范大学 | 一种基于HBase的传染病数据管理方法 |
CN105243160A (zh) * | 2015-10-28 | 2016-01-13 | 西安美林数据技术股份有限公司 | 基于海量数据的分布式视频处理系统 |
CN105407114A (zh) * | 2014-08-29 | 2016-03-16 | 北京信威通信技术股份有限公司 | 处理Zookeeper集群数据的客户端及方法 |
CN110912896A (zh) * | 2019-11-27 | 2020-03-24 | 厦门市美亚柏科信息股份有限公司 | 一种非侵入式的http接口安全策略注入方法 |
-
2013
- 2013-12-23 CN CN201310716989.1A patent/CN103678650A/zh active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104036006A (zh) * | 2014-06-20 | 2014-09-10 | 浪潮(北京)电子信息产业有限公司 | 一种实现Windows下连接控制Hbase的方法及装置 |
CN105407114A (zh) * | 2014-08-29 | 2016-03-16 | 北京信威通信技术股份有限公司 | 处理Zookeeper集群数据的客户端及方法 |
CN105407114B (zh) * | 2014-08-29 | 2019-02-22 | 北京信威通信技术股份有限公司 | 处理Zookeeper集群数据的客户端及方法 |
CN104376102A (zh) * | 2014-11-26 | 2015-02-25 | 浪潮电子信息产业股份有限公司 | 一种基于python的hbase jdbc连接方法 |
CN104794567A (zh) * | 2015-04-10 | 2015-07-22 | 华东师范大学 | 一种基于HBase的传染病数据管理方法 |
CN104794567B (zh) * | 2015-04-10 | 2018-02-23 | 华东师范大学 | 一种基于HBase的传染病数据管理方法 |
CN105243160A (zh) * | 2015-10-28 | 2016-01-13 | 西安美林数据技术股份有限公司 | 基于海量数据的分布式视频处理系统 |
CN110912896A (zh) * | 2019-11-27 | 2020-03-24 | 厦门市美亚柏科信息股份有限公司 | 一种非侵入式的http接口安全策略注入方法 |
CN110912896B (zh) * | 2019-11-27 | 2022-02-25 | 厦门市美亚柏科信息股份有限公司 | 一种非侵入式的http接口安全策略注入方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103678650A (zh) | 一种基于thrift服务的HBase安全插件 | |
CN107450981B (zh) | 一种区块链共识方法及设备 | |
CN107957831B (zh) | 一种展示界面内容的数据处理方法、装置和处理设备 | |
US20160070431A1 (en) | Sync based on navigation history | |
US20190102201A1 (en) | Component invoking method and apparatus, and component data processing method and apparatus | |
US9459897B2 (en) | System and method for providing data analysis service in cloud environment | |
US9355106B2 (en) | Sensor data locating | |
US10678413B2 (en) | Application for auto deletion of images | |
CN103677948A (zh) | 一种启动器和启动方法 | |
US20200412837A1 (en) | Efficient and extensive function groups with multi-instance function support for cloud based processing | |
CN107678789A (zh) | Ui界面的更新方法及装置 | |
CN107977572A (zh) | 一种应用程序运行方法和装置、智能终端 | |
CN105706397A (zh) | 一种基于微信的共享信息分享方法及系统 | |
CN204046648U (zh) | 基于云计算的客栈管理平台 | |
US9946912B2 (en) | Encoding and decoding data in two-dimensional symbology | |
US10339107B2 (en) | Multi-level colocation and processing of spatial data on MapReduce | |
US20200404270A1 (en) | Flexible slice, tile and brick partitioning | |
Chang et al. | Private small-cloud computing in connection with Linux thin client | |
US20200073916A1 (en) | Collaborative documentation | |
US20160182649A1 (en) | Url issuing device, url issuing method, and url issuing program | |
CN104239576A (zh) | 查找HBase表列值中所有行的方法和装置 | |
CN104881491A (zh) | 一种基于大数据平台的软件开发系统 | |
CN105045792A (zh) | 用于数据的集成管理的设备和方法以及移动装置 | |
US11936880B2 (en) | Method for signaling output subpicture layer set | |
RU2797531C1 (ru) | Способ сигнализации набора выходных уровней субизображения |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | 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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140326 |