亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種數(shù)據(jù)恢復方法及裝置與流程

文檔序號:12801842閱讀:260來源:國知局
一種數(shù)據(jù)恢復方法及裝置與流程

本發(fā)明涉及數(shù)據(jù)處理技術領域,尤其涉及一種數(shù)據(jù)恢復方法及裝置。



背景技術:

隨著大數(shù)據(jù)時代的到來,數(shù)據(jù)信息日益重要,數(shù)據(jù)保護問題日漸突出。數(shù)據(jù)保護、數(shù)據(jù)的容災是非常重要的話題。

據(jù)統(tǒng)計,導致系統(tǒng)出現(xiàn)問題的原因分布比例一般為:硬件故障占44%、人為錯誤占32%、軟件故障占14%、病毒影響占7%、自然災難占3%。數(shù)據(jù)容災系統(tǒng),就是為計算機信息系統(tǒng)提供的一個能應付各種災難的環(huán)境。當計算機系統(tǒng)在遭受如火災、水災、地震、戰(zhàn)爭等不可抗拒的自然災難以及計算機犯罪、計算機病毒、掉電、網(wǎng)絡/通信失敗、硬件/軟件錯誤和人為操作錯誤等人為災難時,容災系統(tǒng)將保證用戶數(shù)據(jù)的安全性。甚至,一個更加完善的容災系統(tǒng),還能提供不間斷的應用服務。

hadoop分布式文件系統(tǒng)(hadoopdistributedfilesystem,簡稱hdfs)被設計成適合運行在通用硬件上的分布式文件系統(tǒng)。它和現(xiàn)有的分布式文件系統(tǒng)有很多共同點。但同時,它和其他的分布式文件系統(tǒng)也有很明顯的區(qū)別。hdfs是一個高度容錯性的系統(tǒng),適合部署在廉價的機器上。hdfs能提供高吞吐量的數(shù)據(jù)訪問,非常適合大規(guī)模數(shù)據(jù)集上的應用。

隨著hdfs的使用越來越普遍,如何把hdfs中的大量數(shù)據(jù)快速準確地備份到遠端服務器,并且能夠在指定的集群上迅速恢復成為了一個顯著問題。

在系統(tǒng)損壞恢復過程中,我們希望hdfs能夠盡快從備份服務器恢復數(shù)據(jù),并向外提供服務,以減小服務的中斷時間。

但是一個hdfs系統(tǒng)中往往保存了大量的數(shù)據(jù),盡管使用了多個數(shù)據(jù)節(jié)點并行傳輸?shù)姆椒?,依然需要花費相當長的時間從備份服務器恢復過來,導致服 務中斷時間過長。



技術實現(xiàn)要素:

本發(fā)明提供一種數(shù)據(jù)恢復方法和裝置,該方法和裝置用于解決現(xiàn)有技術中hdfs系統(tǒng)從備份服務器恢復數(shù)據(jù)時服務中斷時間過長的問題。

本發(fā)明公開一種數(shù)據(jù)恢復方法,當分布式文件系統(tǒng)hdfs進行數(shù)據(jù)恢復時,包括:

下載元數(shù)據(jù)列表和數(shù)據(jù)塊列表;

接收訪問任一目標文件的請求,根據(jù)所述請求在所述元數(shù)據(jù)中查找所述目標文件所包含的目標數(shù)據(jù)塊信息;

若在數(shù)據(jù)塊列表中查找到所述目標數(shù)據(jù)塊信息,則獲取所述目標數(shù)據(jù)塊信息對應的下載完成標志;

根據(jù)所述下載完成標志確定所述目標數(shù)據(jù)塊信息未下載完成,則在所述數(shù)據(jù)塊列表中查找所述目標數(shù)據(jù)塊信息的屬性信息;

從所述屬性信息中獲取所述目標數(shù)據(jù)塊信息的預期訪問時間,并根據(jù)所述請求的屬性調(diào)整所述預期訪問時間。

可選的,數(shù)據(jù)節(jié)點根據(jù)所述請求的屬性調(diào)整所述預期訪問時間包括:

當根據(jù)所述請求的屬性信息確定所述請求為讀取所述任一文件,則確定所述預期訪問時間與當前的系統(tǒng)時間中的最小值,將所述預期訪問時間調(diào)整為所述最小值,使得系統(tǒng)利用調(diào)整后的所述預期訪問時間恢復所述目標數(shù)據(jù)塊信息。

可選的,將所述預期訪問時間調(diào)整為所述最小值之后,該方法進一步包括:

在所述數(shù)據(jù)塊列表中找到所述目標數(shù)據(jù)塊信息對應的目標數(shù)據(jù)節(jié)點,通過遠程過程調(diào)用向所述目標數(shù)據(jù)節(jié)點發(fā)送調(diào)整信息,使得該目標數(shù)據(jù)節(jié)點根據(jù)該調(diào)整信息更新預存的所述目標數(shù)據(jù)塊信息的預期訪問時間。

可選的,下載元數(shù)據(jù)列表和數(shù)據(jù)塊列表之前,該方法進一步包括:

設置操作閾值,使得在數(shù)據(jù)恢復操作未完成時可以對外提供對數(shù)據(jù)進行操作的服務;其中,所述操作閾值為已恢復的數(shù)據(jù)塊的數(shù)量占待恢復的所有數(shù)據(jù)塊的數(shù)量的比例。

可選的,該方法還包括:

當根據(jù)所述請求的屬性信息確定所述請求為刪除所述任一文件,則在所述數(shù)據(jù)塊列表中查找所述目標數(shù)據(jù)塊信息對應的目標數(shù)據(jù)節(jié)點,通過遠程過程調(diào)用向所述目標數(shù)據(jù)節(jié)點發(fā)送刪除消息;使得所述目標數(shù)據(jù)節(jié)點收到所述刪除消息后,在數(shù)據(jù)塊的下載隊列中刪除所述目標數(shù)據(jù)塊信息對應的信息。

可選的,根據(jù)所述請求的屬性調(diào)整所述預期訪問時間之后,進一步包括:

數(shù)據(jù)節(jié)點中維護一個數(shù)據(jù)塊下載的優(yōu)先隊列,數(shù)據(jù)節(jié)點每次從隊列中取出預期訪問時間最小的塊信息;

從備份端服務器下載塊信息對應的數(shù)據(jù)塊。

本發(fā)明還提供一種數(shù)據(jù)恢復裝置,包括:

列表模塊,用于當分布式文件系統(tǒng)hdfs進行數(shù)據(jù)恢復時,下載元數(shù)據(jù)列表和數(shù)據(jù)塊列表;

第一查找模塊,用于接收訪問任一目標文件的請求,根據(jù)所述請求在所述元數(shù)據(jù)中查找所述目標文件所包含的目標數(shù)據(jù)塊信息;

獲取模塊,用于若在數(shù)據(jù)塊列表中查找到所述目標數(shù)據(jù)塊信息,則獲取所述目標數(shù)據(jù)塊信息對應的下載完成標志;

第二查找模塊,用于根據(jù)所述下載完成標志確定所述目標數(shù)據(jù)塊信息未下載完成,則在所述數(shù)據(jù)塊列表中查找所述目標數(shù)據(jù)塊信息的屬性信息;

調(diào)整模塊,用于從所述屬性信息中獲取所述目標數(shù)據(jù)塊信息的預期訪問時間,并根據(jù)所述請求的屬性調(diào)整所述預期訪問時間。

可選的,所述調(diào)整模塊具體用于當根據(jù)所述請求的屬性信息確定所述請求為讀取所述任一文件,則確定所述預期訪問時間與當前的系統(tǒng)時間中的最小值,將所述預期訪問時間調(diào)整為所述最小值,使得系統(tǒng)利用調(diào)整后的所述預期訪問時間恢復所述目標數(shù)據(jù)塊信息。

可選的,所述調(diào)整模塊還用于將所述預期訪問時間調(diào)整為所述最小值之后,在所述數(shù)據(jù)塊列表中找到所述目標數(shù)據(jù)塊信息對應的目標數(shù)據(jù)節(jié)點,通過遠程過程調(diào)用向所述目標數(shù)據(jù)節(jié)點發(fā)送調(diào)整信息,使得該目標數(shù)據(jù)節(jié)點根據(jù)該調(diào)整信息更新預存的所述目標數(shù)據(jù)塊信息的預期訪問時間。

可選的,該裝置還包括:

恢復模塊,用于下載元數(shù)據(jù)列表和數(shù)據(jù)塊列表之前,設置操作閾值,使得 在數(shù)據(jù)恢復操作未完成時可以對外提供對數(shù)據(jù)進行操作的服務;其中,所述操作閾值為已恢復的數(shù)據(jù)塊的數(shù)量占待恢復的所有數(shù)據(jù)塊的數(shù)量的比例。

可選的,該裝置還包括:

刪除模塊,用于當根據(jù)所述請求的屬性信息確定所述請求為刪除所述任一文件,則在所述數(shù)據(jù)塊列表中查找所述目標數(shù)據(jù)塊信息對應的目標數(shù)據(jù)節(jié)點,通過遠程過程調(diào)用向所述目標數(shù)據(jù)節(jié)點發(fā)送刪除消息;使得所述目標數(shù)據(jù)節(jié)點收到所述刪除消息后,在數(shù)據(jù)塊的下載隊列中刪除所述目標數(shù)據(jù)塊信息對應的信息。

可選的,該裝置還包括:

下載模塊,用于數(shù)據(jù)節(jié)點中維護一個數(shù)據(jù)塊下載的優(yōu)先隊列,數(shù)據(jù)節(jié)點每次從隊列中取出預期訪問時間最小的塊信息;從備份端服務器下載塊信息對應的數(shù)據(jù)塊。

上述技術方案中的一個或兩個,至少具有如下技術效果:

本發(fā)明公開的方法和裝置,在下載數(shù)據(jù)塊過程中,首先下載并載入元數(shù)據(jù)開始提供文件系統(tǒng)服務;在名字節(jié)點和數(shù)據(jù)節(jié)點中保存要下載的數(shù)據(jù)塊列表;根據(jù)恢復過程中客戶端對數(shù)據(jù)塊的訪問需求調(diào)整恢復的優(yōu)先級,優(yōu)先恢復客戶端訪問的文件;對于客戶端刪除的文件放棄恢復過程以節(jié)省時間;可以實現(xiàn)高效的分布式文件系統(tǒng)按需恢復。

附圖說明

圖1為本發(fā)明實施例提供一種數(shù)據(jù)恢復方法的流程圖;

圖2為本發(fā)明實施例所提供方法所實用的裝置結構示意圖;

圖3為本發(fā)明實施例所提供方法在具體環(huán)境中使用時的流程示意圖;

圖4為本發(fā)明實施例提供一種數(shù)據(jù)恢復裝置的結構示意圖。

具體實施方式

為使本發(fā)明實施例的目的、技術方案和優(yōu)點更加清楚,下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述。

在hdfs中并不會所有的數(shù)據(jù)在同一時刻被訪問,一般需要立刻訪問的數(shù)據(jù)往往只是一小部分。為了減小數(shù)據(jù)恢復時服務中斷時間,讓hdfs盡快開始向外提供服務,本發(fā)明實施例提供的方法中,可以按需對數(shù)據(jù)進行恢復;即在數(shù)據(jù)恢復過程中,實時地根據(jù)訪問情況調(diào)整恢復的優(yōu)先級,先恢復需要盡快訪問的數(shù)據(jù),后恢復不需要現(xiàn)在訪問的數(shù)據(jù)。通過上述方法,大大地減少了服務的中斷恢復時間,并且提供了更靈活的控制恢復過程的方法。以下結合具體的附圖對本發(fā)明實施例提供的方法作詳細說明,具體包括:

如圖1所示,本發(fā)明實施例提供一種數(shù)據(jù)恢復方法,當hadoop分布式文件系統(tǒng)進行數(shù)據(jù)恢復時,具體包括:

步驟101,下載元數(shù)據(jù)列表和數(shù)據(jù)塊列表;

現(xiàn)有技術中,如果數(shù)據(jù)沒有恢復到一定程度,hdfs文件系統(tǒng)處于安全模式,此時只支持文件系統(tǒng)目錄樹的查看,不支持對文件系統(tǒng)的修改和對文件的讀??;為了保證即使在文件系統(tǒng)中的數(shù)據(jù)塊沒有被下載完成時,文件系統(tǒng)依然可以對外提供完整的服務。在該實施例中,可以在步驟101下載元數(shù)據(jù)列表和數(shù)據(jù)塊列表之前,進一步包括:

設置操作閾值,使得在數(shù)據(jù)恢復操作未完成時可以對外提供對數(shù)據(jù)進行操作的服務;其中,所述操作閾值為已恢復的數(shù)據(jù)塊的數(shù)量占待恢復的所有數(shù)據(jù)塊的數(shù)量的比例。具體使用時,該操作閾值可以設置為系統(tǒng)能夠接受的最小值,例如設置為0。

步驟102,接收訪問任一目標文件的請求,根據(jù)所述請求在所述元數(shù)據(jù)中查找所述目標文件所包含的目標數(shù)據(jù)塊信息;

步驟103,若在數(shù)據(jù)塊列表中查找到所述目標數(shù)據(jù)塊信息,則獲取所述目標數(shù)據(jù)塊信息對應的下載完成標志;

步驟104,根據(jù)所述下載完成標志確定所述目標數(shù)據(jù)塊信息未下載完成,則在所述數(shù)據(jù)塊列表中查找所述目標數(shù)據(jù)塊信息的屬性信息;

步驟105,從所述屬性信息中獲取所述目標數(shù)據(jù)塊信息的預期訪問時間,并根據(jù)所述請求的屬性調(diào)整所述預期訪問時間。

在本發(fā)明實施例中,根據(jù)請求的屬性調(diào)整預期訪問時間包括的具體實現(xiàn)方式包括多種以下提供一種最優(yōu)化的方式,具體可以是:

當根據(jù)所述請求的屬性信息確定所述請求為讀取所述任一文件,則確定所述預期訪問時間與當前的系統(tǒng)時間中的最小值,將所述預期訪問時間調(diào)整為所述最小值,使得系統(tǒng)利用調(diào)整后的所述預期訪問時間恢復所述目標數(shù)據(jù)塊信息。

進一步,將預期訪問時間調(diào)整為系統(tǒng)時間和下載之前設定的預期訪問時間中的最小值后,該方法進一步包括:

在所述數(shù)據(jù)塊列表中找到所述目標數(shù)據(jù)塊信息對應的目標數(shù)據(jù)節(jié)點,通過遠程過程調(diào)用向所述目標數(shù)據(jù)節(jié)點發(fā)送調(diào)整信息,使得該目標數(shù)據(jù)節(jié)點根據(jù)該調(diào)整信息更新預存的所述目標數(shù)據(jù)塊信息的預期訪問時間。

另外,在數(shù)據(jù)恢復過程中,對于客戶端刪除的文件可以選擇放棄恢復過程以節(jié)省數(shù)據(jù)恢復的時間;可以實現(xiàn)高效的分布式文件系統(tǒng)按需恢復。具體實現(xiàn)可以是:

當根據(jù)所述請求的屬性信息確定所述請求為刪除所述任一文件,則在所述數(shù)據(jù)塊列表中查找所述目標數(shù)據(jù)塊信息對應的目標數(shù)據(jù)節(jié)點,通過遠程過程調(diào)用向所述目標數(shù)據(jù)節(jié)點發(fā)送刪除消息;使得所述目標數(shù)據(jù)節(jié)點收到所述刪除消息后,在數(shù)據(jù)塊的下載隊列中刪除所述目標數(shù)據(jù)塊信息對應的信息。

基于上述方案根據(jù)訪問的需求對數(shù)據(jù)塊的預期訪問時間進行調(diào)整之后,具體進行數(shù)據(jù)塊的下載包括:

數(shù)據(jù)節(jié)點中維護一個數(shù)據(jù)塊下載的優(yōu)先隊列,數(shù)據(jù)節(jié)點每次從隊列中取出預期訪問時間最小的塊信息;

從備份端服務器下載塊信息對應的數(shù)據(jù)塊。

另外,數(shù)據(jù)塊下載完成后,通過遠程過程調(diào)用名字節(jié)點(namenode)上的一個函數(shù),告知名字節(jié)點(namenode)已經(jīng)完成下載的該數(shù)據(jù)塊的信息,數(shù)據(jù)塊的信息可以包括數(shù)據(jù)塊的id、生成標志、長度;名字節(jié)點namenode把對應數(shù)據(jù)塊的下載完成標志置為true。

上述實施例所提供的方法應用到具體的環(huán)境中時,本發(fā)明實施例所實用的使用環(huán)境如圖2所示,具體實現(xiàn)流程可以是:

該實施例中hdfs從備份服務器下載數(shù)據(jù),然后hdfs中的名字節(jié)點(namenode)和數(shù)據(jù)節(jié)點(datanode)對下載的數(shù)據(jù)進行對應的處理,具體實現(xiàn)包括:

名字節(jié)點(namenode)的內(nèi)存中包括從備份端服務器下載的所有數(shù)據(jù)塊的列表,同時hdfs啟動時指定了數(shù)據(jù)節(jié)點(datanode)的個數(shù),namenode將所有的數(shù)據(jù)塊平均分配給所有的datanode,即在datanode向namenode注冊時,namenode把分配給該namenode的數(shù)據(jù)塊列表發(fā)送給它,并且namenode在內(nèi)存中保存一個數(shù)據(jù)塊信息到datanode的映射關系(即數(shù)據(jù)塊列表:block-datanodemap),數(shù)據(jù)塊的信息包括數(shù)據(jù)塊的id、生成標志、長度、下載完成標志(默認false)、預期訪問時間(一個長整數(shù),默認為最大的長整數(shù))。

在實施例中,從備份服務器下載數(shù)據(jù)的具體實現(xiàn)可以是:

數(shù)據(jù)節(jié)點中保存有一個數(shù)據(jù)塊下載的優(yōu)先隊列,數(shù)據(jù)節(jié)點每次從隊列中取出預期訪問時間最小的數(shù)據(jù)塊(預期訪問時間類型是一個長整數(shù),初始化所有數(shù)據(jù)塊的預期訪問時間為最大的長整數(shù)),從備份端服務器下載該數(shù)據(jù)塊,下載完成后,通過遠程過程調(diào)用調(diào)用名字節(jié)點上的一個函數(shù),告知名字節(jié)點已經(jīng)完成下載的該數(shù)據(jù)塊的信息,包括數(shù)據(jù)塊的id、生成標志、長度,名字節(jié)點把對應數(shù)據(jù)塊的下載完成標志置為true。

啟動名字節(jié)點,下載元數(shù)據(jù);

在配置文件中進行配置,hdfs通過命令行啟動,指定恢復選項、要恢復的文件系統(tǒng)名稱和數(shù)據(jù)節(jié)點個數(shù)。配置文件優(yōu)選是hdfs-backup.xml。配置文件存放于$hadoop/etc/hadoop/hdfs-backup.xml,需要配置備份服務器的地址端口。配置完成以后hdfs系統(tǒng)執(zhí)行恢復命令啟動,指定恢復選項-recoverfrombackup、要恢復的文件系統(tǒng)名稱、數(shù)據(jù)節(jié)點的個數(shù)。名字節(jié)點會從備份端服務器下載元數(shù)據(jù)的壓縮文件到本地,并把該文件載入內(nèi)存中得到文件系統(tǒng)的元數(shù)據(jù),也即文件系統(tǒng)的目錄樹;同時,名字節(jié)點從備份端服務器獲取文件系統(tǒng)中所包含的所有數(shù)據(jù)塊的列表,放入內(nèi)存中。

具體地,hdfs默認在文件系統(tǒng)中現(xiàn)有的數(shù)據(jù)塊的數(shù)量占應該包含的所有數(shù)據(jù)塊的數(shù)量的比例小于某個設定的閾值時,hdfs文件系統(tǒng)處于安全模式,此時只支持文件系統(tǒng)目錄樹的查看,不支持對文件系統(tǒng)的修改和對文件的讀?。粸榱思词乖谖募到y(tǒng)中所有的數(shù)據(jù)塊都沒有被下載時,文件系統(tǒng)依然可以對外提供完整的服務,在該實施例中可以將該閾值設置為0。

啟動數(shù)據(jù)節(jié)點,下載塊數(shù)據(jù);

數(shù)據(jù)節(jié)點啟動之后向名字節(jié)點進行注冊。名字節(jié)點在注冊時向datanode分配需要下載的數(shù)據(jù)塊的列表。數(shù)據(jù)節(jié)點從備份服務器下載列表中的數(shù)據(jù)。

具體地,名字節(jié)點的內(nèi)存中包括從備份端服務器下載的所有數(shù)據(jù)塊的列表,同時hdfs啟動時指定了數(shù)據(jù)節(jié)點的個數(shù),名字節(jié)點將所有的數(shù)據(jù)塊平均分配給所有的數(shù)據(jù)節(jié)點,即在數(shù)據(jù)節(jié)點向名字節(jié)點注冊時,名字節(jié)點把分配給該數(shù)據(jù)節(jié)點的數(shù)據(jù)塊列表發(fā)送給它,并且名字節(jié)點在內(nèi)存中保存一個數(shù)據(jù)塊信息到數(shù)據(jù)節(jié)點的映射關系(即數(shù)據(jù)塊列表:block-datanodemap),數(shù)據(jù)塊的信息包括數(shù)據(jù)塊的id、生成標志、長度、下載完成標志(默認false)、預期訪問時間(一個長整數(shù),默認為最大的長整數(shù))。

具體地,數(shù)據(jù)節(jié)點中保存有一個數(shù)據(jù)塊下載的優(yōu)先隊列,數(shù)據(jù)節(jié)點每次從隊列中取出預期訪問時間最小的塊(預期訪問時間類型是一個長整數(shù),初始化所有數(shù)據(jù)塊的預期訪問時間為最大的長整數(shù)),從備份端服務器下載該數(shù)據(jù)塊,下載完成后,通過遠程過程調(diào)用調(diào)用名字節(jié)點上的一個函數(shù),告知名字節(jié)點已經(jīng)完成下載的該數(shù)據(jù)塊的信息,包括數(shù)據(jù)塊的id、生成標志、長度,名字節(jié)點把對應數(shù)據(jù)塊的下載完成標志置為true。

如圖3所示,基于上述數(shù)據(jù)下載的方法,如果在數(shù)據(jù)還沒有恢復完成時,接收到客戶端發(fā)送的訪問某一數(shù)據(jù)的請求(該訪問請求可以是讀取某一數(shù)據(jù)也可以是刪除數(shù)據(jù)),則具體該方法還包括:

步驟301,客戶端讀取或刪除任一文件;

步驟302,在元數(shù)據(jù)中查找該任一文件對應的數(shù)據(jù)塊列表;

步驟303,在數(shù)據(jù)塊列表中查找數(shù)據(jù)塊列表中查找數(shù)據(jù)塊更新預期訪問時間或刪除數(shù)據(jù)塊,并發(fā)送指令到相應的數(shù)據(jù)節(jié)點;

步驟304,數(shù)據(jù)節(jié)點根據(jù)名字節(jié)點的指令更新相應的預期訪問時間或刪除相應的數(shù)據(jù)塊;

數(shù)據(jù)節(jié)點在下載數(shù)據(jù)時候是根據(jù)預先設置的優(yōu)先隊列,預先設置的優(yōu)先隊列是以預期訪問時間排序的優(yōu)先隊列。

步驟305,數(shù)據(jù)節(jié)點根據(jù)修改后的優(yōu)先隊列中的順序,逐個下載數(shù)據(jù)塊。

為了更詳細的說明,數(shù)據(jù)讀取和刪除的具體實現(xiàn),一下分別對數(shù)據(jù)讀取和 刪除的具體實現(xiàn)做進一步的說明,具體包括:

(1)根據(jù)訪問文件情況改變優(yōu)先級。

客戶端向名字節(jié)點發(fā)送打開文件命令;名字節(jié)點在內(nèi)存中的元數(shù)據(jù)中查找到該文件所包含的待讀取數(shù)據(jù)塊,在block-datanodemap中查找該待讀取數(shù)據(jù)塊,若未找到,則說明要讀取的數(shù)據(jù)塊是啟動之后新建的文件,進行正常的讀寫操作;否則查看數(shù)據(jù)塊的下載完成標志的值。如果所有數(shù)據(jù)塊的下載完成標志都為true(表示已經(jīng)下載完成),則進行正常的讀寫操作。如果存在數(shù)據(jù)塊的下載完成標志為false(表示未下載完成),則對客戶端返回一個“數(shù)據(jù)塊下載中”錯誤,要求客戶端稍后訪問該文件;同時,在block-datanodemap中查找該數(shù)據(jù)塊的信息,取現(xiàn)在的系統(tǒng)時間和該數(shù)據(jù)塊的預期訪問時間中的最小值設置為該數(shù)據(jù)塊的預期訪問時間,若該數(shù)據(jù)塊的預期訪問時間改變,則在block-datanodemap中找到它對應的數(shù)據(jù)節(jié)點,通過遠程過程調(diào)用向該數(shù)據(jù)節(jié)點發(fā)送信息,更新該數(shù)據(jù)塊的預期訪問時間。

(2)根據(jù)刪除文件情況改變優(yōu)先級。

客戶端向名字節(jié)點發(fā)送刪除文件命令;名字節(jié)點在內(nèi)存中的元數(shù)據(jù)中查找到該文件所包含的數(shù)據(jù)塊,在block-datanodemap中查找這些數(shù)據(jù)塊,若未找到,則說明要刪除的是啟動之后新建的文件,進行正常的刪除操作;否則進行正常的刪除元數(shù)據(jù)操作,并查看所包含的數(shù)據(jù)塊的下載完成標志的值;對于下載完成標志為true的數(shù)據(jù)塊,進行正常的刪除操作;對于下載完成標志為false的數(shù)據(jù)塊,在block-datanodemap中查找該數(shù)據(jù)塊對應的數(shù)據(jù)節(jié)點,通過遠程過程調(diào)用向該數(shù)據(jù)節(jié)點發(fā)送刪除消息;數(shù)據(jù)節(jié)點收到消息后,若下載隊列中有該數(shù)據(jù)塊,則從數(shù)據(jù)塊的下載隊列中刪除該數(shù)據(jù)塊。

完成恢復過程。在執(zhí)行上面的恢復步驟時,檢測名字節(jié)點中的block-datanodemap,當block-datanodemap變?yōu)榭栈蚱渲兴械臄?shù)據(jù)塊的下載標志都為true時,刪除namenode內(nèi)存中的block-datanodemap,完成恢復過程。

本發(fā)明實施例提供所提供的方法在下載數(shù)據(jù)塊過程中,首先下載并載入元數(shù)據(jù)開始提供文件系統(tǒng)服務;在名字節(jié)點和數(shù)據(jù)節(jié)點中保存要下載的數(shù)據(jù)塊列表;根據(jù)恢復過程中客戶端對數(shù)據(jù)塊的訪問需求調(diào)整恢復的優(yōu)先級,優(yōu)先恢復 客戶端訪問的文件;對于客戶端刪除的文件放棄恢復過程以節(jié)省時間;可以實現(xiàn)高效的分布式文件系統(tǒng)按需恢復。

實施例

如圖4所示,本發(fā)明實施例還提供一種數(shù)據(jù)恢復裝置,該裝置包括:

列表模塊401,用于當分布式文件系統(tǒng)hdfs進行數(shù)據(jù)恢復時,下載元數(shù)據(jù)列表和數(shù)據(jù)塊列表;

第一查找模塊402,用于接收訪問任一目標文件的請求,根據(jù)所述請求在所述元數(shù)據(jù)中查找所述目標文件所包含的目標數(shù)據(jù)塊信息;

獲取模塊403,用于若在數(shù)據(jù)塊列表中查找到所述目標數(shù)據(jù)塊信息,則獲取所述目標數(shù)據(jù)塊信息對應的下載完成標志;

第二查找模塊404,用于根據(jù)所述下載完成標志確定所述目標數(shù)據(jù)塊信息未下載完成,則在所述數(shù)據(jù)塊列表中查找所述目標數(shù)據(jù)塊信息的屬性信息;

調(diào)整模塊405,用于從所述屬性信息中獲取所述目標數(shù)據(jù)塊信息的預期訪問時間,并根據(jù)所述請求的屬性調(diào)整所述預期訪問時間。

可選的,該調(diào)整模塊405具體用于當根據(jù)所述請求的屬性信息確定所述請求為讀取所述任一文件,則確定所述預期訪問時間與當前的系統(tǒng)時間中的最小值,將所述預期訪問時間調(diào)整為所述最小值,使得系統(tǒng)利用調(diào)整后的所述預期訪問時間恢復所述目標數(shù)據(jù)塊信息。

可選的,該調(diào)整模塊405還用于將所述預期訪問時間調(diào)整為所述最小值之后,在所述數(shù)據(jù)塊列表中找到所述目標數(shù)據(jù)塊信息對應的目標數(shù)據(jù)節(jié)點,通過遠程過程調(diào)用向所述目標數(shù)據(jù)節(jié)點發(fā)送調(diào)整信息,使得該目標數(shù)據(jù)節(jié)點根據(jù)該調(diào)整信息更新預存的所述目標數(shù)據(jù)塊信息的預期訪問時間。

另外,該裝置還包括:

恢復模塊,用于下載元數(shù)據(jù)列表和數(shù)據(jù)塊列表之前,設置操作閾值,使得在數(shù)據(jù)恢復操作未完成時可以對外提供對數(shù)據(jù)進行操作的服務;其中,所述操作閾值為已恢復的數(shù)據(jù)塊的數(shù)量占待恢復的所有數(shù)據(jù)塊的數(shù)量的比例。

可選的,為了節(jié)省數(shù)據(jù)恢復的時間,對于客戶端要刪除的文件可以選擇放棄恢,則該裝置還包括:

刪除模塊,用于當根據(jù)所述請求的屬性信息確定所述請求為刪除所述任一 文件,則在所述數(shù)據(jù)塊列表中查找所述目標數(shù)據(jù)塊信息對應的目標數(shù)據(jù)節(jié)點,通過遠程過程調(diào)用向所述目標數(shù)據(jù)節(jié)點發(fā)送刪除消息;使得所述目標數(shù)據(jù)節(jié)點收到所述刪除消息后,在數(shù)據(jù)塊的下載隊列中刪除所述目標數(shù)據(jù)塊信息對應的信息。

可選的,該裝置還包括:

下載模塊,用于數(shù)據(jù)節(jié)點中維護一個數(shù)據(jù)塊下載的優(yōu)先隊列,數(shù)據(jù)節(jié)點每次從隊列中取出預期訪問時間最小的塊信息;從備份端服務器下載塊信息對應的數(shù)據(jù)塊。

本發(fā)明所提供的方法及裝置,具有以下優(yōu)點:

本發(fā)明公開的方法和裝置,在下載數(shù)據(jù)塊過程中,首先下載并載入元數(shù)據(jù)開始提供文件系統(tǒng)服務;在名字節(jié)點和數(shù)據(jù)節(jié)點中保存要下載的數(shù)據(jù)塊列表;根據(jù)恢復過程中客戶端對數(shù)據(jù)塊的訪問需求調(diào)整恢復的優(yōu)先級,優(yōu)先恢復客戶端訪問的文件;對于客戶端刪除的文件放棄恢復過程以節(jié)省時間;可以實現(xiàn)高效的分布式文件系統(tǒng)按需恢復。

顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。

當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1