一種基于HBase的海量圖片存儲(chǔ)方法及其實(shí)現(xiàn)系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及一種基于HBase的海量圖片存儲(chǔ)方法及其實(shí)現(xiàn)系統(tǒng),屬于大數(shù)據(jù)存儲(chǔ) 領(lǐng)域。
【背景技術(shù)】
[0002] 伴隨著計(jì)算機(jī)網(wǎng)絡(luò)的發(fā)展,海量數(shù)據(jù)的時(shí)代已經(jīng)到來(lái),視頻、圖片等非結(jié)構(gòu)化數(shù) 據(jù)在整個(gè)數(shù)據(jù)集中占有著超過(guò)80%的空間,而這所有的數(shù)量集都有可能被計(jì)算處理。對(duì)于 如此大數(shù)據(jù)集的分析、管理和挖掘,傳統(tǒng)技術(shù)包括傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)是無(wú)法勝任的,現(xiàn)階段 主流的數(shù)據(jù)庫(kù)工具處理的結(jié)構(gòu)化數(shù)據(jù)在GB級(jí)別,分析大數(shù)據(jù)集時(shí)力不從心,并且目標(biāo)數(shù) 據(jù)量的處理需求一直在增長(zhǎng),傳統(tǒng)技術(shù)無(wú)法適應(yīng)這種擴(kuò)展性。
[0003] 從擁有數(shù)據(jù)到預(yù)判需求,當(dāng)務(wù)之急是最快最好的分析和理解這些數(shù)據(jù)。目前,在 已擁有的技術(shù)和工具中,最成熟也最成功的一套大數(shù)據(jù)解決方案為Hadoop文件存儲(chǔ)計(jì)算 框架及構(gòu)架于其上的相關(guān)組件,例如分布式數(shù)據(jù)庫(kù)fffiaseoHBase -Hadoop Database是一個(gè) 高可靠性、高性能、面向列、可伸縮的分布式存儲(chǔ)系統(tǒng),利用fffiase技術(shù)可在廉價(jià)PC Server 上搭建起大規(guī)模結(jié)構(gòu)化存儲(chǔ)集群。
[0004] 目前HBase針對(duì)圖片存儲(chǔ)的解決方案主要有兩種:第一種方案是基于HDFS的 HBase圖片存儲(chǔ)解決方案,HDFS是Hadoop Distributed File System的簡(jiǎn)稱,是Hadoop分 布式文件系統(tǒng),此方案通過(guò)將非結(jié)構(gòu)化的圖片數(shù)據(jù)保存到HDFS中,而將圖片文件的索引存 儲(chǔ)在HBase中。僅僅讓HBase管理容量較小的圖片文件的索引,減少了HBase中對(duì)于圖片等 大對(duì)象數(shù)據(jù)頻繁Split(分裂)和Compaction(合并)的觸發(fā),提高HBase的寫(xiě)性能。另外 一種方案是直接將圖片數(shù)據(jù)以字節(jié)的形式存儲(chǔ)到HBase中。這種方法的優(yōu)點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單, 也方便對(duì)數(shù)據(jù)進(jìn)行管理。每個(gè)用戶保存在HBase中的圖片都是私人信息,但是,目前存在的 這兩種針對(duì)圖片存儲(chǔ)的解決方案都無(wú)法解決圖片存儲(chǔ)的安全性問(wèn)題,無(wú)法防止其他用戶的 隨機(jī)訪問(wèn)。
[0005] 中國(guó)專利文獻(xiàn)CN104199899A公開(kāi)了一種基于Hbase的海量圖片存儲(chǔ)方法及裝置, 包括:讀取預(yù)設(shè)大小的結(jié)構(gòu)化文本信息,并創(chuàng)建一個(gè)Mapfile文件;其中,結(jié)構(gòu)化文本信息 為圖片的屬性信息與圖片的原始索引信息;確定讀取的預(yù)設(shè)大小的結(jié)構(gòu)化文本信息所對(duì)應(yīng) 的各個(gè)圖片,將確定的各個(gè)圖片以字節(jié)流的形式寫(xiě)入到已建立的Mapfile文件中;將讀取 的預(yù)設(shè)大小的結(jié)構(gòu)化文本信息中的各個(gè)圖片的屬性信息以及各個(gè)圖片所在的Mapfile文 件的索引信息存儲(chǔ)至HBase表中。但是,該專利只涉及將圖片的結(jié)構(gòu)化文本信息保存到一 個(gè)指定的Mapfile文件中,與上述第二種方案類似,未能解決圖片存儲(chǔ)的安全性問(wèn)題。
【發(fā)明內(nèi)容】
[0006] 針對(duì)現(xiàn)有技術(shù)的不足,本發(fā)明公開(kāi)了一種基于HBase的海量圖片存儲(chǔ)方法;
[0007] 本發(fā)明還公開(kāi)了上述方法的實(shí)現(xiàn)系統(tǒng);
[0008] 本發(fā)明通過(guò)對(duì)用戶上傳的圖片進(jìn)行加密并且結(jié)合Hadoop的分布式計(jì)算框架 MapReduce,實(shí)現(xiàn)將用戶的私人圖片安全、高效的上傳到HBase數(shù)據(jù)庫(kù)。
[0009] 本發(fā)明的技術(shù)方案如下:
[0010] 一種基于HBase的海量圖片存儲(chǔ)方法,具體步驟包括:
[0011] ⑴判斷每一張要上傳的圖片是否超過(guò)HBase數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)塊HFile的大小,如 果未超過(guò),則進(jìn)入步驟(2);如果超過(guò),則對(duì)圖片進(jìn)行分割,直至未超過(guò)HBase數(shù)據(jù)庫(kù)存儲(chǔ)數(shù) 據(jù)塊HFile的大??;
[0012] (2)提取圖片特征值,所述圖片特征值包括色彩、飽和度、值,計(jì)算圖片的顏色直 方圖;
[0013] (3)對(duì)步驟(2)得到的顏色直方圖的特征向量進(jìn)行加密,利用同態(tài)加密算法對(duì)圖 片特征值進(jìn)行加密;
[0014] (4)將加密后的數(shù)據(jù)生成HFile文件,存入HBase數(shù)據(jù)庫(kù)。
[0015] 提取圖片特征值,計(jì)算圖片的顏色直方圖,方便以后用戶檢索圖片時(shí)對(duì)上傳圖片 與HBase數(shù)據(jù)庫(kù)中的圖片的相似度進(jìn)行比較。
[0016] 根據(jù)本發(fā)明優(yōu)選的,計(jì)算圖片的顏色直方圖,具體是指:
[0017] 顏色量化,即將圖片的顏色空間劃分成若干個(gè)小的顏色區(qū)間,每個(gè)小的顏色區(qū)間 成為顏色直方圖的一個(gè)bin;計(jì)算顏色落在每個(gè)小的顏色區(qū)間內(nèi)的像素?cái)?shù)量得到顏色直方 圖。
[0018] 根據(jù)本發(fā)明優(yōu)選的,所述利用同態(tài)加密算法對(duì)圖片特征值進(jìn)行加密,所述同態(tài)加 密算法是指Paillier算法,具體步驟包括:
[0019] a、隨機(jī)的選取兩個(gè)素?cái)?shù)p和q,且滿足pq和(p-l)(q_l)的最大公約數(shù)為1;
[0020] b、設(shè) n = pq,計(jì)算 n,A = lcm(p_l, q-1),A 為(p-1)與(q-1)的最小公倍數(shù),函 數(shù)lcm用來(lái)求取兩數(shù)的最小公倍數(shù);
[0021] c、選取隨機(jī)數(shù)& (是指所有與n2互為素?cái)?shù)的整數(shù),計(jì)算私鑰中的一 個(gè)參數(shù)y,計(jì)算公式如下;
[0022] y = (L (gAmodn2)) _1mod n
[0023] 式中,t mod t'表示t對(duì)t'求余數(shù),函數(shù)L的定義為L(zhǎng)(s) = (s_l)/n,
[0024] 此時(shí),公鑰為(n, g),私鑰為(A , y );
[0025] cUPaillier加解密:對(duì)于明文m,m G Zn,m表示明文,即需要加密的原始數(shù)據(jù),也 即步驟(2)所述顏色直方圖的特征向量;Zn表示所有與n互為素?cái)?shù)的整數(shù),并選擇隨機(jī)數(shù)? rr, ^
[0026] 則加密過(guò)程為:c = gm ? rnmod n2,
[0027] 其中,c表示加密后的密文;
[0028] 解密過(guò)程為:m = L(cxmod n2) ? ymod n。
[0029] 同態(tài)加密中,對(duì)加密后的數(shù)據(jù)進(jìn)行加法或者乘法操作后進(jìn)行解密,與直接對(duì)未加 密的數(shù)據(jù)進(jìn)行同樣的加法或者乘法操作后得到的結(jié)果相同。
[0030] 根據(jù)本發(fā)明優(yōu)選的,所述對(duì)圖片進(jìn)行分割,具體是指,指將圖片分割成大小的均等 的若干個(gè)切片,切片的大小與HBase數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)塊HFile的大小的差t滿足111 = s, s = 5kb,將分割后的所有切片保存到同樣的行健、列族中,HBase數(shù)據(jù)庫(kù)按照切片的順序自 動(dòng)打上時(shí)間戳并保存。
[0031] 上述方法的實(shí)現(xiàn)系統(tǒng),包括圖片分割模塊、特征提取模塊、加密模塊、存儲(chǔ)模塊,所 述圖片分割模塊用于對(duì)超過(guò)HBase數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)塊大小的圖片進(jìn)行分割;所述特征提取 模塊用于提取圖片特征值,計(jì)算圖片的顏色直方圖;所述加密模塊用于對(duì)顏色直方圖的特 征向量進(jìn)行加密;所述存儲(chǔ)模塊用于將加密后的數(shù)據(jù)生成HFile文件,存入HBase數(shù)據(jù)庫(kù)。
[0032] 本發(fā)明的有益效果為:
[0033] 本發(fā)明對(duì)對(duì)超過(guò)HBase數(shù)據(jù)庫(kù)存儲(chǔ)數(shù)據(jù)塊HFile的大小的圖片進(jìn)行分割,提取出 圖片的特征值,并對(duì)提取出的圖片的顏色直方圖的特征向量進(jìn)行加密存儲(chǔ),實(shí)現(xiàn)了快速上 傳并安全存儲(chǔ)要上傳的圖片,防止其他非法用戶對(duì)圖片的讀取,實(shí)現(xiàn)對(duì)圖片的高效安全存 儲(chǔ)。
【附圖說(shuō)明】
[0034] 圖1為本發(fā)明所述一種基于HBase的海量圖片存儲(chǔ)方法流程圖;
[0035] 圖2為本發(fā)明所述一種基于HBase的海量圖片存儲(chǔ)方法的實(shí)現(xiàn)系統(tǒng)示意圖。
【具體實(shí)施方式】
[0036] 下面結(jié)合說(shuō)明書(shū)附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步限定,但不限于此。
[0037] 實(shí)施例1
[0038] -種基于HBase的海量圖片存儲(chǔ)方法,具體步驟包括:
[0039]