[發明專利]一種基于Hadoop的海量小文件讀取方法有效
| 申請號: | 201810499647.1 | 申請日: | 2018-05-22 |
| 公開(公告)號: | CN108804566B | 公開(公告)日: | 2019-11-29 |
| 發明(設計)人: | 魏文國;彭建烽;戴青云;蔡君;趙慧民;謝桂園 | 申請(專利權)人: | 廣東技術師范大學 |
| 主分類號: | G06F16/182 | 分類號: | G06F16/182;G06F16/172 |
| 代理公司: | 44202 廣州三環專利商標代理有限公司 | 代理人: | 梁順宜;郝傳鑫<國際申請>=<國際公布> |
| 地址: | 510000 廣東省*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 小文件 查詢 讀取 文件內容 海量小文件 讀取命令 緩存模塊 返回 數據合并模塊 文件名查詢 讀取效率 緩存機制 接收用戶 調用 數據庫 合并 | ||
1.一種基于Hadoop的海量小文件讀取方法,其特征在于,所述讀取方法適用于具有數據合并模塊和HBase緩存模塊的HDFS系統;所述讀取方法包括:
接收用戶輸入的小文件讀取命令;其中,所述小文件讀取命令包括用戶ID和小文件文件名;
根據所述用戶ID和所述小文件文件名查詢所述HBase緩存模塊;
如果查詢到相應的文件內容,則返回所述HBase緩存模塊查詢到的文件內容;如果查詢不到相應的文件內容,則根據所述小文件文件名查詢所述HDFS系統的數據庫,并判斷是否查詢到相應的文件內容;
如果是,則返回所述數據庫查詢到的文件內容;
否則,調用Hadoop archive工具的API訪問所述小文件文件名對應的HAR文件,并返回所述HAR文件;
其中,所述數據合并模塊采用的數據合并方法具體為:步驟A:當客戶端上傳待存儲文件后,遍歷HDFS上所有的文件,結合用戶訪問偏好模型找出所述待存儲文件的關聯性文件集合;其中,所述用戶訪問偏好模型是根據用戶訪問日志記錄而統計得出;步驟B:依次將所述關聯性文件集合的文件和所述待存儲文件添加到待合并隊列中;步驟C:判斷所述待合并隊列中的所有文件總大小是否超過128MB,如果是,則執行步驟D;否則,執行步驟E;步驟D:將所述待合并隊列中的所有文件合并成一個數據塊,并清空所述待合并隊列中的文件信息和刪除已合并文件的源文件,返回步驟B;步驟E:判斷所述關聯性文件集合的文件和所述待存儲文件是否均添加到所述待合并隊列中;如果是,則將所述待合并隊列中的所有文件合并成一個數據塊,并清空所述待合并隊列中的文件信息和刪除已合并文件的源文件,再執行步驟F;否則,返回步驟B;步驟F:將已合并的所有數據塊存儲到HDFS系統中。
2.根據權利要求1所述的基于Hadoop的海量小文件讀取方法,其特征在于,所述用戶訪問偏好模型是根據用戶訪問日志記錄而統計得出,具體為:
從所述用戶訪問日志記錄中統計得出活躍用戶集;
采用bean對象表示所述活躍用戶集訪問過的小文件;所述小文件為大小小于或等于2MB的文件;其中,所述bean對象的屬性包括訪問該小文件的用戶ID、用戶訪問過的小文件名、以及該小文件被其訪問過的次數;
結合JDBC技術,將所述bean對象持久化到Mysql數據庫存儲,并根據存儲的數據,計算任意兩個不同訪問行為的相似度;
當所述任意兩個不同訪問行為的相似度為正時,確定所述任意兩個訪問行為的用戶為相似用戶,將相似用戶的id記錄并采用關聯性文件集合存儲所有相似用戶訪問過且具有關聯的文件信息;
根據所述關聯性文件集合,構建所述用戶訪問偏好模型。
3.根據權利要求1所述的基于Hadoop的海量小文件讀取方法,其特征在于,所述HBase緩存模塊采用的緩存方法為:
獲取用戶訪問日志記錄,并從所述用戶訪問日志記錄中統計得出活躍用戶集;
結合對數線性模型,計算出所述活躍用戶集中每個活躍用戶訪問過的文件的熱度預測值,并按照熱度預測值由大到小將各文件進行排序,將排名前20%的文件標記為熱點文件;
獲取所述熱點文件,并采用Hbase數據庫緩存所述熱點文件的相關信息。
4.根據權利要求3所述的基于Hadoop的海量小文件讀取方法,其特征在于,所述從所述用戶訪問日志記錄中統計得出活躍用戶集,具體為:
篩選出所述用戶訪問日志記錄中訪問資源后綴名以jpg結尾的記錄行;其中,所述記錄行包括:用戶IP、訪問頁面URL、訪問起始時間、訪問狀態、訪問流量;
編寫日志解析類對所述記錄行進行解析,并使用一個二維數組來存儲訪問者IP和小文件名;
遍歷所述二維數組中的訪問者IP,并使用HashMap集合統計每一個訪問者IP訪問量;所述HashMap集合的Key值為訪問者IP,Value值是訪問量;
對所述HashMap集合按照Value值來進行降序排序,篩選出排名靠前20%的訪問者IP,使用ArrayList集合存儲該IP子集,并標記為活躍用戶集。
5.根據權利要求4所述的基于Hadoop的海量小文件讀取方法,其特征在于,所述結合對數線性模型,計算出所述活躍用戶集中每個活躍用戶訪問過的文件的熱度預測值,并按照熱度預測值由大到小將各文件進行排序,將排名前20%的文件標記為熱點文件,具體為:
將從所述ArrayList集合提取出的訪問者IP,與從所述二維數組中提取出訪問者IP進行匹配;
當匹配成功后,以匹配成功的訪問者IP作為關鍵詞,查詢出每個用戶的訪問起始時間,再結合對數線性模型,計算出所述活躍用戶集中每個活躍用戶訪問過的文件的熱度預測值,并按照熱度預測值由大到小將各文件進行排序,將排名前20%的文件標記為熱點文件;
所述對數線性模型為:lnNi=k(t)lnNi(t)+b(t);
其中,Ni為文件i的熱度預測值,Ni(t)為文件i在觀察時間內的訪問量,觀察時間長度為t,k(t)與b(t)是線性關系的相關參數,根據線性回歸方法計算得到的最優值。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于廣東技術師范大學,未經廣東技術師范大學許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810499647.1/1.html,轉載請聲明來源鉆瓜專利網。





