新四季網

一種基於Hadoop中小文件優化和倒排索引的方法

2023-07-22 04:10:36 2

一種基於Hadoop中小文件優化和倒排索引的方法
【專利摘要】本發明公開了一種基於Hadoop中小文件優化和倒排索引的方法,能夠向HDFS分布式文件系統上傳海量小文件和對HDFS分布式文件系統上的文件建立倒排索引,所述方法包括小文件優化和建立倒排索引過程;主要包括以下步驟:(1)用戶向Hadoop上傳大量相對於HDFS塊大小的小文件到小文件隊列;(2)定時計算文件隊列中小文件的大小;(3)使用Sequencefile序列文件方法將達到要求的小文件隊列中的文件進行合併後上傳到HDFS;(4)對HDFS上的文件建立倒排索引。該方法針對Hadoop處理小文件方便的不足提出優化方案,能夠優化小文件的處理性能,釋放內存,提高檢索的速度和效率。
【專利說明】—種基於Hadoop中小文件優化和倒排索引的方法
【技術領域】
[0001]本發明涉及系統處理領域,尤其是涉及一種基於Hadoop中小文件優化和倒排索引的方法。
【背景技術】
[0002]當文件的大小小於HDFS (分布式文件系統)上塊的大小時,這樣的文件在Hadoop稱為小文件。大量的小文件會嚴重影響Hadoop的擴展性和性能。
[0003](I)在HDFS分布式文件系統中,任何文件信息、文件塊信息在NameNode (主節點)的內存中都以一個對象的形式存儲,每一個對象約佔150位元組,大量小文件使NameNode的內存使用情況嚴重製約了集群的擴展。
[0004](2)HDFS訪問大量小文件速度遠遠小於訪問同等大小的大文件。它主要是為了流式的訪問大文件而設計的。對小文件的讀取通常會造成大量從Datanode到Datanode的獲取文件,這樣是非常的低效的一種訪問方式。
[0005](3) MapReduce (並行數據處理)處理批量小文件時間遠遠長於處理同等大小的大文件的時間。處理每一個小文件要佔用一個task (任務),若小文件過多,則大部分處理時間都耗費在啟動task和釋放task上。Map函數通常處理的是一個塊大小的輸入,若有非常多的小文件會產生大量的Map函數來執行,而這些Map函數無疑會佔用大量的內存。
[0006]對於大量的小文件引起的問題,Hadoop技術自身提供了三個解決方案,分別為:Hadoop Archive (HadoopES), Sequence file (序列文件)和 CombineFileInputFormat(組合文件輸入格式)。
[0007]Hadoop Archive將小文件打包成HAR文件,首先是建立一個主索引結構,這個主索引指向二級索弓丨,由二級索引指向具體的小文件。因此訪問每個HAR文件將需要完成兩層索引文件讀取和文件本身數據讀取,所以實際上通過HAR來讀取一個文件可能會比直接從HDFS中讀取文件效率要低。Hadoop Archive, Sequence file和CombineFileInputFormat這三個工具不能自動化,都需要管理員手動添加,效率非常的低下,不適合大量的文件操作。
[0008]我們處於一個大數據的時代,於眾多的文件之中找到用戶自己想要的文件將會成為一個影響用戶體驗性的瓶頸。費時又費力的手動去查詢文件影響用戶的體驗性,這個時候需要對每一個文件建立一個快速的索引以幫助用戶迅速找到自己所需文件。搜尋引擎可以在海量數據裡面精準、迅速檢索出用戶需要的信息,已經成為人們上網中必須使用的重要信息獲取渠道。可以借鑑網際網路中的搜尋引擎中的倒排索引技術來幫助用戶快速定位信肩、O
[0009]實際上,電子辦公過程中所產生的數據主要有兩種:結構化數據和非結構化數據。如資料庫表格中的數據是有固定格式的,這屬于格式化數據。另一類是沒有固定格式的數據比如Word、PDF文檔等,非結構化數據又稱為全文數據。HDFS上存放的文件基本都是非結構化的數據。[0010]全文數據中找到自己需要的信息主要是通過對全文掃描,然後建立起一個精確詞語定位的檢索。目前有兩種檢索方法來檢索非結構化數據,第一個是順序掃描方法,對非結構化文檔從頭部掃描到文檔最後,若在文檔裡面掃描查找到所需要的信息,則把這個文檔記錄下來,然後在選擇下一個文檔繼續從頭到尾掃描,直到所有的文檔掃描完畢返回記錄的文檔,效率較低。第二種是從全文文檔提取分離字符串,對這些獲取的信息重新進行組織和排序,形成一種索引結構,這種方法叫做索引掃描法,效率較高。
[0011]要想提高非結構化數據的檢索速度,應該關注如何創建全文索引以及創建後如何高效搜索全文。針對全文數據的索引方法通常有:正排索引法和倒排索引法,前者以文檔作為建立索引的主題,將文檔標號為關鍵詞,在索引中記錄文檔出現的每一個詞的位置信息,查找時按照文檔標號依次掃描所有文檔;後一種方法恰恰相反,這種索引方式以每一個可能被檢索到的關鍵詞為主題進行索引,記錄該關鍵詞在文檔中出現的頻率和位置信息,這樣就可以將所有包含該關鍵詞的文檔一次找到,大大提高了檢索的速度。針對分布式文件系統上的文件可以利用MapReduce並行編程模型建立倒排索引。

【發明內容】

[0012]本發明主要解決的技術問題是提供一種基於Hadoop中小文件優化和倒排索引的方法,能夠優化系統,提高小文件的處理性能,釋放內存,提高檢索的速度和效率。
[0013]為解決上述技術問題,本發明米用的一個技術方案是:提供一種基於Hadoop中小文件優化和倒排索引的方法,所述方法能夠向HDFS分布式文件系統上傳海量小文件和對分布式文件系統上的文件建立倒排索引,所述方法包括小文件優化和建立倒排索引過程;其中:
O小文件優化的步驟包括:
1.1)首先用戶上傳文件到雲存儲平臺,系統判斷該文件是否屬於小文件,如果是,就將該文件交給小文件處理模塊處理,進行步驟1.2);如果不是,則直接進行步驟1.3),將該文件存入HDFS分布式文件系統;
1.2)把步驟1.1)傳過來的小文件存儲到小文件隊列中去,在所述小文件處理模塊中開啟定時任務,採用判斷模塊間隔計算所述小文件隊列中文件的總大小;
1.3)把所述小文件隊列中的全部小文件一次性的交給文件合併模塊,通過序列文件以文件名作鍵(key),相應的文件內容為值(value),將這些小文件一次性寫入HDFS分布式文件系統,同時刪除已處理過的文件,並將結果寫入HDFS分布式文件系統;
2)建立倒排索引過程的步驟包括:
2.1)建立倒排索引的映射(Map)過程
映射(Map)過程把輸入的文本文檔按照文檔標識號分成M片段,處理成組合形式為J〈文檔號,文本內容〉的鍵值對,然後把鍵值對分發到多個處理節點上,所述處理節點把J〈文檔號,文本內容〉作為一個映射(Map)過程的輸入,分別對每一個文檔號對應的文檔內容進行詞語切分,並統計單詞的出現頻率,最後形成組合形式為K〈關鍵字+文檔名,詞頻〉的鍵值對,這裡的詞頻統一設置為I ;
2.2)建立倒排索引的合併(Combine)過程
合併(Combine)過程階段的輸入是映射(Map)過程的輸出結果,在這個階段是將鍵值對中有相同鍵的值進行歸併,把他們放在一個列表裡面,所述合併(Combine)過程處理後的數據形式是L〈文檔名,詞頻〉的鍵值對格式,這裡的詞頻是一篇文檔中的總詞頻;
2.3)建立倒排索引的化簡(Reduce)過程
合併(Combine)過程中輸出的鍵值對作為化簡(Reduce)過程的輸入,在這個階段是將同一個關鍵字的所有形式為L〈文檔名,詞頻〉的值進行字符串連接合併,形成格式為N〈關鍵字文檔名,詞頻〉的倒排索引並輸出到分布式文件系統,然後,整理鍵值對。
[0014]在本發明一較佳實施例中,所述小文件為文件大小小於所述HDFS分布式文件系統上塊的大小的文件。
[0015]在本發明一較佳實施例中,所述步驟1.1)中的小文件處理模塊單獨建立在Hadoop系統之外。
[0016]在本發明一較佳實施例中,所述步驟1.2)中的小文件隊列是單獨建立的,用於存放小於HDFS分布式文件系統中塊的大小的文件,並在所述小文件處理模塊中開啟定時任務,採用判斷模塊實時計算所述小文件隊列中文件的總大小。
[0017]在本發明一較佳實施例中,所述步驟1.3)具體為:使用序列文件以文件名作鍵(key),相應的文件內容為值(value),將這些文件進行重新組合成鍵|值|鍵值..(key I value key | value..)的形式。
[0018]在本發明一較佳實施例中,所述建立倒排索引過程的步驟中使用的是並行數據處理(MapReduce)框架。
[0019]在本發明一較佳實施例中,所述建立倒排索弓I的化簡(Reduce )過程中,整理〈鍵,值〉對是以關鍵詞作為資料庫(HBase)中的行鍵(key),以文檔名和詞頻作為列族建立資料庫(HBase)表,從而利用資料庫(HBase)存儲倒排索引。
[0020]本發明的有益效果是:通過在HDFS分布式文件系統的基礎上添加一個單獨的小文件處理模塊,優化了小文件的處理性能;並利用並行數據處理(MapReduce)框架建立倒排索引過程,能夠提高檢索的速度和效率。
【專利附圖】

【附圖說明】
[0021]圖1為本發明一種基於Hadoop中小文件優化和倒排索引的方法的流程圖;
圖2為本發明的小文件優化步驟的流程圖;
圖3為本發明的建立倒排索引的映射(Map)過程的輸入輸出示意圖;
圖4為本發明的建立倒排索引的合併(Combine)過程的輸入輸出示意圖;
圖5為本發明的建立倒排索引的化簡(Reduce)過程的輸入輸出示意圖。
【具體實施方式】
[0022]下面結合附圖對本發明的較佳實施例進行詳細闡述,以使本發明的優點和特徵能更易於被本領域技術人員理解,從而對本發明的保護範圍做出更為清楚明確的界定。
[0023]請參閱圖1-圖5,本發明實施例包括:
一種基於Hadoop中小文件優化和倒排索引的方法,所述方法能夠向HDFS分布式文件系統上傳海量小文件和對分布式文件系統上的文件建立倒排索引,所述方法包括小文件優化和建立倒排索引過程;其中:O小文件優化是在HDFS基礎上添加一個單獨的小文件處理模塊,具體的優化方案如
下:
1.1)首先用戶上傳文件到雲存儲平臺,系統判斷該文件是否屬於小文件,如果是,就將該文件交給小文件處理模塊處理,進行步驟1.2);如果不是,則直接進行步驟1.3),將該文件存入HDFS分布式文件系統。其中,所述小文件處理模塊是單獨建立在Hadoop系統之外的。
[0024]1.2)把步驟1.1)傳過來的小文件存儲到小文件隊列中去,在所述小文件處理模塊中開啟定時任務,採用判斷模塊間隔計算所述小文件隊列中文件的總大小。其中,所述小文件隊列是單獨建立的,用於存放小於HDFS分布式文件系統中塊的大小的文件。
[0025]1.3)把所述小文件隊列中的全部小文件一次性的交給文件合併模塊,通過序列文件以文件名作鍵(key),相應的文件內容為值(value),將這些文件進行重新組合成鍵|值鍵I值..(key I value key | value..)的形式,然後一次性寫入HDFS分布式文件系統,同時刪除已處理過的文件,並將結果寫入HDFS分布式文件系統。
[0026]2)利用並行數據處理(MapReduce)框架建立倒排索引,其過程包括:
2.1)建立倒排索引的映射(Map)過程
映射(Map)過程對輸入的多個文本文檔在多個節點上並行處理,把輸入的文本文檔按照文檔標識號分成M片段,處理成鍵值對的形式為J〈文檔號,文本內容〉,然後把鍵值對分發到多個TaskTracker處理節點上,TaskTracker處理節點把J〈文檔號,文本內容〉作為一個映射(Map)過程的輸入,分別對每一個文檔號對應的文檔內容進行詞語切分,並統計單詞的出現頻率,最後形成鍵值對的形式為K〈關鍵字+文檔名,詞頻〉,這裡的詞頻可以先統一設置為I。
[0027]2.2)建立倒排索引的合併(Combine)過程
合併(Combine)過程階段的輸入是映射(Map)過程的輸出結果,在這個階段主要是將鍵值對中有相同鍵的值進行歸併並操作,把他們放在一個列表裡面,這樣就實現了對同一文檔中的相同關鍵詞的出現頻率的統計。
[0028]合併(Combine)過程處理後的數據的鍵值對格式為L〈文檔名,詞頻〉,這裡的詞頻是一篇文檔中的總詞頻。
[0029]2.3)建立倒排索引的化簡(Reduce)過程
合併(Combine)過程中輸出的鍵值對作為化簡(Reduce)過程的輸入,在這個階段是將同一個關鍵字的所有形式為L〈文檔名,詞頻〉的值進行字符串連接合併,形成鍵值對格式為N〈關鍵字文檔名,詞頻〉的倒排索引,並輸出到HDFS分布式文件系統,然後,整理鍵值對,以關鍵詞作為資料庫(HBase)中的行鍵(key),以文檔名和詞頻作為列族建立資料庫(HBase)表,從而利用資料庫(HBase)存儲倒排索引。
[0030]其中,所述小文件為文件大小小於所述HDFS分布式文件系統上塊的大小的文件。
[0031]本發明的操作過程如下:
假設有文檔號為0、1、2的三篇文檔,組成格式為J〈文檔號,文本內容〉的鍵值對,然後把鍵值對分發到多個處理節點上。在TaskTracker處理節點把J〈文檔號,文本內容〉作為一個Map過程的輸入,分別對每一個文檔號對應的文檔內容進行詞語切分,並統計單詞的出現頻率,最後形成鍵值對為K〈關鍵字+文檔名,詞頻〉格式,統一把詞頻都設置為1,如圖3所示。
[0032]在Combine階段,將鍵值對中有相同鍵的值進行歸併操作,把他們放在一個列表裡面,如關鍵詞「is」在文檔O中出現一次,而在文檔I中出現兩次,列表就是list〈l,1>,如圖4所示。
[0033]Reduce過程的輸入採用Combine過程輸出的鍵值對,將同一個關鍵字的所有形式為L〈文檔名,詞頻〉的值進行字符串連接合併,形成鍵值對格式為N〈關鍵字文檔名,詞頻〉的倒排索引,並輸出到HDFS分布式文件系統。「is」分別在文檔O和文檔I中出現了 I次和2次,所以形成的結果就是〈is, 0.txt:1:1; 1.txt:2),如圖5所示。
[0034]本發明揭示了一種基於Hadoop中小文件優化和倒排索引的方法,通過在分布式文件系統(HDFS)的基礎上添加一個單獨的小文件處理模塊,優化了小文件的處理性能;並利用並行數據處理(MapReduce)框架建立倒排索引過程,能夠提高檢索的速度和效率。
[0035]以上所述僅為本發明的實施例,並非因此限制本發明的專利範圍,凡是利用本發明說明書及附圖內容所作的等效結構或等效流程變換,或直接或間接運用在其他相關的【技術領域】,均同理包括在本發明的專利保護範圍內。
【權利要求】
1.一種基於Hadoop中小文件優化和倒排索引的方法,所述方法能夠向分布式文件系統上傳海量小文件和對分布式文件系統上的文件建立倒排索引,其特徵在於,所述方法包括小文件優化和建立倒排索引過程;其中: 1)小文件優化的步驟包括: 1.1)首先用戶上傳文件到雲存儲平臺,系統判斷該文件是否屬於小文件,如果是,就將該文件交給小文件處理模塊處理,進行步驟1.2);如果不是,則直接進行步驟1.3),將該文件存入分布式文件系統; 1.2)把步驟1.1)傳過來的小文件存儲到小文件隊列中去,在所述小文件處理模塊中開啟定時任務,採用判斷模塊間隔計算所述小文件隊列中文件的總大小; 1.3)把所述小文件隊列中的全部小文件一次性的交給文件合併模塊,通過序列文件以文件名作鍵,相應的文件內容為值,將這些小文件一次性寫入分布式文件系統,同時刪除已處理過的文件; 2)建立倒排索引過程的步驟包括: 2.1)建立倒排索引的映射過程 映射過程把輸入的文本文檔按照文檔標識號分成M片段,處理成組合形式為J〈文檔號,文本內容〉的鍵值對,然後把鍵值對分發到多個處理節點上,所述處理節點把J〈文檔號,文本內容〉作為一個映射過程的輸入,分別對每一個文檔號對應的文檔內容進行詞語切分,並統計單詞的出現頻率,最後形成組合形式為K〈關鍵字+文檔名,詞頻〉的鍵值對,這裡的詞頻統一設置為I ; 2.2)建立倒排索引的合併過程 合併過程階段的輸入是映射過程的輸出結果,在這個階段是將鍵值對中有相同鍵的值進行歸併,把他們放在一個列表裡面,所述合併過程處理後的數據形式是L〈文檔名,詞頻〉的鍵值對格式,這裡的詞頻是一篇文檔中的總詞頻; 2.3)建立倒排索引的化簡過程 合併過程中輸出的鍵值對作為化簡過程的輸入,在這個階段是將同一個關鍵字的所有形式為L〈文檔名,詞頻〉的值進行字符串連接合併,形成格式為N〈關鍵字文檔名,詞頻〉的倒排索引並輸出到分布式文件系統,然後,整理鍵值對。
2.根據權利要求1所述的基於Hadoop中小文件優化和倒排索引的方法,其特徵在於,所述小文件為文件大小小於所述分布式文件系統上塊的大小的文件。
3.根據權利要求1所述的基於Hadoop中小文件優化和倒排索引的方法,其特徵在於,所述步驟1.0中的小文件處理模塊單獨建立在Hadoop系統之外。
4.根據權利要求1所述的基於Hadoop中小文件優化和倒排索引的方法,其特徵在於,所述步驟1.2 )中的小文件隊列是單獨建立的,用於存放小於分布式文件系統中塊的大小的文件,並在所述小文件處理模塊中開啟定時任務,採用判斷模塊實時計算所述小文件隊列中文件的總大小。
5.根據權利要求1所述的基於Hadoop中小文件優化和倒排索引的方法,其特徵在於,所述步驟1.3)具體為:使用序列文件以文件名作鍵,相應的文件內容為值,將這些文件進行重新組合成鍵I值I鍵I值..的形式。
6.根據權利要求1所述的基於Hadoop中小文件優化和倒排索引的方法,其特徵在於,所述建立倒排索引過程的步驟中使用的是並行數據處理框架。
7.根據權利要求1所述的基於Hadoop中小文件優化和倒排索引的方法,其特徵在於,所述建立倒排索引的化簡過程中,整理鍵值對是以關鍵詞作為資料庫中的行鍵,以文檔名和詞頻作為列族建立 資料庫表,從而利用資料庫存儲倒排索引。
【文檔編號】G06F3/06GK103678491SQ201310563664
【公開日】2014年3月26日 申請日期:2013年11月14日 優先權日:2013年11月14日
【發明者】吳含前, 姚莉, 馬風新, 李露 申請人:東南大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀