一種基于hadoop異構存儲的數據存儲方法及系統的制作方法
【技術領域】
[0001]本發明涉及分布式架構領域,特別涉及一種基于hadoop異構存儲的數據存儲方法及系統。
【背景技術】
[0002]Hadoop是一個分布式系統基礎架構,用戶可以在不了解分布式底層細節的情況下,開發分布式程序,充分利用集群的威力高速運算和存儲。Hadoop實現了一個分布式文件系統(Hadoop Distributed File System),簡稱HDFS,HDFS有著高容錯性的特點,并且設計用來部署在低廉的(low-cost)硬件上。Hadoop以并行的方式工作,通過并行處理加快處理速度,能夠處理PB級數據。但現有的hadoop集群一般都是采用單一的機械硬盤作存儲,沒有按使用頻率區分數據的級別,在使用過程中經常因磁盤I/O瓶頸影響效率。
[0003]因而現有技術還有待改進和提高。
【發明內容】
[0004]本發明要解決的技術問題在于,針對現有技術的不足,提供一種基于hadoop異構存儲的數據存儲方法及系統,其能夠解決現有采用單一的機械硬盤作存儲,沒有按使用頻率區分數據的級別,在使用過程中經常因磁盤1/0瓶頸影響效率的問題。
[0005]為了解決上述技術問題,本發明所采用的技術方案如下:
一種基于hadoop異構存儲的數據存儲方法,其包括:
A、獲取設置于hadoop集群的數據節點上的存儲硬盤中的數據在一段時間內的被訪問頻率;
B、根據所述被訪問頻率,查找預先設置與所述被訪問頻率對應的數據存儲硬盤,確定為所述被訪問頻率數據的存儲硬盤;
C、根據所述被訪問頻率數據的存儲硬盤,將所述數據迀移至所述存儲硬盤。
[0006]所述基于hadoop異構存儲的數據存儲方法,其還包括,預先設置用于確定被訪問頻率與存儲硬盤對應關系的閾值、以及被訪問頻率與存儲硬盤的對應關系;所述關系為:
被訪問頻率小于第一閾值,數據存儲于低速機械硬盤,
第一閾值小于被訪問頻率,且被訪問頻率小于第二閾值,數據存儲于高速機械硬盤, 被訪問頻率大于第二閾值,數據存儲于SSD高速硬盤。
[0007]所述基于hadoop異構存儲的數據存儲方法,其中,所述存儲硬盤包括:SSD高速硬盤、高速機械硬盤和低速機械硬盤。
[0008]所述基于hadoop異構存儲的數據存儲方法,其中,所述步驟A具體包括:
Al、記錄數據在一段時間內被訪問次數;
A2、根據數據被訪問次數,計算數據被訪問頻率。
[0009]所述基于hadoop異構存儲的數據存儲方法,其中,所述數據被訪問次數記錄于設置于數據訪問層的訪問日志記錄層。
[0010]所述數據被訪問次數為數據讀取次數、寫入次數、以及刪除次數的和。
[0011]—種基于hadoop異構存儲的數據存儲系統,其包括:
獲取模塊,用于獲取設置于hadoop集群的數據節點上的存儲硬盤中的數據在一段時間內的被訪問頻率;
查找模塊,用于根據所述被訪問頻率,查找預先設置與所述被訪問頻率對應的數據存儲硬盤,確定為所述被訪問頻率數據的存儲硬盤;
迀移模塊,用于根據所述被訪問頻率數據的存儲硬盤,將所述數據迀移至所述數據存儲硬盤。
[0012]所述基于hadoop異構存儲的數據存儲系統,其還包括:
預設模塊,用于預先設置用于確定被訪問頻率與存儲硬盤對應關系的閾值、以及被訪冋頻率與存儲硬盤的對應關系;所述關系為:
被訪問頻率小于第一閾值,數據存儲于低速機械硬盤,
第一閾值小于被訪問頻率,且被訪問頻率小于第二閾值,數據存儲于高速機械硬盤, 被訪問頻率大于第二閾值,數據存儲于SSD高速硬盤。
[0013]所述存儲硬盤包括:SSD高速硬盤、高速機械硬盤和低速機械硬盤。
[0014]所述基于hadoop異構存儲的數據存儲系統,其中,所述獲取模塊包括:
記錄子單元,用于記錄數據在一段時間內被訪問次數;
計算單元,用于根據數據被訪問次數,計算數據被訪問頻率。
[0015]有益效果:與現有技術相比,本發明所提供基于hadoop異構存儲的數據存儲方法及系統,其首先,獲取數據在一段時間內被訪問頻率;其次,根據所述被訪問頻率,查找預先設置與所述被訪問頻率對應的數據存儲硬盤,確定為所述被訪問頻率數據的存儲硬盤;最后,根據所述被訪問頻率數據的存儲硬盤,將所述數據迀移至所述數據存儲硬盤。通過獲取數據在最近一周的使用頻率,根椐數據的使用頻率不同,自動將hadoop數據分級存儲,將使用頻率高的數據存放在SSD高速硬盤,將使用頻率高中等的數據放在高速機械硬盤上,將使用頻率低的數據存放在低速機械硬盤上,提升系統的整體性能。從根本上解決了現有采用單一的機械硬盤作存儲,沒有按使用頻率區分數據的級別,在使用過程中經常因磁盤I/0瓶頸影響效率的問題。
【附圖說明】
[0016]圖1為本發明提供基于hadoop異構存儲的數據存儲方法較佳實施例的流程圖。
[0017]圖2為本發明提供基于hadoop異構存儲的數據存儲系統的結構原理圖。
【具體實施方式】
[0018]本發明提供一種基于hadoop異構存儲的數據存儲方法及系統,為使本發明的目的、技術方案及效果更加清楚、明確,以下參照附圖并舉實施例對本發明進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發明,并不用于限定本發明。
[0019]下面結合附圖,通過對實施例的描述,對
【發明內容】
作進一步說明。
[0020]請參見圖1,圖1為本發明提供基于hadoop異構存儲的數據存儲方法較佳實施例的流程圖。所述方法包括如下步驟: 一種基于hadoop異構存儲的數據存儲方法,其包括:
S1、獲取設置于hadoop集群的數據節點上的存儲硬盤中的數據在一段時間內的被訪問頻率。
[0021]具體地,所述獲取數據在一段時間內被訪問頻率,其具體過程為:首先記錄數據一段時間內的訪問次數,再根據所述訪問次數計算該數據的被訪問頻率。所述被訪問頻率的計算公式可以為:
被訪問頻率=一段時間訪問次數/一段時間。
[0022]其中,所述數據被訪問次數為數據讀取次數、寫入次數、刪除次數的和。
[0023]也就是說,所述被訪問頻率指的是一段時間內的平均訪問次數。其可以是一個小時內的平均訪問次數,也可以是一天內的平均訪問次數,還可以是一周內的平均訪問次數。所述被訪問頻率所表述的時間段可以根據用戶需求自行設定,也可以預設設置。這里,對于時間段不做具體限制,僅給出例子加以說明。例如,所述一段時間為一周,頻率表示數據一周內被訪問頻率,指的是每天被訪問的平均次數;其計算公式:
被訪問頻率=一周內數據被訪問次數/ 一周的天數7。
[0024]進一步,所數據被訪問次數記錄于設置于數據訪問層的訪問日志記錄層;所述訪問日志記錄層為增設的。所述訪問日志記錄層記錄每個數據被訪問的情況。當數據被訪問時,查找訪問日志記錄層內可以將數據被訪問的情況與被訪問的時間作為一組信息存儲,其按照時間由早先近的順序存儲。這樣,系統設定每天固定時間獲取今天以前的一周內數據被訪問的頻率,根據被訪問頻率對數據進行迀移;實現了每天根據前一周數據被訪問頻率自動分級存儲數據。
[0025]進一步,所述數據記錄功能可以系統設定的,其也可以根據用戶需求自行設定開啟/關閉,如果關閉,那么SSD高速硬盤、高速機械硬盤、低速機械硬盤被看做一個機械硬盤,其存儲數據的順序為依次存儲,可以先存儲SSD高速硬盤,在存儲高速機械硬盤,最后存儲低速機械硬盤。也可以先存儲低速機械硬盤,在存儲高速機械硬盤,最后存儲SSD高速硬盤,這里對于存儲順序不做限制。當開啟,則根據數據被訪問頻率將數據存儲于其被訪問頻率所對應的硬盤,例如,所述數據的被訪問頻率與SSD高速硬盤對數據被訪問頻率的要求相匹配,則將所述數據存儲于SSD高速硬盤。
[0026]S2、根據所述被訪問頻率,查找預先設置與頻率對應的數據存儲硬盤,確定為所述被訪問頻率數據的存儲硬盤。
[0027]具體地,根據所述被訪問頻率,查找預先設置與被訪問頻率對應的數據存儲硬盤,確定為所述數