摘 要:重復數據刪除技術和云計算技術正在快速發展,但是Hadoop系統也仍然存在一些影響系統歸檔處理效率的因素。針對這個問題,文章提出一種新的增量指紋算法和改進TTTD算法——TDOB,并將這類算法應用到Hadoop分布式系統中,分析重復數據刪除技術在Hadoop中的應用。
關鍵詞:Hadoop;重復數據刪除技術;TDOB算法
中圖分類號:TP309.3 文獻標識碼:A 文章編號:2096-4706(2019)03-0142-03
Research on Duplicate Data Deletion Technology Based on Hadoop
GUO Qiang
(Department of Management,Liaoning Normal University Haihua College,Shenyang 110167,China)
Abstract:Duplicate data deletion technology and cloud computing technology are developing rapidly,but there are still some factors that affect the efficiency of archiving processing in Hadoop system. In order to solve this problem,a new incremental fingerprint algorithm and an improved TTTD algorithm——TDOB are proposed and applied to Hadoop distributed system. The application of repeated data deletion in Hadoop is analyzed.
Keywords:Hadoop;repeat data delete technology;TDOB algorithm
0 引 言
重復數據刪除技術是數據清理中的一種技術形式,也屬于數據挖掘的一種,這項技術的應用能夠在一定程度上刪除掉重復的數據信息,保證數據信息的正確率。重復數據刪除技術作為一種處理數據信息的有效技術形式得到了人們的關注,但是其中臟數據的處理比較麻煩,是重復數據刪除技術應用的難點問題。在這樣的需求下出現了Hadoop數據刪除處理模式,這類模式能夠允許用戶快速編寫出高效并行代碼,實現對數據的線性拓展。因此,文章就基于Hadoop的重復數據刪除技術應用問題展開探究。
1 重復數據刪除技術
隨著企業信息量的不斷增加,企業發展對數據信息傳輸率也提出了更高的要求,在這樣的發展要求下數據中心面臨大量存儲空間和高寬帶網絡信息傳輸的雙重挑戰。有關學者研究提出了重復數據刪除技術。重復數據刪除技術是在現有存儲技術的基礎上發展起來的一種技術形式,和以往的數據壓縮技術相比,重復數據刪除技術在使用的過程中能夠刪除數據系統中冗雜的數據信息。
按照重復數據刪除操作力度的不同,可以將重復數據刪除具體分為文件級、數據塊級、字節級三種類型的重復數據刪除。
第一,文件級重復數據刪除。重復數據刪除技術的去重效率和檢測重復數據的粒度存在密切的關聯,在一般情況下,處理的粒度越精細,刪除的冗余信息也將會越多,數據信息存儲效率也會在最大限度上得到提升。文件級的刪除是對需要存儲文件的匹配和查重,在具體研究中以文件粒度作為基本處理對象,在由哈希算法計算得到指紋信息之后,將指紋和已有的文件指紋庫進行匹配分析,在匹配分析之后系統會僅僅保存一個指針來代表文件,如果匹配失敗則會對這個文件進行存儲處理。在應用這種方法的時候不需要對文件進行數據庫的劃分,在一定程度上降低了CPU和RAM的開銷,具有操作簡單、方便、快捷的特點。第二,數據塊級重復數據刪除技術。數據塊級的刪除主要是對存儲的數據進行分塊,是存儲唯一性的數據段。這類技術會對文件按照數據塊粒度進行劃分,借助哈希函數來獲得這個數據塊的指紋。第三,字節刪除。字節級刪除主要是針對字節進行查重檢測。重復數據刪除技術憑借自身數據縮減的優勢能夠實現對現有存儲系統的改進和優化,進而有效消除冗雜的數據信息的,提升整個系統存儲空間的資源利用率。
2 Hadoop平臺關鍵技術
2.1 Hadoop平臺的基本介紹
Hadoop是一個在大型集群廉價硬件設備上運行的分布式計算系統,具體由Hadoop Common、HDFS和Map-Reduce組成。其中,Hadoop Common是Hadoop的核心,也是其他子項目產生和發展的根基,為其他子項目的有效應用提供重要工具支持。HDFS具有高伸縮性、高容錯性的優勢,在使用的過程中運行用戶部署在一般的PC機上,在無形中節省了資源。MapReduce分布式編程模型允許開發人員在不了解底層具體細節的情況下進行分布開發,繼而輕松組織各類計算機資源,打造分布式信息處理平臺,并應用分布式集群計算機系統來實現對大量數據信息的處理。
HDFS的處理流程如下:首先,Client生成對象實例,結合實例打開文件。其次,DistributedFileSystem向Name-Node發出請求,掌握數據模塊基本信息。再次,在獲取數據位置信息之后生成對象實例,讀取文件內容。Client向DFSInputStream發出讀取數據的的調用命令。最后,在收到命令指令之后讀取數據信息。
HDFS的文件寫入流程如下:首先,應用HDFS系統支持下的客戶端開發庫來向遠程系統發送RPS請求。其次,NameNode在檢查文件被創立之后要對文件進行單獨記錄,從而使得整個系統避免出現客戶端非正常的情況。接著,在客戶端開始寫入文件的時候開發庫Clinet會把文件具體劃分為多個類型,將這些文件分別存儲到指定的文件列表中。最后,在DateNode中寫入packet之后返回信息,通過管道將各類信息傳遞到客戶端中。
2.2 MapReduce(MR)的計算
MR能夠為Hadoop平臺上的數據處理提供一種并行計算模式,在對數據進行具體處理的時候會分為Map和Reduce兩部分。MR的作業流程如下:首先,用戶結合接口創建JobClient實例,并向JobTracker請求作業ID,同時檢查作業指令文件輸入信息和目錄是否正確,如果正確則將作業運行所需要的文件信息存儲到指定系統中。其次,作業初始化處理。應用作業調度器處理系統中的各類文件信息,創建和JobInProgress實例對應的TaskInProgress實例來監控和調度Map任務。再次,Map和Reduce任務的執行。創建一個TaskInProgress實例監控各類調度任務,將作業文件從分布式系統中抽離出來復制到本地目錄上。通過創建的實例執行Map的任務。在Map的任務完成一部分之后分配Reduce任務。最后,作業完成。ReduceTask工作完成之后文件信息被匯總成一個輸出文件,在一系列操作完成之后系統會顯示“完成”。
2.3 HBase
HBase是一種高性能、高可靠性、可伸縮的分布式數據信息,在具體操作中,HBse和一般關系型數據庫相比更加適合被應用到非結構化的數據存儲中。在其技術的作用下能夠在計算機系統上打造一個大規模結構化的存儲集散。其特點具體體現在以下幾個方面:第一,表容量大。它的容量大,一個表的容量達到了成千上百萬列。第二,面向列。面向列的存儲和基本權限受到外界多種因素的限制,在這樣的情況下想要充分發揮出自身的作用需要打造一個獨立的檢索系統。第三,稀疏。對于空列往往不需要占據存儲空間,因而表的設計十分稀疏。
3 重復數據刪除技術在Hadoop平臺上的應用
3.1 系統架構
應用C/S架構打造重復數據刪除技術在Hadoop平臺上應用的基本模型,在具體操作中通過客戶端和服務器之間的交互來實現文件信息在HDFS中的存儲,每一個模塊的具體功能如下:第一,分塊引擎。分塊引擎負責應用改進的TD算法來對上傳的數據塊進行分塊處理,進而對分得的數據塊應用CubeHash算法計算對應的哈希值,最后,將模塊的哈希值、數據長度、文件偏移信息量等上傳到服務器終端。第二,存儲引擎。存儲引擎用來接收從客戶端傳遞來的數據,具體包含哈希值、偏移量、數據塊長度等數據信息,結合數據信息的類型將其放置到搜引表中進行匹配處理。第三,元數據存儲器。元數據存儲器主要用來存儲元數據和備份文件。第四,數據存儲器。數據存儲器用來存儲文件中不重復的數據信息。第五,索引表。索引表被存儲在系統數據模塊中,能夠對哈希值、數據塊指針數量進行記錄。
3.2 文件存取操作
第一,文件存儲。和HDFS文件存儲相比需要在數據存儲之前進行重復數據刪除操作,即在存儲文件的時候要區分源數據文件、鏈接文件,然后根據解析來獲得所需要訪問的文件信息。首先,應用分塊引擎系統模塊來對系統上傳的數據信息進行分塊處理,在對系統信息進行分塊處理之后得到一個大小、長度不等的數據塊。其次,將分析獲取的數據塊信息以列表或者文件云形式共享到服務器的移動終端,服務器終端接收從客戶端上獲取的數據信息。再次,讀取文件元數據信息,結合這些信息打造鏈接文件對象、源數據文件。最后,讀取數據庫信息,在HBase索引中尋找數據庫的哈希值,在找到哈希值之后以其中的被指向數據塊數加1;如果沒有找到,需要在非重復的數據塊中添加該數據庫列表的偏移數值,并計算出數據塊的邏輯地址。第二,文件讀取。文件的讀取關鍵是分析和讀取各類鏈接文件,在分析鏈接文件的情況下來得到對應的數據塊邏輯地址和數據庫信息模型,之后按照邏輯地址讀取數據塊信息。文件的讀取流程如下:首先,在客戶端系統中輸入所需要訪問的文件的URI;其次,NameNode通過輸入URI讀取和獲取鏈接文件;接下來,解析鏈接文件。根據解析鏈接文件來獲取數據塊邏輯地址的集合。最后,將讀取之后的數據塊文件進行拼接。第三,文件的刪除。基于HDFS是一次性存儲數據、多次讀取,且之后不能夠隨意修改。因而在執行文件刪除操作的時候只需要刪除鏈接文件即可。
3.3 文件存取性能優化
第一,提升索引查找速度。在系統數據信息數量不斷增加的情況下,相應的數據索引記錄表數量也會增加,在處理繁瑣數據信息的過程中會在一定程度上降低索引表達速率。針對這個問題,需要在重復數據刪除系統中應用布隆過濾器來提升哈希值的分析速度。布隆過濾器的使用原理如下:在布隆過濾器的應用中如果能夠找到對應的哈希值,那么則證明哈希值存在于索引表中。在這樣的情況下,需要相關人員及時查看索引表的信息,在查找索引表信息之后如果無法找到索引的規律則證明索引表中不存在哈希值。但是從實際使用情況來看,布隆過濾器的使用需要隨著索引表內容的更新而進行更新,在這個過程中會損耗大量的資源,且隨著需要處理數據信息量的增加,布隆過濾器也會加大,索引工作效率降低。為此,文章在布隆過濾器應用基礎上應用生成高頻標策略來優化索引表,詳細的優化流程如下所示:首先,應用MapReduce對HBase中的索引表中的數據進行處理,之后得到鍵值對列表。其次,應用得到的鍵值對列表按照從大到小的順序來選擇一個閾值。最后,查看索引表的每一條記錄,將超過閾值的count數值整合記錄形成高頻表。第二,提升文件讀取速度。客戶端在訪問系統數據信息的時候需要打造相應的鏈接文件,在打造鏈接文件之后通過解析文件來獲取文件數據塊的組合集成,之后通過邏輯地址來獲取最終的文件信息。在實際操作中為了避免多次seek操作失誤而造成的讀寫性能降低問題,系統應用合并數據塊邏輯地址思想來把多個小邏輯地址組合成為一個較大的邏輯地址,從而有效減少鏈接文件信息的邏輯地址數目。
3.4 數值實驗
通過在Hadoop平臺創造的基于重復數據刪除技術的存儲系統來對改進算法TDOB進行實驗對比,通過實驗來驗證算法是否準確。
(1)實驗環境。第一,硬件。實驗操作應用i5處理器,6GB內存,500GB的計算機上的三個虛擬機來搭建Hadoop分布式環境。第二,軟件。實驗室虛擬機是在平臺系統下的,在具體運行操作中不需要額外的通信交換設備。第三,Hadoop平臺建設。首先,安裝JDK,確定系統配置環境變量。其次,修改Hosts文件。在這個文件中包括系統IP地質和主機名,通過修改文件目錄能夠實現主機名和IP地址的對應。最后,安裝SSH并進行無密碼驗證配置。
(2)實驗過程和結果分析。第一,數據集。應用兩種數據集來檢驗和增進算法的準確性和有效性。一種數據集是從網上直接下載的開源項目源代碼壓縮包,另外一種是用戶電腦中常用的文件。第二,DRabin算法的應用分析。和以往的算法相比,這種算法所需要占據的空間較小,執行運算效率較高。本文選擇Rabin的算法和DRabin的方法來對數據集中的用戶文件進行分塊處理,數據庫的預期大小是8KB,因而相應的通過計算得到的指紋數值在0-8191之間。在分塊處理操作之前各類文件信息會被納入數據庫中,通過輸入和輸出操作來將文件整體讀進到一個和文件大小一樣的字節數組中,由此解決了因為文件讀取和時間分塊處理可能出現的干擾問題。經過實驗對比發現,DRabin算法和Rabin算法相比,計算所占用的空間相對較小,數據信息的執行運算速率較高,在使用操作的過程中獲得分塊處理的速度更快。第三,TDOB算法分析。如果所獲得的數據塊個數相同,那么分塊算法的性能和去除重復率之間呈現出一種正比關系。算法實驗分析流程如下:首先,把沒有修改過的gcc源代碼通過壓縮文件的形式上傳到Hadoop去重系統中。其次,將修改好的gcc源代碼通過壓縮文件的形式上傳到Hadoop去重系統中。最后,通過查看HDFS修改文件在整個空間系統中所占據的去重復比例來對其進行分析,從實際操作情況來看,改進之后的TGOB算法具有更高的去重率。
4 結 論
綜上所述,在信息技術的發展支持下云計算和重復數據刪除技術的應用擁有更為廣闊的發展空間,Hadoop以其強大的分布計算能力在海量數據信息存儲過程中占據著十分重要的地位,且在發展的過程中具有投入成本少、可靠性強的特點。但是從實際使用情況來看,這類技術在信息歸檔的時候會出現大量重復數據,數據冗余度較高。重復數據刪除技術能夠對數據存儲容量進行優化,減少存儲系統中的冗余數據,從而更好地滿足人們對不斷增長數據存儲的需求,需要引起相關人員的注意。
參考文獻:
[1] 俞善海.基于Hadoop的重復數據刪除技術研究 [D].上海:華東理工大學,2015.
[2]盧艷艷.基于Hadoop的大數據存儲關鍵技術研究[D].保定:華北電力大學,2016.
[3]王菊,徐董冬.基于Hadoop平臺的數據壓縮技術研究[J].數字技術與應用,2016(8):94-95.
作者簡介:郭強(1995.12-),男,漢族,河北張家口人,本科,研究方向:計算機科學與技術。