新四季網

一種基於Hadoop集群的超大文件並行數據塊定位方法

2023-09-20 04:03:45

一種基於Hadoop集群的超大文件並行數據塊定位方法
【專利摘要】本發明公開了一種基於Hadoop集群的超大文件並行數據塊定位方法,本發明是在Hadoop集群中應用Map/Reduce軟體實現超大文件內多數據塊定位的方法。本發明主要包括以下步驟:組建集群環境、構造序列文件、修改用戶程序原始碼和通過streaming方式調用用戶程序,本發明通過控制Map的數量和序列,確定Map進程與多數據塊之間的映射關係,並且可以定位數據塊在文件中的位置,讓指定Map進程處理指定數據塊,同時本發明可以輕鬆實現超大文件的多數據塊並行處理。
【專利說明】一種基於Hadoop集群的超大文件並行數據塊定位方法
【技術領域】
[0001]本發明涉及一種基於Hadoop (分布式處理大量數據的軟體框架)集群的超大文件(超過百GB)並行數據塊定位方法,屬於大數據處理領域。
【背景技術】
[0002]在高性能並行計算領域MapReduce海量數據處理框架應用廣泛,通過廉價的普通計算機集群能得到過去只有昂貴大型伺服器才擁有的大規模數據計算能力,而且在穩定性和擴展性等方面都優於傳統的高性能計算方案。現在MapReduce模型被應用於天文信息計算處理、海量存儲分析、病毒庫存儲、網絡檢索服務等方面,解決數據爆炸式增長與計算機存儲能力和計算能力不足之間的矛盾。實際開發過程中,開發語言多種多樣,而Streaming技術允許開發者使用任何程式語言實現的程序在Hadoop MapReduce中使用,方便已有程序向Hadoop平臺移植,大大減少了程序移植成本。
[0003]Hadoop的HDFS (Hadoop分布式文件系統)具有高容錯性的特點,它將數據以一個或多個副本的形式分散存儲在多臺機器上,可以存儲海量數據,並且可靠性高,提供對數據快速的、可擴展的訪問,適用於一次寫入、多次讀取的訪問模式。HDFS上的文件被劃分為塊大小的多個分塊,作為獨立的存儲單元,系統默認塊大小為64MB,用戶也可以指定塊大小。
[0004]在高性能計算中,有一類問題是多次處理同一個超大文件,每次處理的數據是大文件內以不同的偏移量開始的一段連續數據,並且每次運算之間相互獨立,不存在依賴關係。此種計算模型在移植到Hadoop平臺過程中,存儲模型一般採用HDFS文件系統,計算模型一般採用Hadoop Streaming,在不改動或修改極少量程序原始碼的情況的就能快速移植到Hadoop平臺。Hadoop中的每個map進程分別處理大文件內、不同偏移量開始的一段連續數據,這種模型就需要開發者對map進程數量及每個map進程處理的數據在大文件內的偏移量進行控制,實現多個map進程並行定位超大文件中的多個數據塊。
[0005]通常情況下map進程的數量由輸入文件的大小和HDFS塊大小決定,即由輸入文件在HDFS中所佔塊數決定,默認情況下不可直接控制幹涉。在Hadoop API中提供了相應接 口:org.apache, hadoop.mapred.JobConf.setNumMapTasks (int n)可以控制 map 進程數量,但官方文檔對此函數的釋義是「Note:This is only a hint to the framework」,即setNumMapTasks 方法對Hadoop的框架來說僅僅是個提示,不能起決定性的作用。換言之,即便設置了這個值,也不一定能達到預期效果。
[0006]單個map進程雖然可以從一個文件中的任意偏移進行訪問,即使此文件存儲在HDFS文件系統中,文件塊分布在不同的節點上,但對於多個map進程,一方面由於系統沒有提供相應的接口來區分各個map進程,另一方面很多情況下每次所需處理的數據在大文件內的偏移地址無規律,因此當前情況下,分別指定每個map進程需要處理的數據在大文件內的偏移不可行。
[0007]綜上所述,控制map進程數量,直接將大文件作為程序的輸入並使得每個map進程分別精確定位本map進程需處理數據塊在大文件內的偏移是不可行的。
【發明內容】

[0008]本發明要解決的技術問題是:克服現有技術的不足,提供了一種基於Hadoop集群的超大文件並行數據塊定位方法,通過構造序列控制map進程數量的辦法以及map進程運行辦法,達到控制不同map進程分別處理偏移量不同的一段連續數據的效果。
[0009]本發明的技術解決方案是:
[0010]一種基於Hadoop集群的超大文件並行數據塊定位方法包括步驟如下:
[0011]步驟1:通過搭建Hadoop環境組建Hadoop集群,配置HDFS關鍵屬性;
[0012]步驟2:構造特定的序列文件;所述的特定序列文件的內容為整型數,每個整型數獨佔I行,序列文件中每行的值為每個map進程要處理的超大文件中的數據塊的偏移量,序列文件的行數等於map進程的個數和需要處理的數據塊的個數;
[0013]構造序列文件的方法為如下方法的任意一種:
[0014](a)使用Microsoft Office Excel按列方式生成特定的序列,然後以列方式拷貝到文本文件中;
[0015](b)在vim編輯器命令模式下,鍵入命令生成特定的序列;
[0016](c)手動生成需要的不規則序列,通過批處理文件或腳本文件生成特定序列;
[0017]步驟3:修改用戶程序使得用戶程序能夠接收標準輸入流傳遞的數據,將該數據轉換成整型數據,並通過該整型數據設置程序中要讀的超大文件中的數據塊的起始地址;
[0018]步驟4:通過Hadoop集群的streaming方式調用步驟(3)中修改後的用戶程序和步驟(2)中的序列文件完成並行數據塊的定位,完成並行數據定位的方法為:通過步驟(2)中的超大數據的偏移量和步驟(3)中的超大文件的起始地址完成並行數據的定位。
[0019]所述集群中的每個計算機節點均有獨立的CPU、內存、本地硬碟和作業系統。
[0020]所述集群中的每個計算機節點通過乙太網或Infiniband (支持多並發連結的「轉換線纜技術」)互聯。
[0021 ] 本發明與現有技術相比的有益效果是:
[0022](I)本發明採用streaming技術實現只要按照標準輸入輸出格式進行編程,就可以滿足hadoop要求,因此單機程序稍加修改就可以在集群上進行使用,提高工作效率,便於測試。
[0023](2)本發明採用的streaming技術能夠實現對非Java語言的支持,實際工程中可以根據工程需求情況選取最合適的開發語言,再通過streaming技術使之運行在hadoop平臺上,通過這種方法使程序執行效率更高。
[0024](3)本發明構造序列文件精確控制map進程數量可以更有效的提高程序執行效率,控制集群負載均衡。
[0025](4)本發明使用序列文件實現對大文件的定位,使每個map進程分別處理大文件內不同起始位置的數據,控制簡單,易於操作。
【專利附圖】

【附圖說明】
[0026]圖1為本發明基於Hadoop集群的超大文件並行數據塊定位的方法流程圖。【具體實施方式】[0027]下面結合附圖對本發明的【具體實施方式】進行進一步的詳細描述。
[0028]本發明通過控制Map的數量和序列,確定map進程與多數據塊之間的映射關係,並且可以定位數據塊在文件中的位置,讓指定Map進程處理指定數據塊。如圖1所示,本發明的具體步驟如下:
[0029]步驟1:通過搭建Hadoop環境組建Hadoop集群,配置HDFS關鍵屬性;
[0030]將Hadoop環境部署到4個計算機節點上,其中1個計算機節點為名稱節點(namenode),另外3臺為數據節點(datanode),共同承擔計算機存儲任務,HDFS存儲副本數為3,所述集群中的每個計算機節點均有獨立的CPU、內存、本地硬碟和作業系統;所述集群中的每個計算機節點通過乙太網或Infiniband(支持多並發連結的「轉換線纜技術」)互聯。[0031 ] 所述的HDFS關鍵屬性包括:
[0032](a)配置默認文件系統,定義主機系統名稱及名稱節點工作的埠號;
[0033](b)配置名稱節點存儲永久性元數據的目錄列表;
[0034](c)配置數據節點存放數據塊的目錄列表;
[0035](d)配置數據節點數據存儲的副本數量;
[0036]步驟2:構造特定的序列文件;所述的特定序列文件的內容為整型數,每個整型數獨佔1行,序列文件中每行的值為每個map進程要處理的超大文件中的數據塊的偏移量,序列文件的行數等於map進程的個數和需要處理的數據塊的個數;
[0037]構造序列文件的方法為如下方法的任意一種:
[0038](a)使用Microsoft Office Excel按列方式生成特定的序列,然後以列方式拷貝到文本文件中;
[0039](b)在vim編輯器命令模式下,鍵入命令生成特定的序列;
[0040](c)手動生成需要的不規則序列,通過批處理文件或腳本文件生成特定序列;
[0041]步驟3:修改用戶程序使得用戶程序能夠接收標準輸入流傳遞的數據,將該數據轉換成整型數據,並通過該整型數據設置程序中要讀的超大文件中的數據塊的起始地址;
[0042]步驟4:通過Hadoop集群的streaming (使用非JAVA語言調用map和reduce函數技術)方式調用步驟(3)中修改後的用戶程序和步驟(2)中的序列文件完成並行數據塊的定位,完成並行數據定位的方法為:通過步驟(2)中的超大數據的偏移量和步驟(3)中的超大文件的起始地址完成並行數據的定位,將Hadoop集群的input選項設置為步驟(3)中生成的序列文件,將inputformat選項設置為map進程數量由輸入的序列文件行數決定。
[0043]本發明說明書中未作詳細描述的內容屬於本領域技術人員的公知技術。
【權利要求】
1.一種基於Hadoop集群的超大文件並行數據塊定位方法,其特徵在於包括步驟如下: 步驟1:通過搭建Hadoop環境組建Hadoop集群,配置HDFS關鍵屬性; 步驟2:構造特定的序列文件;所述的特定序列文件的內容為整型數,每個整型數獨佔I行,序列文件中每行的值為每個map進程要處理的超大文件中的數據塊的偏移量,序列文件的行數等於map進程的個數和需要處理的數據塊的個數; 構造序列文件的方法為如下方法的任意一種: (a)使用MicrosoftOffice Excel按列方式生成特定的序列,然後以列方式拷貝到文本文件中; (b)在vim編輯器命令模式下,鍵入命令生成特定的序列文件; (c)手動生成需要的不規則序列文件 Cd)通過批處理文件或腳本文件生成特定序列文件; 步驟3:修改用戶程序使用戶程序能夠接收由標準輸入流傳遞的數據,將該數據轉換成整型數據,並通過該整型數據設置程序中要讀的超大文件中的數據塊的起始地址; 步驟4:通過Hadoop集群的streaming方式調用步驟(3)中修改後的用戶程序和步驟(2)中的序列文件完成並行數據塊的定位,完成並行數據定位的方法為:通過使用Hadoop集群的streaming方式實現定位程序並行化,通過步驟(2)中序列文件的超大數據的偏移量和步驟(3 )中的超大文件的起始地址完成數據的定位。
2.如權利要求1所述的一種基於Hadoop集群的超大文件並行數據塊定位方法,其特徵在於:所述集群中的每個計算機節點均有獨立的CPU、內存、本地硬碟和作業系統。
3.如權利要求1所述的一種基於Hadoop集群的超大文件並行數據塊定位方法,其特徵在於:所述集群中的每個計算機節點通過乙太網或Infiniband互聯。
【文檔編號】G06F17/30GK103699627SQ201310712421
【公開日】2014年4月2日 申請日期:2013年12月20日 優先權日:2013年12月20日
【發明者】孫彥猛, 蘇麗, 劉文俊, 張博為 申請人:北京遙測技術研究所, 航天長徵火箭技術有限公司

同类文章

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

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有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-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀