一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

一種基于HBase韻海量圖片存儲(chǔ)技術(shù)

 月影曉風(fēng) 2014-11-08

      隨著互聯(lián)網(wǎng)、云計(jì)算及大數(shù)據(jù)等信息技術(shù)的發(fā)展,越來(lái)越多的應(yīng)用依賴于對(duì)海量數(shù)據(jù)的存儲(chǔ)和處理,如智能監(jiān)控、電子商務(wù)、地理信息等,這些應(yīng)用都需要對(duì)海量圖片的存儲(chǔ)和檢索。由于圖片大多是小文件(80%大小在數(shù)MB以內(nèi)),以GFS、HDFS為代表的適用于流式訪問(wèn)大文件的分布式存儲(chǔ)系統(tǒng),若直接用來(lái)存儲(chǔ)圖片,由于元數(shù)據(jù)膨脹,在擴(kuò)展性和性能方面均存在嚴(yán)重問(wèn)題。

    為了解決HDFS在小文件存儲(chǔ)方面的問(wèn)題,通常的做法是先將很多小文件合并成一個(gè)大文件再保存到HDFS,同時(shí)為這些小文件建立索引,以便進(jìn)行快速存取。典型技術(shù)包括Hadoop自帶的Archive、SequenceFile,但均需要用戶自己編寫(xiě)程序,實(shí)現(xiàn)小文件的合并。為了實(shí)現(xiàn)小文件合并對(duì)用戶的透明,需從系統(tǒng)層面解決HDFS小文件問(wèn)題。論文針對(duì)具體應(yīng)用場(chǎng)景進(jìn)行了探索,但不具有通用性。與前面方案不改變HDFS本身不同,淘寶TFS對(duì)HDFS的元數(shù)據(jù)存儲(chǔ)架構(gòu)進(jìn)行了調(diào)整。在元數(shù)據(jù)節(jié)點(diǎn)僅存放數(shù)據(jù)塊與數(shù)據(jù)節(jié)點(diǎn)的映射,而將文件與數(shù)據(jù)塊的映射關(guān)系保存到文件名,不再需要在元數(shù)據(jù)節(jié)點(diǎn)同時(shí)存放這兩類(lèi)映射,最終實(shí)現(xiàn)了系統(tǒng)層面解決小文件問(wèn)題。但由于文件名包含數(shù)據(jù)塊信息,為文件和數(shù)據(jù)塊建立了強(qiáng)關(guān)系,導(dǎo)致數(shù)據(jù)塊使用僵硬,TFS在文件的命名、移動(dòng)方面帶來(lái)新的問(wèn)題,限制了其應(yīng)用場(chǎng)景。

    HBase是基于HDFS的簡(jiǎn)單結(jié)構(gòu)化數(shù)據(jù)分布式存儲(chǔ)技術(shù),其可被用來(lái)存儲(chǔ)海量圖片小文件,并具有系統(tǒng)層小文件合并、全局名字空間等多種優(yōu)勢(shì)。但基于HBase的海量圖片存儲(chǔ)技術(shù)也存在一些問(wèn)題。本文將介紹基于HBase的海量圖片存儲(chǔ)技術(shù),并針對(duì)其問(wèn)題給出改進(jìn)方法。本文第1部分介紹了基于HBase的海量圖片存儲(chǔ)技術(shù)方案,并分析了原理及優(yōu)勢(shì)。第2部分介紹了該方案存在的問(wèn)題及改進(jìn)方法。第3部介紹了改進(jìn)后方案的應(yīng)用效果。第4部分總結(jié)全文,并指明下一步工作。

    一、基于HBase的海量圖片存儲(chǔ)技術(shù)

    Google利用BigTable來(lái)存儲(chǔ)網(wǎng)頁(yè)快照及屬性信息,來(lái)支持網(wǎng)頁(yè)搜索。受此啟發(fā),在HBase中用同樣的方法來(lái)存儲(chǔ)圖片及其屬性信息。具體方法即建立一張大表,用一個(gè)單獨(dú)的列簇存儲(chǔ)圖片內(nèi)容,用其他列簇存儲(chǔ)圖片的類(lèi)型、大小、創(chuàng)建時(shí)間、修改時(shí)間等標(biāo)準(zhǔn)屬性及應(yīng)用相關(guān)的屬性信息。HBase的列簇劃分除了考慮邏輯關(guān)系外,還需考慮數(shù)據(jù)類(lèi)型,即將邏輯關(guān)系相近且數(shù)據(jù)類(lèi)型相同的作為一個(gè)列簇。大表的具體設(shè)計(jì)如表1所示。

表1:基于HBase的海量圖片存儲(chǔ)技術(shù)的大表設(shè)計(jì)

    HBase是采用面向列的存儲(chǔ)模型,按列簇來(lái)存儲(chǔ)和處理數(shù)據(jù),即同一列簇的數(shù)據(jù)會(huì)連續(xù)存儲(chǔ)。HBase在存儲(chǔ)每個(gè)列簇時(shí),會(huì)以Key-Value的方式來(lái)存儲(chǔ)每行單元格(Cell)中的數(shù)據(jù),形成若干數(shù)據(jù)塊,然后把數(shù)據(jù)塊保存到HFile中,最后把HFile保存到后臺(tái)的HDFS上。由于用單元格(Cell)存儲(chǔ)圖片小文件的內(nèi)容,上述存儲(chǔ)數(shù)據(jù)的過(guò)程實(shí)際上隱含了把圖片小文件打包的過(guò)程。

    搭建HBase集群后,采用上面設(shè)計(jì)的大表即可存儲(chǔ)海量圖片。但由于HBase存在數(shù)據(jù)塊限制,還需要根據(jù)應(yīng)用進(jìn)行調(diào)整。默認(rèn)情況下,HBase數(shù)據(jù)塊限制為64KB。由于圖片內(nèi)容作為單元格(Cell)的值保存,其大小受制于數(shù)據(jù)塊的大小。在應(yīng)用中需根據(jù)最大圖片大小對(duì)HBase數(shù)據(jù)塊大小進(jìn)行修改。具體修改方法是在表創(chuàng)建時(shí),用HColumnDescriptor指定數(shù)據(jù)塊大小,可分列簇指定,具體配置代碼如下。

代碼1:用HCoIumnDescriptor將數(shù)據(jù)塊限制調(diào)整為512KB

圖1 配置代碼

圖1 配置代碼

    上述基于HBase的海量圖片存儲(chǔ)技術(shù)具有如下優(yōu)點(diǎn):

    (1)通過(guò)將圖片屬性信息與圖片內(nèi)容存儲(chǔ)到一個(gè)大表中,可支持圖片的多屬性綜合查詢。此外,還可以根據(jù)應(yīng)用需求,對(duì)列簇進(jìn)行擴(kuò)展以保存應(yīng)用相關(guān)信息,從而支持應(yīng)用相關(guān)的圖片查詢??梢?jiàn),基于HBase的海量圖片存儲(chǔ)技術(shù)不僅解決了圖片存儲(chǔ),還實(shí)現(xiàn)了靈活的圖片檢索。

    (2)HBase隱含了小文件打包過(guò)程,無(wú)需進(jìn)行二次開(kāi)發(fā)即實(shí)現(xiàn)了系統(tǒng)層小文件合并。

    (3)HBase采用分布式B+樹(shù)對(duì)圖片元數(shù)據(jù)進(jìn)行全局統(tǒng)一管理,實(shí)現(xiàn)了全局名字空間,方便了對(duì)圖片的管理。

    二、基于HBase的海量圖片存儲(chǔ)技術(shù)存在問(wèn)題及改進(jìn)方法

    基于HBase的海量圖片存儲(chǔ)技術(shù)雖有上述優(yōu)點(diǎn),但也存在一些問(wèn)題。為了說(shuō)明問(wèn)題,首先分析HBase中圖片數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)。在基于HBase的海量圖片存儲(chǔ)技術(shù)中,圖片內(nèi)容數(shù)據(jù)1)2Key-Value的方式進(jìn)行保存,每個(gè)Key-Value對(duì)就是一個(gè)簡(jiǎn)單的字節(jié)數(shù)組。這個(gè)字節(jié)數(shù)組里面包含了很多項(xiàng),并且有固定的結(jié)構(gòu),如圖2所示。開(kāi)始是兩個(gè)固定長(zhǎng)度的數(shù)值,分別表示Key的長(zhǎng)度和Value的長(zhǎng)度。緊接著是Key部分,在這一部分開(kāi)始是一個(gè)固定長(zhǎng)度的數(shù)值,表示RowKey的長(zhǎng)度,接著是RowKey,然后是固定長(zhǎng)度的數(shù)值,表示Family的長(zhǎng)度,然后是Family,接著是Qualifier,然后是兩個(gè)固定長(zhǎng)度的數(shù)值,表示Time Stamp和Key Type(Put/Delete)。Value部分是純粹的二進(jìn)制數(shù)據(jù)。

圖2 HFile Cell的Key-Value存儲(chǔ)結(jié)構(gòu)

圖2 HFile Cell的Key-Value存儲(chǔ)結(jié)構(gòu)

    可見(jiàn),(1)無(wú)校驗(yàn)碼設(shè)計(jì),導(dǎo)致存儲(chǔ)圖片數(shù)據(jù)的正確性無(wú)法驗(yàn)證;(2)Key-Value字節(jié)數(shù)組沒(méi)有進(jìn)行對(duì)齊,影響讀寫(xiě)效率。為了解決此兩個(gè)問(wèn)題,需對(duì)Key-Value存儲(chǔ)結(jié)構(gòu)進(jìn)行完善,在Valu域部分后面增加校驗(yàn)和及補(bǔ)白兩個(gè)域。校驗(yàn)和為8個(gè)字節(jié)(64位)。通過(guò)補(bǔ)白部分,使每個(gè)Key-Value字節(jié)數(shù)組大小為8字節(jié)的整數(shù)倍,從而更加適合64位系統(tǒng),如圖3所示。做了上述調(diào)整后,在讀寫(xiě)數(shù)據(jù)時(shí)都要進(jìn)行相應(yīng)改變。在寫(xiě)數(shù)據(jù)時(shí),首先對(duì)Value域進(jìn)行校驗(yàn)和計(jì)算,并寫(xiě)入校驗(yàn)和域;然后,計(jì)算Key-Value字節(jié)數(shù)組總大小,如果不是8的整數(shù)倍,則在補(bǔ)白域存儲(chǔ)一定數(shù)量的0x00字節(jié),使之總大小為8的整數(shù)倍。在讀數(shù)據(jù)時(shí),讀Key和Value后,對(duì)Value進(jìn)行校驗(yàn)和計(jì)算,并與校驗(yàn)域存儲(chǔ)的值進(jìn)行比較,如果相當(dāng),則說(shuō)明讀出的Value是正確的。

圖3 HFile Cell的Key-Value改進(jìn)存儲(chǔ)結(jié)構(gòu)

圖3 HFile Cell的Key-Value改進(jìn)存儲(chǔ)結(jié)構(gòu)

    基于HBase的海量圖片存儲(chǔ)技術(shù)另一個(gè)問(wèn)題是存儲(chǔ)圖片的大小受到數(shù)據(jù)塊大小的限制。雖然可通過(guò)配置將數(shù)據(jù)塊大小調(diào)大,但由于HBase本身設(shè)計(jì),當(dāng)數(shù)據(jù)塊過(guò)大時(shí),不適合隨機(jī)讀,從而影響圖片讀取性能。因此數(shù)據(jù)塊不能無(wú)限調(diào)大,推薦數(shù)據(jù)塊最大不超過(guò)1M??稍诰唧w應(yīng)用場(chǎng)景,即使大多圖片在1M以內(nèi),也可能存在少量圖片超過(guò)1M,從而需要對(duì)基于HBase的海量圖片存儲(chǔ)技術(shù)進(jìn)行改進(jìn)。解決思路是將超過(guò)數(shù)據(jù)塊限制的文件進(jìn)行切片,使每片大小小于數(shù)據(jù)塊大小,然后將所有切片進(jìn)行保存。需要設(shè)計(jì)一種機(jī)制來(lái)記錄同一圖片的所有切片,并記錄切片的順序,以便恢復(fù)圖片數(shù)據(jù)。分析HFile單元格的Key-Value字節(jié)數(shù)組,發(fā)現(xiàn)里面的TimeStamp結(jié)構(gòu)在圖片存儲(chǔ)時(shí)沒(méi)有很好的進(jìn)行利用,且TimeStamp可很好的記錄存儲(chǔ)順序。將圖片的所有切片保存到同樣的RowKey、Family,并按照切片順序逐一保存,HBase會(huì)自動(dòng)打上TimeStamp。如此以來(lái),可根據(jù)RowKey+Family找到同一圖片的所有切片,然后按照每個(gè)切片TimeStamp的時(shí)間順序合并切片,即可恢復(fù)出原始圖片。

    三、應(yīng)用效果

    某市交通管理部門(mén)擬建立一套城市交通監(jiān)控系統(tǒng),在轄區(qū)各路口安裝1500個(gè)攝像頭,對(duì)路口交通情況進(jìn)行24小時(shí)監(jiān)控,對(duì)通行車(chē)輛逐輛拍照。在拍照的同時(shí),借助圖片識(shí)別技術(shù)從圖片識(shí)別出車(chē)輛號(hào)牌信息。車(chē)輛號(hào)牌信息、拍攝時(shí)間、拍攝攝像頭ID等作為圖片元數(shù)據(jù),與圖片一并集中保存到后臺(tái)數(shù)據(jù)中心,用于支持對(duì)圖片的綜合檢索和分析。在圖片存儲(chǔ)方面。平均每小時(shí)每個(gè)攝像頭拍照300張,每張圖片的大小約為500KB。6個(gè)月的圖片信息所占的容量為0.5MB*300*1500*24*30*6=IPB??紤]到數(shù)據(jù)安全,則需要2.3倍的存儲(chǔ)空間。所需的存儲(chǔ)空間巨大,因此需在保證數(shù)據(jù)安全的前提下,盡可能節(jié)省成本,并支持容量擴(kuò)展?;诟倪M(jìn)后的HBase海量圖片存儲(chǔ)技術(shù)解決了這個(gè)問(wèn)題。具體配置如下:HBase Master服務(wù)器。配置16核CPU、64G內(nèi)存、1TB SSD硬盤(pán)。2臺(tái)Master服務(wù)器實(shí)現(xiàn)高可用,消除無(wú)單點(diǎn)故障;HBase HRegion服務(wù)器。配置16核CPU、64G內(nèi)存、1TB SSD硬盤(pán)。共用了10臺(tái);HDFS NameNode服務(wù)器。配置16核CPU、64G內(nèi)存、1TB SSD硬盤(pán)。共用了2臺(tái),其中一臺(tái)作為Secondary NameNode服務(wù)器;HDFS DataNode服務(wù)器。配置4核CPU、16G內(nèi)存、2TB*12 SAS硬盤(pán)。共用了85臺(tái);ZooKeeper服務(wù)器。4臺(tái)服務(wù)器(2臺(tái)HBase Master服務(wù)器、2臺(tái)HDFS NameNode服務(wù)器)復(fù)用后作為集群的ZooKeeper服務(wù)器。采用Paxos算法從4臺(tái)中推選一臺(tái)作為主服務(wù)器,其余3臺(tái)作為備用服務(wù)器;核心交換機(jī)2臺(tái),互為熱備。匯聚交換機(jī)6臺(tái),分成3組,兩兩熱備。每臺(tái)48口。經(jīng)驗(yàn)證,系統(tǒng)完全滿足需求,實(shí)現(xiàn)預(yù)期目標(biāo),具有如下突出優(yōu)勢(shì);成本節(jié)省。采用分布式存儲(chǔ),比采用共享存儲(chǔ)方案,成本節(jié)省60%以上;擴(kuò)展性好。元數(shù)據(jù)字段可根據(jù)應(yīng)用情況靈活添加。系統(tǒng)存儲(chǔ)容量、并行處理能力可按需平滑擴(kuò)展;

    實(shí)施、管理方便。由HBase后臺(tái)處理圖片打包,避免了二次開(kāi)發(fā)。系統(tǒng)架構(gòu)統(tǒng)一、簡(jiǎn)單,易管理維護(hù);智能檢索。支持根據(jù)圖片文件的多個(gè)屬性進(jìn)行綜合檢索;智能糾錯(cuò)。可自動(dòng)發(fā)現(xiàn)文件讀寫(xiě)錯(cuò)誤,并進(jìn)行糾正。

    四、結(jié)束語(yǔ)

    本文設(shè)計(jì)并實(shí)現(xiàn)了基于HBase的海量圖片存儲(chǔ)技術(shù)方案,實(shí)現(xiàn)了系統(tǒng)層小文件合并、全局名字空間、并具有良好的通用性;通過(guò)對(duì)HFile Key-Value字節(jié)數(shù)組結(jié)構(gòu)的完善,實(shí)現(xiàn)了圖片讀取時(shí)的自動(dòng)糾錯(cuò),提高了系統(tǒng)可靠性。系統(tǒng)在某城市監(jiān)控系統(tǒng)的設(shè)計(jì)中得到驗(yàn)證。由于HBase采用分布式B+樹(shù)存儲(chǔ)圖片內(nèi)容元數(shù)據(jù),使得讀操作在定位圖片數(shù)據(jù)的時(shí)候必須經(jīng)歷多次網(wǎng)絡(luò)延遲,影響了圖片數(shù)據(jù)的讀取性能,下一步將研究該問(wèn)題的改進(jìn)方法。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多

    久久福利视频这里有精品| 在线免费观看黄色美女| 中文字幕亚洲在线一区| 国产精品免费视频专区| 午夜视频免费观看成人| 四季av一区二区播放| 亚洲中文字幕视频一区二区| 六月丁香六月综合缴情| 国产日韩欧美专区一区| 国产免费一区二区三区av大片| 亚洲中文字幕日韩在线| 久久99亚洲小姐精品综合| 国产成人精品国产亚洲欧洲| 东北女人的逼操的舒服吗| 欧美日韩国产二三四区| 亚洲精品中文字幕熟女| 亚洲成人精品免费在线观看 | 久久99青青精品免费| 99精品国产自在现线观看| 亚洲中文字幕在线观看黑人| 男女一进一出午夜视频| 欧美一级特黄大片做受大屁股| 日韩欧美精品一区二区三区| 免费观看日韩一级黄色大片| 久久热在线免费视频精品| 又黄又硬又爽又色的视频| 人妻露脸一区二区三区| 99热中文字幕在线精品| 日本不卡片一区二区三区| 国产成人免费高潮激情电| 91人妻久久精品一区二区三区| 好吊妞在线免费观看视频| 国产精品不卡免费视频| 亚洲熟女乱色一区二区三区 | 亚洲男人的天堂久久a| 高清一区二区三区四区五区| 一区二区福利在线视频| 免费播放一区二区三区四区| 欧美日韩国产黑人一区| 日韩欧美三级视频在线| 午夜精品在线视频一区|