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

基于Hadoop平臺的海量圖片的快速檢索方法與流程

文檔序號:12612271閱讀:1322來源:國知局
基于Hadoop平臺的海量圖片的快速檢索方法與流程

本發(fā)明涉及計算機大數(shù)據(jù)處理領(lǐng)域,具體是基于Hadoop平臺的海量圖片的快速檢索方法。



背景技術(shù):

隨著互聯(lián)網(wǎng)的普及和廣泛應(yīng)用,電商平臺和社交網(wǎng)絡(luò)也不斷發(fā)展,用于商品展示或社交分享的圖片數(shù)量呈爆炸式增長。在這些電子商務(wù)網(wǎng)站和社交網(wǎng)站上,圖片的信息表達(dá)遠(yuǎn)遠(yuǎn)超過了文字信息的描述,所以這些電子商務(wù)網(wǎng)站和社交網(wǎng)站更加注重圖片的質(zhì)量。從對淘寶網(wǎng)的分析來看,在整個商務(wù)平臺的流量中,對圖片的訪問高達(dá)91.5%以上。騰訊相冊的用戶每周上傳的圖片也高達(dá)11億張,目前的總圖片數(shù)量有近700億張,總?cè)萘扛哌_(dá)15PB。由于海量圖片需要消耗海量的存儲空間,圖片的存儲和檢索都會出現(xiàn)性能瓶頸。面對海量的圖片資源,如何高效的檢索以及如何在滿足高并發(fā)訪問的前提下構(gòu)建高效廉價的檢索系統(tǒng)成為需要迫切解決的問題。

Hadoop是一個能夠?qū)Υ罅繑?shù)據(jù)進行分布式處理的軟件框架,同時它又是可靠、高效、可擴展的??煽啃泽w現(xiàn)在它假設(shè)計算元素和存儲會失敗,因此它維護多個工作數(shù)據(jù)副本,確保能夠針對失敗的節(jié)點重新分布處理。高效性體現(xiàn)在它以并行的方式工作,通過并行處理加快處理速度。可拓展性指其能夠處理PB級數(shù)據(jù)。

由于Hadoop最初是針對大規(guī)模文本數(shù)據(jù)處理設(shè)計的,內(nèi)部數(shù)據(jù)類型有限,不能直接處理圖片數(shù)據(jù)。在HDFS中,文件或目錄等均是以對象形式在內(nèi)存中存儲,每個對象約使用150比特內(nèi)存。隨著海量圖片數(shù)量的增加,耗費的內(nèi)存也迅速增加,大量名字節(jié)點內(nèi)存的耗費,嚴(yán)重影響了Hadoop的應(yīng)用性。同時,檢索大量圖片的速度遠(yuǎn)遠(yuǎn)慢于訪問相同數(shù)據(jù)量的大文件。



技術(shù)實現(xiàn)要素:

針對海量圖片的檢索出現(xiàn)的性能瓶頸問題,本發(fā)明提出了基于Hadoop的海量圖片檢索方法,通過Sequence實現(xiàn)對小圖片合并,并在合并過程中設(shè)定單個Sequence File的偏移量,解析索引快速定位存儲圖片Block的DataNode和Fileld,解決海量圖片數(shù)據(jù)擴容和快速檢索的問題。

為解決上述技術(shù)問題,本發(fā)明的是通過以下技術(shù)方案實現(xiàn)的:

步驟一、搭建Hadoop集群平臺。每臺計算機安裝操作系統(tǒng)和Hadoop軟件,將一臺計算機配置成NameNode,其它計算機配置成DataNodes。各個機器通過SSH直接通信。NameNode負(fù)責(zé)的是整個存儲層的管理,DataNode主要作為存儲節(jié)點。驗證DataNode和NameNode之間聯(lián)通性是通過心跳檢測來實現(xiàn),并且DataNode還要定期將自己的存儲區(qū)信息發(fā)送給NameNode。當(dāng)客戶端訪問時,首先訪問NameNode,NameNode會分配相應(yīng)的空間,在得到相應(yīng)的空間后開始各個作業(yè)。

步驟二、設(shè)置安全策略。Hadoop集群平臺中新增一臺DataNode2作為NameNode備份機,將原有NameNode中的數(shù)據(jù)復(fù)制到選定的DataNode2中,在NameNode運行時,NameNode2會實時的檢測NameNode的運行狀態(tài),同時把NameNode中的操作實時更新到本地,在NameNode出現(xiàn)故障時,NameNode2代替NameNode保證服務(wù)的正常進行。

步驟三、單圖片存儲處理。圖片先經(jīng)過負(fù)載均衡模塊過濾,進入應(yīng)用服務(wù)器隊列等待進入HDFS存儲系統(tǒng),通過NameNode分配DataNode進行存儲,圖片寫入過程中先確定寫入Block,再確定Sequence File,系統(tǒng)將二者的ID組合命名為圖片的系統(tǒng)內(nèi)的名稱。圖片元數(shù)據(jù)保存在HBase,同時元數(shù)據(jù)也保存在由Redis構(gòu)建的緩存系統(tǒng)中。圖片完成寫入操作。

步驟四、文件預(yù)處理合并。將指定目錄下的圖片文件讀取進圖片數(shù)組,并初始化byte數(shù)組,用相應(yīng)的輸出文件流將byte中的圖片讀入到指定路徑下的合并文件中去。

步驟五:建立圖片索引。圖片名用的是聯(lián)合編碼的方式,主要包含BlockId和FileId兩部分。其中BlockId代表的是一個存儲單元,NameNode可以根據(jù)其確定最近的DateNode地址,F(xiàn)ileId代表的是小圖片在拼接的時候SequenceFile的Id;offset代表的是相應(yīng)key值的一個的偏移量。HDFS前端在接收到客戶端的請求后首先會解析文件名,根據(jù)相關(guān)信息定位到相應(yīng)的Block文件、FileId和offset,然后客戶端直接對圖片進行讀取。在對文件名解析以后,可以直接讀取DateNode節(jié)點數(shù)據(jù),并可以通過偏移量定位到圖片的開始位置。

步驟六、客戶端以圖片名稱和創(chuàng)建時間為參數(shù)發(fā)起訪問請求,NameNode運算獲取圖片所在分鐘時間段和合并文件對應(yīng)的Blocks信息,返回給客戶端??蛻舳讼蜃罱腄ataNode發(fā)起圖片讀取請求。DataNode運算獲得圖片具體地址信息。

本發(fā)明與現(xiàn)有技術(shù)相比,其有益之處在于:本發(fā)明可以很好的解決Hadoop檢索海量圖片時NameNode內(nèi)存消耗過度和檢索效率低下的問題,并有效降低了檢索時的NameNode負(fù)載,實現(xiàn)了對NameNode性能的提升,從而推動hadoop平臺更廣泛的應(yīng)用。

附圖說明

圖1是圖片存儲流程圖。

圖2是圖片檢索流程圖。

具體實施方式

以下參照附圖1至圖2,給出本發(fā)明的具體實施方式,用來對本發(fā)明做進一步說明。

實施例1:

第一:部署Hadoop集群。部署好系統(tǒng)之后,檢查網(wǎng)絡(luò),確保集群中的各個機器能相互通信。安裝SSH,配置SSH免密碼登錄。把IP主機映射關(guān)系添加到etc/hosts文件末尾,安裝Java環(huán)境。在conf/hadoop-env.sh末尾添加export JAVA_HOME=/usr/jdk1.6.0把testA添加到master文件中,把test1、test2、test3添加到slaves文件中修改conf/core-site.xml文件。

第二:安裝Redis。下載Redis,并拷貝到相應(yīng)目錄下,安裝編譯并啟動服務(wù)。

第三:安裝HAProxy。下載haproxy,并拷貝到相應(yīng)目錄下,編譯安裝。

第四:客戶端首先向NameNode發(fā)起寫數(shù)據(jù)請求,通過負(fù)載均衡模塊過濾,首先來到應(yīng)用服務(wù)器排隊等待進入HDFS存儲系統(tǒng),請求達(dá)到NameNode后,NameNode根據(jù)DataNode上的可寫塊、容量和負(fù)載加權(quán)平均來選擇一個可寫的Block和可以寫B(tài)lock的DataNode,信息返回到客戶端。

第五:客戶端從NameNode返回的DataNode集合中選擇一個作為Master,該值由DataNode的負(fù)載以及當(dāng)前作為Master的次數(shù)來確定,使得每個DataNode作為Master的機會均等。Master-段選定,除非Master宕機,不會再更換。一旦Master宕機,需要在剩余的DataNode中選擇新的Master。

第六:客戶端將數(shù)據(jù)寫入Master,Master再依照HDFS的并行寫數(shù)據(jù)過程寫入到Slave A和Slave B。等到所有的數(shù)據(jù)寫入過程都結(jié)束,Master將Block信息報告給NameNode。NameNode接收Block信息并返回寫操作完成信息。

第七:讀請求通過負(fù)載均衡到達(dá)圖片服務(wù)器,請求先通過Redis緩存模塊檢查緩存區(qū)是否包含圖片信息,否則要到HBase檢索圖片信息,并將檢索結(jié)果寫入到緩存區(qū)。

第八:請求到達(dá)HDFS請求讀取圖片內(nèi)容。圖片命名設(shè)計為Blockid加Block中的Fileld和offset偏移量,HBase根據(jù)圖片文件名查詢出圖片的名字、描述等相關(guān)信息。

第九:NameNode維護Block和DataNode之間的映射信息,NameNode根據(jù)請求解析中的Block確定該Block在DataNode信息。

第十:客戶端根據(jù)NameNode給出的DataNode地址取得Block后,根據(jù)Fileld檢索獲取圖片信息。

對于本領(lǐng)域技術(shù)人員而言,顯然本發(fā)明不限于上述示范性實施例的細(xì)節(jié),而且在不背離本發(fā)明的精神或基本特征的情況下,能夠以其他的具體形式實現(xiàn)本發(fā)明。因此,無論從哪一點來看,均應(yīng)將實施例看作是示范性的,而且是非限制性的,本發(fā)明的范圍由所附權(quán)利要求而不是上述說明限定,因此旨在將落在權(quán)利要求的等同要件的含義和范圍內(nèi)的所有變化囊括在本發(fā)明內(nèi)。

此外,應(yīng)當(dāng)理解,雖然本說明書按照實施方式加以描述,但并非每個實施方式包含一個獨立的技術(shù)方案,說明書的這種敘述方式僅僅是為清楚起見,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)將說明書作為一個整體,各實施例中的技術(shù)方案也可以經(jīng)適當(dāng)組合,形成本領(lǐng)域技術(shù)人員可以理解的其他實施方式。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1