亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種基于thrift服務的HBase安全插件的制作方法

文檔序號:6525137閱讀:206來源:國知局
一種基于thrift服務的HBase安全插件的制作方法【專利摘要】本發(fā)明公開了一種基于thrift服務的HBase安全插件,該插件提供了14個與HBase相關的安全HBase服務,4個與配置相關的安全HBase服務。HBase安全插件的基本配置信息存儲在本地文件中,服務啟動時加載,HBase連接信息文件存儲與HBase的連接相關的信息,主要包括Zookeeper集群的主機名列表、Zookeeper的端口信息。通過HBase連接信息,安全HBase服務可以與HBase服務進行通信并操作HBase中的表。HBase安全插件的安全策略信息以Json格式保存在Zookeeper中,使得系統(tǒng)具有強一致性、高可靠性。通過本發(fā)明能去私隱化,對私隱數(shù)據(jù)加密,而且部署簡單,運行高效?!緦@f明】—種基于thrift服務的HBase安全插件【
技術領域
】[0001]本發(fā)明涉及大數(shù)據(jù)【
技術領域
】,尤其涉及一種基于thrift服務的HBase安全插件?!?br>背景技術
】[0002]隨著云計算、移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)的崛起與發(fā)展,大數(shù)據(jù)的時代已經(jīng)來臨。HDFS、MapReduce、HBase作為Hadoop的核心組成部分,在大數(shù)據(jù)計算與存儲領域處在無可替代的地位。[0003]HBase作為分布式數(shù)據(jù)庫,在Hadoop框架中具有不可替代的地位,具有優(yōu)越的NoSQL分布式數(shù)據(jù)庫性能。但是,由于HBase更關注于性能方面的優(yōu)化與處理,而忽略信息安全方面的隱患,使得存儲在HBase數(shù)據(jù)庫里面的數(shù)據(jù)存在數(shù)據(jù)泄露的風險。因此,對HBase進行信息安全方面的改進與優(yōu)化,有其實用價值與經(jīng)濟效益。[0004]HBase,HadoopDatabase,是一個高可靠性、高性能、面向列、可伸縮的分布式存儲系統(tǒng),一個分布式的、面向列的開源數(shù)據(jù)庫,利用!Base技術可在廉價PCServer上搭建起大規(guī)模結構化存儲集群。[0005]Hbase的優(yōu)點:[0006](I)列可以動態(tài)增加,并且列為空就不存儲數(shù)據(jù),節(jié)省了存儲空間;[0007](2)自動切分數(shù)據(jù),使得數(shù)據(jù)存儲自動具有水平擴展性;[0008](3)可以提供高并發(fā)讀寫操作的支持。[0009]Hbase的缺點:[0010](I)不能支持條件查詢,只支持按照RowKey來查詢。[0011](2)存在HMaster節(jié)點的單點故障問題,當HMaster巖機后,某些服務會停止,例如創(chuàng)建表、Region的Split操作等。RegionServer的讀寫在短時間內仍會繼續(xù)運行,不過只是短時間。[0012]thrift是一個軟件框架,用來進行可擴展且跨語言的服務的開發(fā)。它結合了功能強大的軟件堆棧和代碼生成引擎,以構建在C++,Java,Python,PHP,Ruby,Erlang,Perl,Haskell,C#,Cocoa,JavaScript,Node,js,Smalltalk等編程語言間無縫結合的、高效的服務。[0013]對比服務架構GS0AP、Thrift、REST,它們各自具有如下的特點:[0014]GSOAP:更加適合C/C++程序,重量級應用;[0015]thrift:適合Java程序,中量級應用;[0016]REST:適合腳本語言,輕量級應用。【
發(fā)明內容】[0017]本發(fā)明為了解決現(xiàn)有技術中的缺陷或不足,采用基于thrift服務的HBase安全插件,從而實現(xiàn)了安全的HBase分布式數(shù)據(jù)庫的增刪改查(CRUD)功能的目的。[0018]—種基于thrift服務的HBase安全插件,其提供了14個與HBase相關的安全HBase服務,4個與配置相關的安全HBase服務;HBase安全插件的基本配置信息存儲在文件中,服務啟動時加載,HBase連接信息文件存儲與HBase的連接相關的信息,包括Zookeeper集群的主機名列表、Zookeeper的端口信息,通過HBase連接信息,安全HBase服務能夠與HBase服務進行通信并操作HBase中的表;HBase安全插件的安全策略信息以Json格式存儲在Zookeeper中,然后在客戶端請求thrift服務的時候,根據(jù)需要自動讀取Zookeeper的安全策略信息,通過安全HBase服務提供的“查詢安全策略”與“重設安全策略”服務對Zooke印er中的安全策略信息進行讀取或者重設,使用Zookeeper存儲安全策略信息,使得系統(tǒng)具有強一致性、高可靠性。[0019]本發(fā)明技術方案帶來的有益效果:[0020]1、去私隱化[0021]去除私隱數(shù)據(jù),禁止管理人員或者用戶查看私隱數(shù)據(jù)。[0022]2、私隱數(shù)據(jù)加密[0023]能夠重新對全部的HBase私隱數(shù)據(jù)進行加密,防止操作人員或者用戶使用HBase的其它接口查看到私隱數(shù)據(jù)。[0024]3、部署簡單,運行高效[0025]基于thrift服務實現(xiàn),進行高層的抽象,部署簡單,運行高效。[0026]4、支持多語言[0027]利用thrift序列化技術,支持C++,PHP,Python等多種語言,適合其它異構系統(tǒng)在線訪問安全的HBase表數(shù)據(jù)?!緦@綀D】【附圖說明】[0028]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其它的附圖。[0029]圖1是本發(fā)明中配置信息的讀寫邏輯圖?!揪唧w實施方式】[0030]下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。[0031]本發(fā)明為了解決現(xiàn)有技術中HBase分布式數(shù)據(jù)庫中私隱數(shù)據(jù)可以輕易查看,存在信息涉密的風險的缺點或不足,采用了一種基于thrift服務的HBase安全插件,從而實現(xiàn)了安全的HBase分布式數(shù)據(jù)庫的增刪改查(CRUD)功能的目的。[0032]HBase安全插件提供的thrift服務主要有:[0033](I)列出全部的表[0034](2)創(chuàng)建表[0035](3)刪除表[0036](4)插入列[0037](5)批量插入列[0038](6)刪除列[0039](7)查詢η行或者全部的數(shù)據(jù)[0040](8)根據(jù)RowKey查詢一行數(shù)據(jù)[0041](9)根據(jù)ColumnKey等于某ColumnValue查詢出數(shù)據(jù)[0042](10)根據(jù)多個ColumnKey等于ColumnValue的組合查詢出數(shù)據(jù)[0043](11)根據(jù)表名判斷表是否有效[0044](12)根據(jù)表名判斷表是否可用[0045](13)根據(jù)表名判斷表是否存在[0046](14)重建表進行私隱化[0047](15)查詢HBase連接信息[0048](16)重設HBase連接信息[0049](17)查詢策略[0050](18)重設策略[0051]thrift服務分為thrift服務器端與客戶端。在服務器端,啟動thrift服務器,提供thrift服務;在客戶端,提供一層接口把thrift服務端的信息映射到Java類對象中,然后提供給客戶處理業(yè)務邏輯。[0052]l、HBase安全插件的部署[0053]基于thrift服務的HBase安全插件,部署在任意一臺Hadoop節(jié)點上面,并通過Java命令啟動thrift服務。[0054]2、HBase安全插件的配置信息[0055]基于thrift服務的HBase安全插件一共提供了4個與配置相關的安全HBase服務。[0056](I)查詢HBase連接信息[0057](2)重設HBase連接信息[0058](3)查詢策略[0059](4)重設策略[0060]基于thrift服務的HBase安全插件的基本配置信息存儲在本地文件中,服務啟動時加載,HBase連接信息文件存儲與HBase的連接相關的信息,主要包括Zooke^er集群的主機名列表、Zookeeper的端口信息。通過HBase連接信息,安全HBase服務可以與HBase服務進行通信并操作HBase中的表。[0061]安全策略信息以Json格式存儲在Zookeeper中,然后在客戶端請求thrift服務的時候,根據(jù)需要自動讀取Zookeeper的安全策略信息。通過安全HBase服務提供的“查詢安全策略”與“重設安全策略”服務對Zookeeper中的安全策略信息進行讀取或者重設,使用Zookeeper存儲安全策略信息,使得系統(tǒng)具有強一致性、高可靠性。配置信息的讀寫邏輯圖如圖1所示。[0062]3、HBase安全插件的邏輯實現(xiàn)[0063]基于thrift服務的HBase安全插件一共提供了14個與HBase相關的安全HBase服務:[0064](I)列出全部的表[0065](2)創(chuàng)建表[0066](3)刪除表[0067](4)插入列[0068](5)批量插入列[0069](6)刪除列[0070](7)查詢η行或者全部的數(shù)據(jù)[0071](8)根據(jù)RowKey查詢一行數(shù)據(jù)[0072](9)根據(jù)ColumnKey等于某ColumnValue查詢出數(shù)據(jù)[0073](10)根據(jù)多個ColumnKey等于ColumnValue的組合查詢出數(shù)據(jù)[0074](11)根據(jù)表名判斷表是否有效[0075](12)根據(jù)表名判斷表是否可用[0076](13)根據(jù)表名判斷表是否存在[0077](14)重建表進行私隱化[0078]其中,查詢表的操作需要進行去私隱化處理,列的插入操作需要進行私隱信息加密處理,“重建表進行私隱化”操作,是對整個表進行重新私隱化。[0079]查詢表時去私隱化的處理流程如下:[0080](I)設privacyStrategyMap為全部的私隱策略Map,通過configure取得全部的策略,然后再取得私隱策略的Map;privacyStrategy是私隱策略,通過表名tableName在privacyStrategyMap中獲得;privacyColumns是私隱列的Map,通過privacyStrategy取得,columnMap是全部列的Map,privacyColumn是私隱列。[0081](2)判斷privacyColumns是否為空,若為空,則直接結束,跳轉到(9),否則,跳轉到⑵。[0082](3)初始化第一個循環(huán)的條件,設i為O,i為當前行的計數(shù),η為數(shù)據(jù)行的總數(shù)。[0083](4)判斷i與η的大小:當i小于η時,跳到(5),否則,直接結束,跳轉到(9)。[0084](5)row為第i行的值,然后i增加I,columnMap通過row取得。[0085](6)初始化第二個循環(huán)的條件,設j為0,j為當前私隱列的計數(shù),m為privacyColumns的大小。[0086](7)判斷j與m的大小:當i小于η時,跳到(8),否則,跳轉到(4)。[0087](8)privacyColumn取第j個privacyColumns,然后j增加I,columnMap把key為privacyColumn的value設為空,跳轉到(7)。[0088](9)結束。[0089]私隱信息加密處理的流程如下:[0090](I)設privacyStrategyMap為全部的私隱策略Map,通過configure取得全部的策略,然后再取得私隱策略Map;privacyStrategy是私隱策略,通過表名tableName在Map中獲得,privacyColumns是私隱列的Map,columnMap是全部列的Map,privacyColumn是私隱列。[0091](2)判斷privacyStrategy是否為空,若為空,則直接結束,跳轉到(15),否則,跳轉到(3)。[0092](3)初始化第一個循環(huán)的條件,設i為0,i為當前行的計數(shù),η為數(shù)據(jù)行的總數(shù)。[0093](4)判斷i與η的大小:當i小于η時,跳到(5),否則,跳轉到(15)。[0094](5)row為第i行的值,然后i增加I,columnMap通過row取得。[0095](6)初始化第二個循環(huán)的條件,設j為0,j為當前私隱列的計數(shù),m為privacyColumns的大小。[0096](7)判斷j與m的大小:當i小于η時,跳到(8),否則,跳轉到(9)。[0097](8)privacyColumn取第j個privacyColumns,columnMap把key為privacyColumn的value設為空,同時j增加I,跳轉到(7)。[0098](9)columnMap添加到rowList里面,跳轉到(4)。[0099](10)初始化第一個循環(huán)的條件,設i為0,η為數(shù)據(jù)行的總數(shù)。[0100](11)判斷i與η的大小:當i小于η時,跳到(12),否則,跳轉到(15)。[0101](12)row為第i行的值,然后i增加1,columnMap通過row取得。[0102](13)columnMap添加到rowList里面,跳轉到(11)。[0103](14)由action對象調用insertRowBatch函數(shù)進行批處理。[0104](15)結束。[0105]此外,針對本發(fā)明還可以考慮使用REST替換thrift技術,通過HttpAPI訪問,解除語言限制。[0106]以上對本發(fā)明實施例所提供的一種基于thrift服務的HBase安全插件進行了詳細介紹,本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領域的一般技術人員,依據(jù)本發(fā)明的思想,在【具體實施方式】及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發(fā)明的限制。【權利要求】1.一種基于thrift服務的HBase安全插件,其特征在于,該插件提供了14個與HBase相關的安全HBase服務,4個與配置相關的安全HBase服務;HBase安全插件的基本配置信息存儲在文件中,服務啟動時加載,HBase連接信息文件存儲與HBase的連接相關的信息,包括Zookeeper集群的主機名列表、Zookeeper的端口信息,通過HBase連接信息,安全HBase服務能夠與HBase服務進行通信并操作HBase中的表;HBase安全插件的安全策略信息以Json格式存儲在Zookeeper中,然后在客戶端請求thrift服務的時候,根據(jù)需要自動讀取Zook^per的安全策略信息,通過安全HBase服務提供的“查詢安全策略”與“重設安全策略”服務對Zookeeper中的安全策略信息進行讀取或者重設,使用Zookeeper存儲安全策略信息,使得系統(tǒng)具有強一致性、高可靠性。2.根據(jù)權利要求1所述的HBase安全插件,其特征在于,其部署在任意一臺Hadoop節(jié)點上面,并通過Java命令啟動thrift服務。3.根據(jù)權利要求1所述的HBase安全插件,其特征在于,thrift服務分為thrift服務器端與客戶端,在服務器端,啟動thrift服務器,提供thrift服務;在客戶端,提供一層接口把thrift服務端的信息映射到Java類對象中,然后提供給客戶處理業(yè)務邏輯。4.根據(jù)權利要求1所述的HBase安全插件,其特征在于,該插件提供的服務包括:列出全部的表、創(chuàng)建表、刪除表、插入列、批量插入列、刪除列、查詢n行或者全部的數(shù)據(jù)、根據(jù)RowKey查詢一行數(shù)據(jù)、根據(jù)ColumnKey等于某ColumnValue查詢出數(shù)據(jù)、根據(jù)多個ColumnKey等于ColumnValue的組合查詢出數(shù)據(jù)、根據(jù)表名判斷表是否有效、根據(jù)表名判斷表是否可用、根據(jù)表名判斷表是否存在、重建表進行私隱化、查詢HBase連接信息、重設HBase連接信息、查詢策略、重設策略。5.根據(jù)權利要求1或4所述的HBase安全插件,其特征在于,查詢表時去私隱化的處理流程如下:`s1:設privacyStrategyMap為全部的私隱策略Map,通過configure取得全部的策略,然后再取得私隱策略的Map;privacyStrategy是私隱策略,通過表名tableName在privacyStrategyMap中獲得;privacyColumns是私隱列的Map,通過privacyStrategy取得,columnMap是全部列的Map,privacyColumn是私隱列;s2:判斷privacyColumns是否為空,若為空,則直接結束,跳轉到s9,否則,跳轉到s2;s3:初始化第一個循環(huán)的條件,設i為0,i為當前行的計數(shù),n為數(shù)據(jù)行的總數(shù);s4:判斷i與n的大小:當i小于n時,跳到s5,否則,直接結束,跳轉到s9;s5:row為第i行的值,然后i增加I,columnMap通過row取得;s6:初始化第二個循環(huán)的條件,設j為0,j為當前私隱列的計數(shù)為privacyColumns的大??;s7:判斷j與m的大小:當i小于n時,跳到s8,否則,跳轉到s4;s8:privacyColumn取第j個privacyColumns,然后j增加1,columnMap把key為privacyColumn的value設為空,跳轉到s7;s9:結束。6.根據(jù)權利要求1或4所述的HBase安全插件,其特征在于,私隱信息加密處理的流程如下:I)設privacyStrategyMap為全部的私隱策略Map,通過configure取得全部的策略,然后再取得私隱策略Map;privacyStrategy是私隱策略,通過表名tableName在Map中獲得,privacyColumns是私隱列的Map,columnMap是全部列的Map,privacyColumn是私隱列;2)判斷privacyStrategy是否為空,若為空,則直接結束,跳轉到15),否則,跳轉到3);3)初始化第一個循環(huán)的條件,設i為0,i為當前行的計數(shù),n為數(shù)據(jù)行的總數(shù);4)判斷i與n的大小:當i小于n時,跳到5),否則,跳轉到15);5)row為第i行的值,然后i增加I,columnMap通過row取得;6)初始化第二個循環(huán)的條件,設j為0,j為當前私隱列的計數(shù),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)初始化第一個循環(huán)的條件,設i為0,n為數(shù)據(jù)行的總數(shù);11)判斷i與n的大小:當i小于n時,跳到12),否則,跳轉到15);12)row為第i行的值,然后i增加I,columnMap通過row取得;13)columnMap添加到`rowList里面,跳轉到11);14)由action對象調用insertRowBatch函數(shù)進行批處理;15)結束。7.根據(jù)權利要求1所述的HBase安全插件,其特征在于,本發(fā)明還能夠考慮使用REST替換thrift技術,通過HttpAPI訪問,解除語言限制。【文檔編號】G06F9/44GK103678650SQ201310716989【公開日】2014年3月26日申請日期:2013年12月23日優(yōu)先權日:2013年12月23日【發(fā)明者】柯宗貴,楊育斌,趙必廈申請人:藍盾信息安全技術股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1