[發明專利]一種基于HDFS的海量小文件處理方法在審
| 申請號: | 201510724658.1 | 申請日: | 2015-10-29 |
| 公開(公告)號: | CN105404652A | 公開(公告)日: | 2016-03-16 |
| 發明(設計)人: | 陳潔;王龍寶;張雪潔;孫澤群;安紀存;馬鵬舉 | 申請(專利權)人: | 河海大學 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 南京經緯專利商標代理有限公司 32200 | 代理人: | 朱小兵 |
| 地址: | 211100 江蘇*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 hdfs 海量 文件 處理 方法 | ||
1.一種基于HDFS的海量小文件處理方法,其特征在于,具體步驟如下:
步驟1,根據設定的第一閾值,對服務器接收的上傳文件進行篩選過濾;
步驟2,獲取篩選過濾得到的小文件的文件名、文件長度及文件上傳時間戳,通過安全散列算法SHA-1生成文件存儲ID;
步驟3,利用Status標志位表示文件存儲狀態,其中,Status標志位共有0、1、2三種狀態,分別表示緩沖區文件、HDFS中已同步文件和已刪除文件;
步驟4,采用分布式無關系型數據庫Hbase存儲小文件的元數據,并將Hbase數據持久化在HDFS中;
步驟5,根據服務器內存大小,申請一定內存的緩沖區,建立上傳隊列,將文件緩存至緩沖區,若緩沖區中的文件大小已超過設定的第二閾值或將要上傳的小文件大小超過剩余緩沖區,則將緩沖區中的小文件合并并且清空緩沖區;其中,小文件合并為:將緩沖區中的小文件合并成結構為<key,value>鍵值集合形式的Mapfile,即將每個小文件的文件名作為key值、文件內容字節流作為value值進行拼接;
步驟6,將步驟5中合并后的文件通過異步線程延時上傳至HDFS。
2.根據權利要求1所述的一種基于HDFS的海量小文件處理方法,其特征在于,步驟1中篩選過濾得到的大文件通過Namenode分配文件存儲塊并存入HDFS,所述大文件的大小大于設定的第一閾值。
3.根據權利要求1所述的一種基于HDFS的海量小文件處理方法,其特征在于,步驟2中通過安全散列算法SHA-1生成文件存儲ID,具體為:利用小文件文件名與上傳時間戳進行字符串拼接,再對拼接得到的字符串使用安全散列算法SHA-1,從而生成小文件的存儲ID。
4.根據權利要求1所述的一種基于HDFS的海量小文件處理方法,其特征在于,步驟4中采用分布式無關系型數據庫Hbase存儲小文件的元數據,具體為:以文件存儲ID作為行鍵,建立Attr與Var兩個列族,其中,列族Attr包括文件名、文件長度、文件存儲ID、文件存儲塊四個列;列族Var包括文件狀態標志位、文件更新時間兩個列。
5.根據權利要求1所述的一種基于HDFS的海量小文件處理方法,其特征在于,步驟3中根據Status標志位的不同狀態,對文件采用不同的讀取方法,具體為:對標志位為0的文件直接進行本地IO,對標志位為1的文件通過Mapfile讀取接口進行讀取,對該標志位為2的文件不予以讀取。
6.根據權利要求1所述的一種基于HDFS的海量小文件處理方法,其特征在于,利用Status標志位,實現文件的即時增刪改,具體為:增加文件時將該文件的標志位置為0;刪除文件時將該文件的標志位置為2;更新文件時,將舊文件標志位置為2,并將新文件標志位置為0。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于河海大學,未經河海大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201510724658.1/1.html,轉載請聲明來源鉆瓜專利網。





