塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的方法、裝置和系統(tǒng)的制作方法
【專(zhuān)利摘要】本發(fā)明實(shí)施方式提出一種塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的方法、裝置和系統(tǒng)。將分布式文件系統(tǒng)中的數(shù)據(jù)節(jié)點(diǎn)和塊同步并行計(jì)算系統(tǒng)中對(duì)應(yīng)的工作節(jié)點(diǎn)布置在同一物理設(shè)備上;按照分布式文件系統(tǒng)的文件帶區(qū)格式對(duì)工作節(jié)點(diǎn)上的檢查點(diǎn)數(shù)據(jù)文件進(jìn)行劃分,并創(chuàng)建相對(duì)應(yīng)的校驗(yàn)文件;將劃分后的檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,在該同一物理設(shè)備上從工作節(jié)點(diǎn)移動(dòng)到數(shù)據(jù)節(jié)點(diǎn);將移動(dòng)到該數(shù)據(jù)節(jié)點(diǎn)的檢查點(diǎn)數(shù)據(jù)文件和校驗(yàn)文件復(fù)制到該塊同步并行計(jì)算系統(tǒng)的另外數(shù)據(jù)節(jié)點(diǎn)中。本發(fā)明實(shí)施方式減少了數(shù)據(jù)復(fù)制拷貝時(shí)間并降低了數(shù)據(jù)傳輸開(kāi)銷(xiāo),從而提高了數(shù)據(jù)處理效率。
【專(zhuān)利說(shuō)明】塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的方法、裝置和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實(shí)施方式涉及塊同步并行計(jì)算【技術(shù)領(lǐng)域】,更具體地,涉及一種塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的方法、裝置和系統(tǒng)。
【背景技術(shù)】
[0002]并行計(jì)算或稱(chēng)平行計(jì)算是相對(duì)于串行計(jì)算的,可分為時(shí)間上的并行和空間上的并行。時(shí)間上的并行就是指流水線技術(shù),而空間上的并行則是指用多個(gè)處理器并發(fā)的執(zhí)行計(jì)算。塊同步并行計(jì)算是一種并行計(jì)算方法,它由Valiant于1990提出。在塊同步并行計(jì)算中,將計(jì)算分為多個(gè)超步。在超步中,所有的進(jìn)程并行執(zhí)行本地計(jì)算階段和全局通信階段,最后進(jìn)行柵欄同步。本地計(jì)算階段可以并行,全局通信階段可以使用多種消息系統(tǒng),它支持傳統(tǒng)的并行消息傳遞系統(tǒng),并簡(jiǎn)化了海量數(shù)據(jù)處理的復(fù)雜程度。
[0003]在塊同步并行計(jì)算中,程序劃分為超步,所以避免了傳統(tǒng)消息傳遞系統(tǒng)中存在的死鎖問(wèn)題。目前,圖計(jì)算系統(tǒng)Pregel、Apache的開(kāi)源項(xiàng)目Hama和加州大學(xué)伯克利分校的Spark分布式計(jì)算系統(tǒng),都是基于塊同步并行計(jì)算,它們都支持在塊同步并行計(jì)算模型上的多次迭代,以支持?jǐn)?shù)據(jù)挖掘、圖分析和社會(huì)網(wǎng)絡(luò)分析和大規(guī)模矩陣運(yùn)算等海量數(shù)據(jù)處理任務(wù)。由于超步間數(shù)據(jù)可以保存在本地,相比MapReduce等傳統(tǒng)海量數(shù)據(jù)處理技術(shù),同步并行計(jì)算效率更高,更充分地利用了數(shù)據(jù)的局部性。
[0004]塊同步并行計(jì)算系統(tǒng)一般和并行分布式容錯(cuò)文件系統(tǒng)一起,用于處理海量數(shù)據(jù)。并行分布式容錯(cuò)文件系統(tǒng)包括單一節(jié)點(diǎn)的名字節(jié)點(diǎn)(Name Node)和眾多可擴(kuò)展的數(shù)據(jù)節(jié)點(diǎn)(DataNode)。名字節(jié)點(diǎn)主要負(fù)責(zé)存儲(chǔ)信息的元數(shù)據(jù)管理、數(shù)據(jù)完整性和訪問(wèn)安全性;數(shù)據(jù)節(jié)點(diǎn)負(fù)責(zé)進(jìn)行實(shí)際數(shù)據(jù)信息的存儲(chǔ)工作,并直接與客戶端程序進(jìn)行交互進(jìn)行數(shù)據(jù)傳輸。
[0005]在上述包含塊同步并行計(jì)算系統(tǒng)與并行分布式容錯(cuò)文件系統(tǒng)的統(tǒng)一計(jì)算模型中,檢查點(diǎn)是一種重要的容災(zāi)方法。比如,在同步并行計(jì)算的迭代計(jì)算中,如果在超步k后系統(tǒng)產(chǎn)生了檢查點(diǎn),當(dāng)計(jì)算任務(wù)η.1所在的主機(jī)出錯(cuò)時(shí),系統(tǒng)只需要在正常工作的主機(jī)上恢復(fù)從超步k檢查點(diǎn)開(kāi)始到超步η之間、計(jì)算任務(wù)η.1所依賴(lài)的計(jì)算量,而不需要從頭開(kāi)始進(jìn)行錯(cuò)誤恢復(fù)。
[0006]然而,在現(xiàn)有技術(shù)中,與檢查點(diǎn)相關(guān)的數(shù)據(jù)都是串行處理的,而串行處理的處理效率很低。而且,在現(xiàn)有技術(shù)中,每次與檢查點(diǎn)相關(guān)的串行處理都需要與元數(shù)據(jù)節(jié)點(diǎn)具有交互操作,這同樣降低了數(shù)據(jù)處理效率。
【發(fā)明內(nèi)容】
[0007]本發(fā)明實(shí)施方式提出一種塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的方法,從而提高數(shù)據(jù)處
理效率。
[0008]本發(fā)明實(shí)施方式提出一種塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的裝置,從而提高數(shù)據(jù)處
理效率。
[0009]本發(fā)明實(shí)施方式提出一種塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的系統(tǒng),從而提高數(shù)據(jù)處理效率。
[0010]本發(fā)明實(shí)施方式的具體方案如下:
[0011]一種塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的方法,該方法包括:
[0012]將分布式文件系統(tǒng)中的數(shù)據(jù)節(jié)點(diǎn)和塊同步并行計(jì)算系統(tǒng)中對(duì)應(yīng)的工作節(jié)點(diǎn)布置在同一物理設(shè)備上;
[0013]按照所述分布式文件系統(tǒng)的文件帶區(qū)格式對(duì)所述工作節(jié)點(diǎn)上的檢查點(diǎn)數(shù)據(jù)文件進(jìn)行劃分,并創(chuàng)建相對(duì)應(yīng)的校驗(yàn)文件;
[0014]將所述劃分后的檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,在該同一物理設(shè)備上從所述工作節(jié)點(diǎn)移動(dòng)到數(shù)據(jù)節(jié)點(diǎn);
[0015]將移動(dòng)到該數(shù)據(jù)節(jié)點(diǎn)的檢查點(diǎn)數(shù)據(jù)文件和校驗(yàn)文件復(fù)制到該塊同步并行計(jì)算系統(tǒng)的另外數(shù)據(jù)節(jié)點(diǎn)中。
[0016]一種塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的裝置,該裝置包括節(jié)點(diǎn)布置單元、檢查點(diǎn)數(shù)據(jù)文件劃分單元、數(shù)據(jù)移動(dòng)單元和數(shù)據(jù)復(fù)制單元,其中:
[0017]節(jié)點(diǎn)布置單元,用于將分布式文件系統(tǒng)中的數(shù)據(jù)節(jié)點(diǎn)和塊同步并行計(jì)算系統(tǒng)中對(duì)應(yīng)的工作節(jié)點(diǎn)布置在同一物理設(shè)備上;
[0018]檢查點(diǎn)數(shù)據(jù)文件劃分單元,用于按照所述分布式文件系統(tǒng)的文件帶區(qū)格式對(duì)所述工作節(jié)點(diǎn)上的檢查點(diǎn)數(shù)據(jù)文件進(jìn)行劃分,并創(chuàng)建相對(duì)應(yīng)的校驗(yàn)文件;
[0019]數(shù)據(jù)移動(dòng)單元,用于將所述劃分后的檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,在該同一物理設(shè)備上從所述工作節(jié)點(diǎn)移動(dòng)到數(shù)據(jù)節(jié)點(diǎn);
[0020]數(shù)據(jù)復(fù)制單元,用于將移動(dòng)到該數(shù)據(jù)節(jié)點(diǎn)的檢查點(diǎn)數(shù)據(jù)文件和校驗(yàn)文件復(fù)制到該塊同步并行計(jì)算系統(tǒng)的另外數(shù)據(jù)節(jié)點(diǎn)中。
[0021]一種塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的系統(tǒng),該系統(tǒng)包括分布式文件子系統(tǒng)和塊同步并行計(jì)算子系統(tǒng),所述分布式文件子系統(tǒng)包括數(shù)據(jù)節(jié)點(diǎn);所述塊同步并行計(jì)算子系統(tǒng)包括對(duì)應(yīng)于數(shù)據(jù)節(jié)點(diǎn)的工作節(jié)點(diǎn);所述數(shù)據(jù)節(jié)點(diǎn)和對(duì)應(yīng)的工作節(jié)點(diǎn)布置在同一物理設(shè)備上;
[0022]工作節(jié)點(diǎn),用于按照所述分布式文件子系統(tǒng)的文件帶區(qū)格式對(duì)其上的檢查點(diǎn)數(shù)據(jù)文件進(jìn)行劃分,并創(chuàng)建相對(duì)應(yīng)的校驗(yàn)文件,且將所述劃分后的檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,在該同一物理設(shè)備上從所述工作節(jié)點(diǎn)移動(dòng)到數(shù)據(jù)節(jié)點(diǎn);
[0023]所述數(shù)據(jù)節(jié)點(diǎn),用于將移動(dòng)到其上的檢查點(diǎn)數(shù)據(jù)文件和校驗(yàn)文件復(fù)制到該塊同步并行計(jì)算子系統(tǒng)的另外數(shù)據(jù)節(jié)點(diǎn)中。
[0024]從上述技術(shù)方案可以看出,在本發(fā)明實(shí)施方式中,將分布式文件系統(tǒng)中的數(shù)據(jù)節(jié)點(diǎn)和塊同步并行計(jì)算系統(tǒng)中對(duì)應(yīng)的工作節(jié)點(diǎn)布置在同一物理設(shè)備上;按照分布式文件系統(tǒng)的文件帶區(qū)格式對(duì)工作節(jié)點(diǎn)上的檢查點(diǎn)數(shù)據(jù)文件進(jìn)行劃分,并創(chuàng)建相對(duì)應(yīng)的校驗(yàn)文件;將劃分后的檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,在該同一物理設(shè)備上從工作節(jié)點(diǎn)移動(dòng)到數(shù)據(jù)節(jié)點(diǎn);將移動(dòng)到該數(shù)據(jù)節(jié)點(diǎn)的檢查點(diǎn)數(shù)據(jù)文件和校驗(yàn)文件復(fù)制到該塊同步并行計(jì)算系統(tǒng)的另外數(shù)據(jù)節(jié)點(diǎn)中。由此可見(jiàn),應(yīng)用本發(fā)明實(shí)施方式之后,通過(guò)將數(shù)據(jù)文件預(yù)先劃分為文件帶區(qū),并計(jì)算校驗(yàn),然后一次性上傳到并行分布式容錯(cuò)文件系統(tǒng)中,減少了復(fù)制拷貝數(shù)據(jù)的時(shí)間并降低數(shù)據(jù)傳輸?shù)拈_(kāi)銷(xiāo),從而提高了數(shù)據(jù)處理效率。
[0025]另外,本發(fā)明實(shí)施方式還提供了一種在塊同步并行計(jì)算系統(tǒng)中,結(jié)合并行分布式文件系統(tǒng)快速恢復(fù)數(shù)據(jù)的方法,通過(guò)并行下載保存的檢查點(diǎn)文件帶區(qū)和校驗(yàn)文件,能夠快速恢復(fù)檢查點(diǎn),從而保證系統(tǒng)穩(wěn)定性。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0026]圖1為現(xiàn)有技術(shù)中并行分布式文件系統(tǒng)的架構(gòu)示意圖;
[0027]圖2為現(xiàn)有技術(shù)中塊同步并行計(jì)算示意圖;
[0028]圖3為現(xiàn)有技術(shù)中塊同步并行計(jì)算系統(tǒng)上的多次迭代計(jì)算示意圖;
[0029]圖4為根據(jù)本發(fā)明實(shí)施方式的塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的方法流程圖;
[0030]圖5為根據(jù)本發(fā)明實(shí)施方式的塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的裝置結(jié)構(gòu)示意圖;
[0031]圖6為根據(jù)本發(fā)明實(shí)施方式的塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的系統(tǒng)結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0032]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述。
[0033]首先對(duì)現(xiàn)有技術(shù)中的并行分布式文件系統(tǒng)和塊同步并行計(jì)算進(jìn)行概括說(shuō)明。圖1為現(xiàn)有技術(shù)中并行分布式文件系統(tǒng)的架構(gòu)示意圖;圖2為現(xiàn)有技術(shù)中塊同步并行計(jì)算示意圖。
[0034]并行分布式容錯(cuò)文件系統(tǒng)中往往需要支持文件帶區(qū)(塊)劃分,并通過(guò)對(duì)文件帶區(qū)做數(shù)據(jù)復(fù)制,數(shù)據(jù)一致性檢查,達(dá)到容錯(cuò)的效果,同時(shí),數(shù)據(jù)的帶區(qū)化也是并行訪問(wèn)的基礎(chǔ)。針對(duì)互聯(lián)網(wǎng)應(yīng)用的大規(guī)模文件系統(tǒng),目前已經(jīng)出現(xiàn)了專(zhuān)用的并行分布式容錯(cuò)文件系統(tǒng)。下面以HDFS系統(tǒng)為實(shí)例,對(duì)并行分布式文件系統(tǒng)的工作原理和系統(tǒng)架構(gòu)進(jìn)行說(shuō)明。
[0035]如圖1所示,HDFS采用傳統(tǒng)的客戶機(jī)-服務(wù)器模式構(gòu)建平臺(tái)實(shí)現(xiàn),包括兩個(gè)主要實(shí)現(xiàn)模塊:單一節(jié)點(diǎn)的NameNode (master)和眾多可擴(kuò)展的DataNode (slave)。NameNode主要負(fù)責(zé)平臺(tái)中存儲(chǔ)信息的元數(shù)據(jù)管理、數(shù)據(jù)完整性和訪問(wèn)安全性。DataNode負(fù)責(zé)進(jìn)行實(shí)際數(shù)據(jù)信息的存儲(chǔ)工作,并直接與客戶端程序進(jìn)行交互進(jìn)行數(shù)據(jù)傳輸。客戶端(client)用于文件系統(tǒng)客戶訪問(wèn)分布式文件系統(tǒng),它會(huì)和NameNode模塊和DataNode模塊通信,完成客戶要求的文件操作。
[0036]如圖1所示,客戶端如果需要訪問(wèn)文件的元數(shù)據(jù)時(shí),只需要和NameNode進(jìn)行通信。如果要讀數(shù)據(jù),那么通過(guò)訪問(wèn)NameNode可以得到數(shù)據(jù)塊的存放位置,然后到DataNode上讀取數(shù)據(jù)。客戶端要訪問(wèn)的數(shù)據(jù)正好在數(shù)據(jù)塊I中,那么客戶端通過(guò)NameNode查到數(shù)據(jù)塊的位置后,接著訪問(wèn)DataNodel,就可以讀到數(shù)據(jù)塊。如果客戶端需要寫(xiě)數(shù)據(jù),也是通過(guò)訪問(wèn)NameNode得到數(shù)據(jù)位置,然后發(fā)起寫(xiě)請(qǐng)求,所寫(xiě)的數(shù)據(jù)會(huì)同時(shí)寫(xiě)到多個(gè)DataNode上,以保證必要的數(shù)據(jù)復(fù)制數(shù)。如果某一個(gè)DataNode崩潰,那么,它上面的數(shù)據(jù)會(huì)從其它正常的DataNode,復(fù)制到另一個(gè)正常的DataNode,以保證必要的數(shù)據(jù)復(fù)制數(shù)。
[0037]塊同步并行計(jì)算系統(tǒng)一般和并行分布式文件系統(tǒng)一起工作,用于處理海量數(shù)據(jù)。塊同步并行計(jì)算是一種并行計(jì)算方法,通過(guò)將計(jì)算分為多個(gè)超步,在塊同步并行計(jì)算一個(gè)超步中,所有的進(jìn)程并行執(zhí)行本地計(jì)算階段、全局通信階段,最后進(jìn)行柵欄同步。本地計(jì)算階段可以并行,全局通信階段可以使用多種消息系統(tǒng),它支持傳統(tǒng)的并行消息傳遞系統(tǒng),并簡(jiǎn)化了海量數(shù)據(jù)處理的復(fù)雜程度。該模型一般由一個(gè)組織者協(xié)調(diào),所有的工作者在同步執(zhí)行,數(shù)據(jù)從輸入的隊(duì)列中讀取。[0038]圖2為現(xiàn)有技術(shù)中塊同步并行計(jì)算示意圖。塊同步并行計(jì)算中,一個(gè)程序劃分為超步,因此避免了傳統(tǒng)消息傳遞系統(tǒng)中存在的死鎖問(wèn)題。圖3為現(xiàn)有技術(shù)中塊同步并行計(jì)算系統(tǒng)上的多次迭代計(jì)算示意圖。塊同步并行計(jì)算是一種典型的分布式計(jì)算,一般和并行分布式容錯(cuò)文件系統(tǒng)一起工作。在上述計(jì)算模型中,檢查點(diǎn)是一種重要的容災(zāi)方法,實(shí)現(xiàn)迭代塊同步并行計(jì)算容災(zāi),一般使用并行分布式容錯(cuò)文件系統(tǒng)。
[0039]如圖3所示的迭代計(jì)算中,如果在超步k后系統(tǒng)產(chǎn)生檢查點(diǎn),如果計(jì)算任務(wù)η.1所在的主機(jī)出錯(cuò),那么,系統(tǒng)只需要在正常工作的系統(tǒng)上恢復(fù)從超步k檢查點(diǎn)開(kāi)始到超步η間,計(jì)算任務(wù)η.1依賴(lài)的那些計(jì)算,而不需要從頭開(kāi)始進(jìn)行錯(cuò)誤恢復(fù)。
[0040]對(duì)于大規(guī)模并行分布式文件系統(tǒng)(比如GFS或HDFS系統(tǒng)),通常將文件劃分為文件帶區(qū),而且在名字節(jié)點(diǎn)中集中保存有文件的元信息,在數(shù)據(jù)節(jié)點(diǎn)上分布保存多份文件帶區(qū)和文件帶區(qū)的校驗(yàn)結(jié)果,以達(dá)到并行分布容錯(cuò)的目的。
[0041]在本發(fā)明實(shí)施方式中,根據(jù)整體同步并行計(jì)算的特點(diǎn),可以利用大規(guī)模并行分布式文件系統(tǒng)的特點(diǎn),實(shí)現(xiàn)檢查點(diǎn)的快速上傳和下載。按照大規(guī)模并行分布式容錯(cuò)文件系統(tǒng)的要求,將進(jìn)入檢查點(diǎn)的數(shù)據(jù)文件劃分為文件帶區(qū)(塊)并計(jì)算校驗(yàn),然后在產(chǎn)生檢查點(diǎn)時(shí),一次性上傳到并行分布式容錯(cuò)文件系統(tǒng)中進(jìn)行存儲(chǔ)。當(dāng)進(jìn)行檢查點(diǎn)恢復(fù)時(shí),可以通過(guò)同時(shí)從多個(gè)數(shù)據(jù)節(jié)點(diǎn)并行加載多個(gè)文件帶區(qū),降低數(shù)據(jù)的導(dǎo)入時(shí)間。
[0042]具體地,本發(fā)明實(shí)施方式通過(guò)對(duì)可能保存在檢查點(diǎn)中的信息進(jìn)行預(yù)處理,形成與大規(guī)模并行分布式文件系統(tǒng)數(shù)據(jù)文件一致的格式。當(dāng)需要生成檢查點(diǎn)時(shí),一次性修改并行分布式容錯(cuò)文件系統(tǒng)的元數(shù)據(jù),以將文件導(dǎo)入到大規(guī)模并行分布式文件系統(tǒng)中。當(dāng)進(jìn)行故障恢復(fù)需要從檢查點(diǎn)中提取數(shù)據(jù)時(shí),可以利用兩者數(shù)據(jù)文件格式一致,直接從大規(guī)模并行分布式文件系統(tǒng)的多個(gè)數(shù)據(jù)節(jié)點(diǎn)上并行獲取文件帶區(qū),從而降低系統(tǒng)恢復(fù)需要的時(shí)間,提高數(shù)據(jù)處理效率。
[0043]下面結(jié)合流程圖對(duì)上述過(guò)程進(jìn)行詳細(xì)描述。
[0044]圖4為根據(jù)本發(fā)明實(shí)施方式的塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的方法流程圖。
[0045]如圖4所示,該方法包括:
[0046]步驟401:將分布式文件系統(tǒng)中的數(shù)據(jù)節(jié)點(diǎn)和塊同步并行計(jì)算系統(tǒng)中對(duì)應(yīng)的工作節(jié)點(diǎn)布置在同一物理設(shè)備上。
[0047]在這里,將分布式文件系統(tǒng)中的數(shù)據(jù)節(jié)點(diǎn)和塊同步并行計(jì)算系統(tǒng)中對(duì)應(yīng)的工作節(jié)點(diǎn)布置在同一物理設(shè)備上,從而為數(shù)據(jù)節(jié)點(diǎn)和工作節(jié)點(diǎn)實(shí)現(xiàn)本地?cái)?shù)據(jù)傳輸創(chuàng)造條件。
[0048]步驟402:按照所述分布式文件系統(tǒng)的文件帶區(qū)格式對(duì)所述工作節(jié)點(diǎn)上的檢查點(diǎn)數(shù)據(jù)文件進(jìn)行劃分,并創(chuàng)建相對(duì)應(yīng)的校驗(yàn)文件。
[0049]在這里,對(duì)可能進(jìn)入檢查點(diǎn)的數(shù)據(jù)文件(即檢查點(diǎn)數(shù)據(jù)文件)進(jìn)行格式處理,使得檢查點(diǎn)數(shù)據(jù)文件的文件格式與分布式文件系統(tǒng)的文件帶區(qū)格式保持一致,從而為后續(xù)的將檢查點(diǎn)數(shù)據(jù)文件直接存儲(chǔ)到分布式文件系統(tǒng)創(chuàng)造條件。在這里,即按照分布式文件系統(tǒng)的文件帶區(qū)格式,將檢查點(diǎn)數(shù)據(jù)文件根據(jù)文件帶區(qū)格式進(jìn)行劃分,同時(shí)創(chuàng)建對(duì)應(yīng)的校驗(yàn)文件。
[0050]在一個(gè)實(shí)施方式中,可以預(yù)先設(shè)置檢查點(diǎn),并預(yù)先針對(duì)設(shè)置的檢查點(diǎn)完成檢查點(diǎn)數(shù)據(jù)文件格式處理以及校驗(yàn)文件創(chuàng)建工作。此時(shí):
[0051]預(yù)先設(shè)置工作節(jié)點(diǎn)上的檢查點(diǎn);
[0052]按照分布式文件系統(tǒng)的文件帶區(qū)格式,對(duì)所述預(yù)先設(shè)置檢查點(diǎn)的檢查點(diǎn)數(shù)據(jù)文件進(jìn)行劃分,并創(chuàng)建相對(duì)應(yīng)的校驗(yàn)文件數(shù)據(jù)文件。
[0053]在一個(gè)實(shí)施方式中,也可以不預(yù)先設(shè)置檢查點(diǎn),而是基于塊同步并行計(jì)算系統(tǒng)的運(yùn)行狀況確定檢查點(diǎn),再完成確定出的檢查點(diǎn)的數(shù)據(jù)文件格式處理以及校驗(yàn)文件創(chuàng)建工作。此時(shí):
[0054]基于所述塊同步并行計(jì)算系統(tǒng)的運(yùn)行狀況確定檢查點(diǎn);
[0055]按照分布式文件系統(tǒng)的文件帶區(qū)格式,對(duì)所述確定檢查點(diǎn)的檢查點(diǎn)數(shù)據(jù)文件進(jìn)行劃分,并創(chuàng)建相對(duì)應(yīng)的校驗(yàn)文件數(shù)據(jù)文件。
[0056]步驟403:將所述劃分后的檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,在該同一物理設(shè)備上從所述工作節(jié)點(diǎn)移動(dòng)到數(shù)據(jù)節(jié)點(diǎn)。
[0057]在這里,可以在該同一物理設(shè)備上將劃分后的檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,從所述工作節(jié)點(diǎn)并行復(fù)制到數(shù)據(jù)節(jié)點(diǎn),然后再刪除工作節(jié)點(diǎn)上的劃分后的檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,從而實(shí)現(xiàn)真正的數(shù)據(jù)移動(dòng)功能,而無(wú)需在工作節(jié)點(diǎn)上再保留檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件。
[0058]步驟404:將移動(dòng)到該數(shù)據(jù)節(jié)點(diǎn)的檢查點(diǎn)數(shù)據(jù)文件和校驗(yàn)文件復(fù)制到該塊同步并行計(jì)算系統(tǒng)的另外數(shù)據(jù)節(jié)點(diǎn)中。
[0059]在這里,在將檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件移動(dòng)到該數(shù)據(jù)節(jié)點(diǎn)后,可以基于分布式文件系統(tǒng)的存儲(chǔ)特點(diǎn),將該檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件復(fù)制到該塊同步并行計(jì)算系統(tǒng)的另外數(shù)據(jù)節(jié)點(diǎn)中,從而保證數(shù)據(jù)的多地備份。
[0060]在一個(gè)實(shí)施方式中,可以首先基于移動(dòng)到數(shù)據(jù)節(jié)點(diǎn)的檢查點(diǎn)數(shù)據(jù)文件和校驗(yàn)文件,修改在名字節(jié)點(diǎn)上所存儲(chǔ)的文件元數(shù)據(jù);然后再根據(jù)所修改的文件元數(shù)據(jù),將移動(dòng)到數(shù)據(jù)節(jié)點(diǎn)的檢查點(diǎn)數(shù)據(jù)文件和校驗(yàn)文件復(fù)制到該塊同步并行計(jì)算系統(tǒng)的另外數(shù)據(jù)節(jié)點(diǎn)。
[0061]在上述流程中,當(dāng)該工作節(jié)點(diǎn)的計(jì)算工作需要被轉(zhuǎn)移到預(yù)先設(shè)定的備份工作節(jié)點(diǎn)時(shí),備份工作節(jié)點(diǎn)從所述該塊同步并行計(jì)算系統(tǒng)的另外數(shù)據(jù)節(jié)點(diǎn)中并行下載所述檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件;備份工作節(jié)點(diǎn)基于所述檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,恢復(fù)該工作節(jié)點(diǎn)的計(jì)算工作。
[0062]基于上述詳細(xì)分析,本發(fā)明實(shí)施方式還提出了一種塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的裝置。
[0063]圖5為根據(jù)本發(fā)明實(shí)施方式的塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的裝置結(jié)構(gòu)示意圖。
[0064]如圖5所示,該裝置包括:節(jié)點(diǎn)布置單元501、檢查點(diǎn)數(shù)據(jù)文件劃分單元502、數(shù)據(jù)移動(dòng)單元503和數(shù)據(jù)復(fù)制單元504。
[0065]其中:
[0066]節(jié)點(diǎn)布置單元501,用于將分布式文件系統(tǒng)中的數(shù)據(jù)節(jié)點(diǎn)和塊同步并行計(jì)算系統(tǒng)中對(duì)應(yīng)的工作節(jié)點(diǎn)布置在同一物理設(shè)備上;
[0067]檢查點(diǎn)數(shù)據(jù)文件劃分單元502,用于按照所述分布式文件系統(tǒng)的文件帶區(qū)格式對(duì)所述工作節(jié)點(diǎn)上的檢查點(diǎn)數(shù)據(jù)文件進(jìn)行劃分,并創(chuàng)建相對(duì)應(yīng)的校驗(yàn)文件;
[0068]數(shù)據(jù)移動(dòng)單元503,用于將所述劃分后的檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,在該同一物理設(shè)備上從所述工作節(jié)點(diǎn)移動(dòng)到數(shù)據(jù)節(jié)點(diǎn);
[0069]數(shù)據(jù)復(fù)制單元504,用于將移動(dòng)到該數(shù)據(jù)節(jié)點(diǎn)的檢查點(diǎn)數(shù)據(jù)文件和校驗(yàn)文件復(fù)制到該塊同步并行計(jì)算系統(tǒng)的另外數(shù)據(jù)節(jié)點(diǎn)中。[0070]在一個(gè)實(shí)施方式中,數(shù)據(jù)移動(dòng)單元501,用于在該同一物理設(shè)備上將劃分后的檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,從所述工作節(jié)點(diǎn)并行復(fù)制到數(shù)據(jù)節(jié)點(diǎn);刪除工作節(jié)點(diǎn)上的所述劃分后的檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件。
[0071]在一個(gè)實(shí)施方式中,該裝置進(jìn)一步包括計(jì)算工作恢復(fù)單元505。
[0072]計(jì)算工作恢復(fù)單元505,用于當(dāng)該工作節(jié)點(diǎn)的計(jì)算工作需要被轉(zhuǎn)移到預(yù)先設(shè)定的備份工作節(jié)點(diǎn)時(shí),使能備份工作節(jié)點(diǎn)從所述該塊同步并行計(jì)算系統(tǒng)的另外數(shù)據(jù)節(jié)點(diǎn)中并行下載所述檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,并使能備份工作節(jié)點(diǎn)基于所述檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,恢復(fù)該工作節(jié)點(diǎn)的計(jì)算工作。
[0073]優(yōu)選地,數(shù)據(jù)移動(dòng)單元503,用于基于移動(dòng)到數(shù)據(jù)節(jié)點(diǎn)的檢查點(diǎn)數(shù)據(jù)文件和校驗(yàn)文件,修改在名字節(jié)點(diǎn)上所存儲(chǔ)的文件元數(shù)據(jù);根據(jù)所修改的文件元數(shù)據(jù),將移動(dòng)到數(shù)據(jù)節(jié)點(diǎn)的檢查點(diǎn)數(shù)據(jù)文件和校驗(yàn)文件復(fù)制到該塊同步并行計(jì)算系統(tǒng)的另外數(shù)據(jù)節(jié)點(diǎn)。
[0074]本發(fā)明實(shí)施方式適合于并行分布式文件子系統(tǒng)和塊同步并行計(jì)算子系統(tǒng)的結(jié)合使用。其中:并行分布式文件子系統(tǒng)是一種支持文件帶區(qū)劃分、數(shù)據(jù)復(fù)制、數(shù)據(jù)一致性檢查和并行訪問(wèn)的分布式文件系統(tǒng);而塊同步并行計(jì)算子系統(tǒng)通過(guò)將計(jì)算分為多個(gè)超步,在一個(gè)超步中所有的進(jìn)程并行執(zhí)行本地計(jì)算階段和全局通信階段,最后進(jìn)行柵欄同步。
[0075]并行分布式容錯(cuò)文件系統(tǒng)中往往需要支持文件帶區(qū)(塊)劃分,并通過(guò)對(duì)文件帶區(qū)做數(shù)據(jù)復(fù)制,數(shù)據(jù)一致性檢查,達(dá)到容錯(cuò)的效果,同時(shí),數(shù)據(jù)的帶區(qū)化也是并行訪問(wèn)的基礎(chǔ)。針對(duì)互聯(lián)網(wǎng)應(yīng)用的大規(guī)模文件系統(tǒng),目前已經(jīng)出現(xiàn)了專(zhuān)用的并行分布式容錯(cuò)文件系統(tǒng),比如:G00gle文件系統(tǒng)和Hadoop分布式文件系統(tǒng)(HDFS)是它們的典型例子。
[0076]在本發(fā)明實(shí)施方式中,并行分布式文件子系統(tǒng)可以具有多種實(shí)施形式,比如可以為GFS或HDFS系統(tǒng),等等。
[0077]下面以并行分布式文件子系統(tǒng)為HDFS系統(tǒng)為實(shí)例,對(duì)本發(fā)明實(shí)施方式進(jìn)行示范性闡述。
[0078]Hadoop是一個(gè)基于Java實(shí)現(xiàn)的、開(kāi)源的、包含分布式文件系統(tǒng)和MapReduce計(jì)算框架的項(xiàng)目。HDFS系統(tǒng)是Hadoop項(xiàng)目中實(shí)現(xiàn)的并行分布式容錯(cuò)文件系統(tǒng)。在HDFS系統(tǒng)中包含有名字節(jié)點(diǎn)(Name Node)和數(shù)據(jù)節(jié)點(diǎn)(Data Node)。名字節(jié)點(diǎn)是HDFS系統(tǒng)的組成部分,是一個(gè)在HDFS實(shí)例中的單獨(dú)機(jī)器上運(yùn)行的軟件;它負(fù)責(zé)管理文件系統(tǒng)名稱(chēng)空間和控制外部客戶機(jī)的訪問(wèn)。數(shù)據(jù)節(jié)點(diǎn)響應(yīng)來(lái)自HDFS客戶機(jī)的讀寫(xiě)請(qǐng)求。它們還響應(yīng)創(chuàng)建、刪除和復(fù)制來(lái)自NameNode的塊命令。
[0079]Hadoop分布式文件系統(tǒng)被設(shè)計(jì)成適合運(yùn)行在通用硬件(commodity hardware)上的分布式文件系統(tǒng)。它和現(xiàn)有的分布式文件系統(tǒng)有很多共同點(diǎn)。但同時(shí),它和其他的分布式文件系統(tǒng)的區(qū)別也是很明顯的。HDFS是一個(gè)高度容錯(cuò)性的系統(tǒng),適合部署在廉價(jià)的機(jī)器上。HDFS能提供高吞吐量的數(shù)據(jù)訪問(wèn),非常適合大規(guī)模數(shù)據(jù)集上的應(yīng)用。
[0080]HDFS采用傳統(tǒng)的客戶機(jī)-服務(wù)器模式構(gòu)建平臺(tái)實(shí)現(xiàn),有兩個(gè)主要實(shí)現(xiàn)模塊:單一節(jié)點(diǎn)的NameNode (master),和眾多可擴(kuò)展的DataNode (slave)。NameNode主要負(fù)責(zé)平臺(tái)中存儲(chǔ)信息的元數(shù)據(jù)管理,負(fù)責(zé)數(shù)據(jù)完整性,訪問(wèn)安全性。DataNode負(fù)責(zé)進(jìn)行實(shí)際數(shù)據(jù)信息的存儲(chǔ)工作,并直接與客戶端程序進(jìn)行交互進(jìn)行數(shù)據(jù)傳輸。客戶端用于文件系統(tǒng)客戶訪問(wèn)分布式文件系統(tǒng),它會(huì)和NameNode模塊和DataNode模塊通信,完成客戶要求的文件操作。
[0081]如:客戶端如果需要訪問(wèn)文件的元數(shù)據(jù)時(shí),只需要和NameNode進(jìn)行通信。如果要讀數(shù)據(jù),通過(guò)訪問(wèn)NameNode可以得到數(shù)據(jù)塊的存放位置,然后到DataNode上讀取數(shù)據(jù)。客戶端通過(guò)NameNode查到數(shù)據(jù)塊的位置后,接著訪問(wèn)DataNodel,就可以讀到數(shù)據(jù)塊。如果客戶端需要寫(xiě)數(shù)據(jù),也是通過(guò)訪問(wèn)NameNode,得到數(shù)據(jù)位置,然后發(fā)起寫(xiě)請(qǐng)求,所寫(xiě)的數(shù)據(jù)會(huì)同時(shí)寫(xiě)到多個(gè)DataNode上,以保證必要的數(shù)據(jù)復(fù)制數(shù)。如果某一個(gè)DataNode崩潰,上面的數(shù)據(jù)會(huì)從其它正常的DataNode復(fù)制到另一個(gè)正常的DataNode,以保證必要的數(shù)據(jù)復(fù)制數(shù)。
[0082]在本發(fā)明實(shí)施方式中,針對(duì)分布式文件系統(tǒng)(比如上述HDFS系統(tǒng))和塊同步并行計(jì)算系統(tǒng)的統(tǒng)一模型,提出了一種塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的系統(tǒng)。
[0083]圖6為根據(jù)本發(fā)明實(shí)施方式的塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的系統(tǒng)結(jié)構(gòu)示意圖。
[0084]如圖6所示,該系統(tǒng)包括分布式文件子系統(tǒng)和塊同步并行計(jì)算子系統(tǒng)。分布式文件子系統(tǒng)和塊同步并行計(jì)算子系統(tǒng)通過(guò)分割線M進(jìn)行邏輯區(qū)分。分割線M之上的各個(gè)實(shí)體屬于分布式文件子系統(tǒng),在分割線M之下的各個(gè)實(shí)體為塊同步并行計(jì)算子系統(tǒng)。示范性地,該分布式文件子系統(tǒng)具體為HDFS系統(tǒng)。
[0085]該HDFS系統(tǒng)包括一個(gè)名字節(jié)點(diǎn)(NameNode)和多個(gè)數(shù)據(jù)節(jié)點(diǎn)(DataNode)。
[0086]該塊同步并行計(jì)算子系統(tǒng)包括對(duì)應(yīng)于DataNode的多個(gè)工作節(jié)點(diǎn)(Worker)以及一個(gè)主人節(jié)點(diǎn)(Master)。DataNode和對(duì)應(yīng)的Worker)布置在同一物理設(shè)備上。
[0087]Master負(fù)責(zé)協(xié)同塊同步并行計(jì)算子系統(tǒng)中各個(gè)Worker的工作,包括分配計(jì)算任務(wù)、通知Worker產(chǎn)生檢查點(diǎn)等。Worker具體執(zhí)行塊同步并行計(jì)算子系統(tǒng)中的多個(gè)超步,在每一個(gè)超步中執(zhí)行本地計(jì)算、發(fā)送接收通信信息,最后配合Master進(jìn)行柵欄同步。
[0088]如圖6所示,具體地:在物理節(jié)點(diǎn)I上布置有DataNodel以及相對(duì)應(yīng)的Workerl ;在物理節(jié)點(diǎn)2上布置有DataNode2以及相對(duì)應(yīng)的Worker2 ;在物理節(jié)點(diǎn)3上布置有DataNode3以及相對(duì)應(yīng)的Workerl’ ;在物理節(jié)點(diǎn)N上布置有DataNodeN以及相對(duì)應(yīng)的WorkerN。
[0089]各個(gè)Worker用于按照分布式文件子系統(tǒng)的文件帶區(qū)格式對(duì)其上的檢查點(diǎn)數(shù)據(jù)文件進(jìn)行劃分,并創(chuàng)建相對(duì)應(yīng)的校驗(yàn)文件,且將劃分后的檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,在該同一物理設(shè)備上從所述工作節(jié)點(diǎn)移動(dòng)到DataNote。
[0090]各個(gè)DataNode,用于將移動(dòng)到其上的檢查點(diǎn)數(shù)據(jù)文件和校驗(yàn)文件復(fù)制到該塊同步并行計(jì)算子系統(tǒng)的另外數(shù)據(jù)節(jié)點(diǎn)中。具體地=NameNode,用于基于移動(dòng)到DataNode的檢查點(diǎn)數(shù)據(jù)文件和校驗(yàn)文件,修改在自身所存儲(chǔ)的文件元數(shù)據(jù);DataNode,用于根據(jù)所修改的文件元數(shù)據(jù),將移動(dòng)到DataNode的檢查點(diǎn)數(shù)據(jù)文件和校驗(yàn)文件復(fù)制到該塊同步并行計(jì)算系統(tǒng)的另外數(shù)據(jù)節(jié)點(diǎn)。
[0091]在一個(gè)實(shí)施方式中,各個(gè)Worker用于在該同一物理設(shè)備上將劃分后的檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,從Worker并行復(fù)制到相對(duì)于的DataNode,并刪除自身的所述劃分后的檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件。
[0092]該系統(tǒng)可以進(jìn)一步包括位于所述塊同步并行計(jì)算子系統(tǒng)中的備份工作節(jié)點(diǎn);
[0093]備份工作節(jié)點(diǎn),用于當(dāng)Worker的計(jì)算工作需要被轉(zhuǎn)移時(shí),從所述該塊同步并行計(jì)算系統(tǒng)的另外DataNode中并行下載所述檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,并基于所述檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,恢復(fù)該Worker的計(jì)算工作。
[0094]基于上述系統(tǒng),如圖6所示,實(shí)現(xiàn)檢查點(diǎn)的流程具體包括:
[0095]步驟1:各個(gè)Worker輸出格式化;[0096]在這里,各個(gè)Worker按照大規(guī)模并行分布式文件子系統(tǒng)的存儲(chǔ)格式,對(duì)可能進(jìn)入檢查點(diǎn)的Worker輸出數(shù)據(jù)文件進(jìn)行預(yù)處理,即把文件根據(jù)文件帶區(qū)格式進(jìn)行劃分,同時(shí)創(chuàng)建對(duì)應(yīng)的校驗(yàn)文件。[0097]步驟2:檢查點(diǎn)產(chǎn)生;[0098]在這里,Master根據(jù)運(yùn)行情況通知各個(gè)Worker產(chǎn)生檢查點(diǎn)。[0099] 步驟3:fforker 上傳文件到 DataNode ;[0100]在這里,產(chǎn)生檢查點(diǎn)的Worker將文件檢查點(diǎn)數(shù)據(jù)預(yù)處理后的結(jié)果,本地傳輸?shù)较鄬?duì)應(yīng)DataNode中。由于Worker與相對(duì)應(yīng)的DataNode位于同一物理節(jié)點(diǎn)中,此時(shí)只需要在本地移動(dòng)數(shù)據(jù)。[0101]步驟4:NameNode上的元數(shù)據(jù)更新;[0102]在這里,當(dāng)各個(gè)Worker將檢查點(diǎn)數(shù)據(jù)塊(包括文件帶區(qū)文件和校驗(yàn)文件),上傳到相對(duì)應(yīng)的DataNode完畢后,統(tǒng)一更改NameNode上的文件元數(shù)據(jù)(包括文件名、數(shù)據(jù)塊列表、訪問(wèn)控制記錄、副本數(shù)等信息),從而完成檢查點(diǎn)數(shù)據(jù)塊文件的寫(xiě)入。[0103]步驟5:流水線傳輸;[0104]在這里,根據(jù)由分布式文件子系統(tǒng)內(nèi)部復(fù)制機(jī)制,將步驟4上傳的檢查點(diǎn)數(shù)據(jù)塊流水線傳輸復(fù)制到該分布式文件子系統(tǒng)的多個(gè)DataNode上。[0105]步驟6:檢查點(diǎn)數(shù)據(jù)下載;[0106]當(dāng)系統(tǒng)出現(xiàn)錯(cuò)誤時(shí),比如:當(dāng)Workerl不能正常工作、而且期望它的未完成工作轉(zhuǎn)移到Worker’時(shí),此時(shí)Worker’將從分布式文件子系統(tǒng)的多個(gè)DataNode上并行下載與Workerl相關(guān)的檢查點(diǎn)數(shù)據(jù),并基于該檢查點(diǎn)數(shù)據(jù)恢復(fù)Workerl保存的文件。[0107]比如,以Workerl為實(shí)例對(duì)該檢查點(diǎn)數(shù)據(jù)文件的處理過(guò)程進(jìn)行說(shuō)明。[0108]由圖6可見(jiàn),Workerl的檢查點(diǎn)數(shù)據(jù)為方塊4...方塊3,而且方塊4...方塊3下面都具有對(duì)應(yīng)的無(wú)標(biāo)號(hào)方塊,該無(wú)標(biāo)號(hào)方塊為對(duì)應(yīng)于方塊4…方塊3的相應(yīng)校驗(yàn)文件。[0109]Workerl將方塊4...方塊3以及相應(yīng)的校驗(yàn)文件,本地并行上傳到相應(yīng)的DataNodel,然后DataNodel在NameNode的協(xié)助下,將該方塊4…方塊3以及相應(yīng)的校驗(yàn)文件存儲(chǔ)到 DataNode2 和 DataNode3。[0110]當(dāng)Workerl出故障時(shí),假設(shè)期望由workerl’恢復(fù)Workerl的相應(yīng)工作,則workerl’從DataNode2和DataNode3分別取回方塊4...方塊3以及相應(yīng)的校驗(yàn)文件,并基于方塊4…方塊3以及相應(yīng)的校驗(yàn)文件繼續(xù)Workerl的工作。[0111]以上雖然以HDFS系統(tǒng)為實(shí)例對(duì)本發(fā)明實(shí)施方式進(jìn)行了詳細(xì)說(shuō)明,本領(lǐng)域技術(shù)人員可以意識(shí)到,上述說(shuō)明僅僅是闡述性質(zhì),并不用于限定本發(fā)明實(shí)施方式的保護(hù)范圍。[0112]綜上所述,在本發(fā)明實(shí)施方式中,將分布式文件系統(tǒng)中的數(shù)據(jù)節(jié)點(diǎn)和塊同步并行計(jì)算系統(tǒng)中對(duì)應(yīng)的工作節(jié)點(diǎn)布置在同一物理設(shè)備上;按照分布式文件系統(tǒng)的文件帶區(qū)格式對(duì)工作節(jié)點(diǎn)上的檢查點(diǎn)數(shù)據(jù)文件進(jìn)行劃分,并創(chuàng)建相對(duì)應(yīng)的校驗(yàn)文件;將劃分后的檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,在該同一物理設(shè)備上從工作節(jié)點(diǎn)移動(dòng)到數(shù)據(jù)節(jié)點(diǎn);將移動(dòng)到該數(shù)據(jù)節(jié)點(diǎn)的檢查點(diǎn)數(shù)據(jù)文件和校驗(yàn)文件復(fù)制到該塊同步并行計(jì)算系統(tǒng)的另外數(shù)據(jù)節(jié)點(diǎn)中。由此可見(jiàn),應(yīng)用本發(fā)明實(shí)施方式之后,通過(guò)將數(shù)據(jù)文件預(yù)先劃分為文件帶區(qū)(塊),并計(jì)算校驗(yàn),然后一次性上傳到并行分布式容錯(cuò)文件系統(tǒng)中,減少了復(fù)制拷貝數(shù)據(jù)的時(shí)間并降低數(shù)據(jù)傳輸?shù)拈_(kāi)銷(xiāo),從而提高了數(shù)據(jù)處理效率。[0113]另外,本發(fā)明實(shí)施方式還提供了一種在塊同步并行計(jì)算系統(tǒng)中,結(jié)合并行分布式文件系統(tǒng)快速恢復(fù)數(shù)據(jù)的方法,通過(guò)并行下載保存的檢查點(diǎn)文件帶區(qū)和校驗(yàn)文件,能夠快速恢復(fù)檢查點(diǎn),從而保證系統(tǒng)穩(wěn)定性。
[0114]而且,當(dāng)進(jìn)行檢查點(diǎn)恢復(fù)時(shí),通過(guò)同時(shí)加載多個(gè)文件帶區(qū),可以降低數(shù)據(jù)的導(dǎo)入時(shí)間。
[0115]以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
【權(quán)利要求】
1.一種塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的方法,其特征在于,該方法包括: 將分布式文件系統(tǒng)中的數(shù)據(jù)節(jié)點(diǎn)和塊同步并行計(jì)算系統(tǒng)中對(duì)應(yīng)的工作節(jié)點(diǎn)布置在同一物理設(shè)備上; 按照所述分布式文件系統(tǒng)的文件帶區(qū)格式對(duì)所述工作節(jié)點(diǎn)上的檢查點(diǎn)數(shù)據(jù)文件進(jìn)行劃分,并創(chuàng)建相對(duì)應(yīng)的校驗(yàn)文件; 將所述劃分后的檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,在該同一物理設(shè)備上從所述工作節(jié)點(diǎn)移動(dòng)到數(shù)據(jù)節(jié)點(diǎn); 將移動(dòng)到該數(shù)據(jù)節(jié)點(diǎn)的檢查點(diǎn)數(shù)據(jù)文件和校驗(yàn)文件復(fù)制到該塊同步并行計(jì)算系統(tǒng)的另外數(shù)據(jù)節(jié)點(diǎn)中。
2.根據(jù)權(quán)利要求1所述的塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的方法,其特征在于,所述將劃分后的檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,在該同一物理設(shè)備上從所述工作節(jié)點(diǎn)移動(dòng)到數(shù)據(jù)節(jié)點(diǎn)包括: 在該同一物理設(shè)備上將劃分后的檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,從所述工作節(jié)點(diǎn)并行復(fù)制到數(shù)據(jù)節(jié)點(diǎn); 刪除工作節(jié)點(diǎn)上的所述劃分后的檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件。
3.根據(jù)權(quán)利要求1所述的塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的方法,其特征在于,該方法進(jìn)一步包括: 當(dāng)該工作節(jié)點(diǎn)的計(jì)算工作需要被轉(zhuǎn)移到預(yù)先設(shè)定的備份工作節(jié)點(diǎn)時(shí),備份工作節(jié)點(diǎn)從所述該塊同步并行計(jì)算系統(tǒng)的另外數(shù)據(jù)節(jié)點(diǎn)中并行下載所述檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件;` 備份工作節(jié)點(diǎn)基于所述檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,恢復(fù)該工作節(jié)點(diǎn)的計(jì)算工作。
4.根據(jù)權(quán)利要求1所述的塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的方法,其特征在于,所述將移動(dòng)到數(shù)據(jù)節(jié)點(diǎn)的檢查點(diǎn)數(shù)據(jù)文件和校驗(yàn)文件復(fù)制到該塊同步并行計(jì)算系統(tǒng)的另外數(shù)據(jù)節(jié)點(diǎn)中包括: 基于移動(dòng)到數(shù)據(jù)節(jié)點(diǎn)的檢查點(diǎn)數(shù)據(jù)文件和校驗(yàn)文件,修改在名字節(jié)點(diǎn)上所存儲(chǔ)的文件元數(shù)據(jù); 根據(jù)所修改的文件元數(shù)據(jù),將移動(dòng)到數(shù)據(jù)節(jié)點(diǎn)的檢查點(diǎn)數(shù)據(jù)文件和校驗(yàn)文件復(fù)制到該塊同步并行計(jì)算系統(tǒng)的另外數(shù)據(jù)節(jié)點(diǎn)。
5.根據(jù)權(quán)利要求1-4中任一項(xiàng)所述的塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的方法,其特征在于,所述按照分布式文件系統(tǒng)的文件帶區(qū)格式對(duì)所述工作節(jié)點(diǎn)上的檢查點(diǎn)數(shù)據(jù)文件進(jìn)行劃分,并創(chuàng)建相對(duì)應(yīng)的校驗(yàn)文件包括: 預(yù)先設(shè)置工作節(jié)點(diǎn)上的檢查點(diǎn); 按照分布式文件系統(tǒng)的文件帶區(qū)格式,對(duì)所述預(yù)先設(shè)置檢查點(diǎn)的檢查點(diǎn)數(shù)據(jù)文件進(jìn)行劃分,并創(chuàng)建相對(duì)應(yīng)的校驗(yàn)文件數(shù)據(jù)文件。
6.根據(jù)權(quán)利要求1-4中任一項(xiàng)所述的塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的方法,其特征在于,所述按照分布式文件系統(tǒng)的文件帶區(qū)格式對(duì)所述工作節(jié)點(diǎn)上的檢查點(diǎn)數(shù)據(jù)文件進(jìn)行劃分,并創(chuàng)建相對(duì)應(yīng)的校驗(yàn)文件包括: 基于所述塊同步并行計(jì)算系統(tǒng)的運(yùn)行狀況確定檢查點(diǎn);按照分布式文件系統(tǒng)的文件帶區(qū)格式,對(duì)所述確定檢查點(diǎn)的檢查點(diǎn)數(shù)據(jù)文件進(jìn)行劃分,并創(chuàng)建相對(duì)應(yīng)的校驗(yàn)文件數(shù)據(jù)文件。
7.一種塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的裝置,其特征在于,該裝置包括節(jié)點(diǎn)布置單元、檢查點(diǎn)數(shù)據(jù)文件劃分單元、數(shù)據(jù)移動(dòng)單元和數(shù)據(jù)復(fù)制單元,其中: 節(jié)點(diǎn)布置單元,用于將分布式文件系統(tǒng)中的數(shù)據(jù)節(jié)點(diǎn)和塊同步并行計(jì)算系統(tǒng)中對(duì)應(yīng)的工作節(jié)點(diǎn)布置在同一物理設(shè)備上; 檢查點(diǎn)數(shù)據(jù)文件劃分單元,用于按照所述分布式文件系統(tǒng)的文件帶區(qū)格式對(duì)所述工作節(jié)點(diǎn)上的檢查點(diǎn)數(shù)據(jù)文件進(jìn)行劃分,并創(chuàng)建相對(duì)應(yīng)的校驗(yàn)文件; 數(shù)據(jù)移動(dòng)單元,用于將所述劃分后的檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,在該同一物理設(shè)備上從所述工作節(jié)點(diǎn)移動(dòng)到數(shù)據(jù)節(jié)點(diǎn); 數(shù)據(jù)復(fù)制單元,用于將移動(dòng)到該數(shù)據(jù)節(jié)點(diǎn)的檢查點(diǎn)數(shù)據(jù)文件和校驗(yàn)文件復(fù)制到該塊同步并行計(jì)算系統(tǒng)的另外數(shù)據(jù)節(jié)點(diǎn)中。
8.根據(jù)權(quán)利要求7所述的塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的裝置,其特征在于, 數(shù)據(jù)移動(dòng)單元,用 于在該同一物理設(shè)備上將劃分后的檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,從所述工作節(jié)點(diǎn)并行復(fù)制到數(shù)據(jù)節(jié)點(diǎn);刪除工作節(jié)點(diǎn)上的所述劃分后的檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件。
9.根據(jù)權(quán)利要求7所述的塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的裝置,其特征在于,該裝置進(jìn)一步包括計(jì)算工作恢復(fù)單元; 所述計(jì)算工作恢復(fù)單元,用于當(dāng)該工作節(jié)點(diǎn)的計(jì)算工作需要被轉(zhuǎn)移到預(yù)先設(shè)定的備份工作節(jié)點(diǎn)時(shí),使能備份工作節(jié)點(diǎn)從所述該塊同步并行計(jì)算系統(tǒng)的另外數(shù)據(jù)節(jié)點(diǎn)中并行下載所述檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,并使能備份工作節(jié)點(diǎn)基于所述檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,恢復(fù)該工作節(jié)點(diǎn)的計(jì)算工作。
10.根據(jù)權(quán)利要求7所述的塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的裝置,其特征在于, 數(shù)據(jù)移動(dòng)單元,用于基于移動(dòng)到數(shù)據(jù)節(jié)點(diǎn)的檢查點(diǎn)數(shù)據(jù)文件和校驗(yàn)文件,修改在名字節(jié)點(diǎn)上所存儲(chǔ)的文件元數(shù)據(jù);根據(jù)所修改的文件元數(shù)據(jù),將移動(dòng)到數(shù)據(jù)節(jié)點(diǎn)的檢查點(diǎn)數(shù)據(jù)文件和校驗(yàn)文件復(fù)制到該塊同步并行計(jì)算系統(tǒng)的另外數(shù)據(jù)節(jié)點(diǎn)。
11.一種塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的系統(tǒng),其特征在于,該系統(tǒng)包括分布式文件子系統(tǒng)和塊同步并行計(jì)算子系統(tǒng),所述分布式文件子系統(tǒng)包括數(shù)據(jù)節(jié)點(diǎn);所述塊同步并行計(jì)算子系統(tǒng)包括對(duì)應(yīng)于數(shù)據(jù)節(jié)點(diǎn)的工作節(jié)點(diǎn);所述數(shù)據(jù)節(jié)點(diǎn)和對(duì)應(yīng)的工作節(jié)點(diǎn)布置在同一物理設(shè)備上; 所述工作節(jié)點(diǎn),用于按照所述分布式文件子系統(tǒng)的文件帶區(qū)格式對(duì)其上的檢查點(diǎn)數(shù)據(jù)文件進(jìn)行劃分,并創(chuàng)建相對(duì)應(yīng)的校驗(yàn)文件,且將所述劃分后的檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,在該同一物理設(shè)備上從所述工作節(jié)點(diǎn)移動(dòng)到數(shù)據(jù)節(jié)點(diǎn); 所述數(shù)據(jù)節(jié)點(diǎn),用于將移動(dòng)到其上的檢查點(diǎn)數(shù)據(jù)文件和校驗(yàn)文件復(fù)制到該塊同步并行計(jì)算子系統(tǒng)的另外數(shù)據(jù)節(jié)點(diǎn)中。
12.根據(jù)權(quán)利要求11所述的塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的系統(tǒng),其特征在于, 所述工作節(jié)點(diǎn),用于在該同一物理設(shè)備上將劃分后的檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,從所述工作節(jié)點(diǎn)并行復(fù)制到數(shù)據(jù)節(jié)點(diǎn),并刪除自身的所述劃分后的檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件。
13.根據(jù)權(quán)利要求11所述的塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的系統(tǒng),其特征在于,該系統(tǒng)進(jìn)一步包括位于所述塊同步并行計(jì)算子系統(tǒng)中的備份工作節(jié)點(diǎn); 所述備份工作節(jié)點(diǎn),用于當(dāng)所述工作節(jié)點(diǎn)的計(jì)算工作需要被轉(zhuǎn)移時(shí),從所述該塊同步并行計(jì)算系統(tǒng)的另外數(shù)據(jù)節(jié)點(diǎn)中并行下載所述檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,并基于所述檢查點(diǎn)數(shù)據(jù)文件和相對(duì)應(yīng)的校驗(yàn)文件,恢復(fù)該工作節(jié)點(diǎn)的計(jì)算工作。
14.根據(jù)權(quán)利要求11所述的塊同步并行計(jì)算中實(shí)現(xiàn)檢查點(diǎn)的系統(tǒng),其特征在于,該系統(tǒng)進(jìn)一步包括位于所述分布式文件子系統(tǒng)中的名字節(jié)點(diǎn); 所述名字節(jié)點(diǎn),用于基于移動(dòng)到數(shù)據(jù)節(jié)點(diǎn)的檢查點(diǎn)數(shù)據(jù)文件和校驗(yàn)文件,修改在自身所存儲(chǔ)的文件元數(shù)據(jù); 所述數(shù)據(jù)節(jié)點(diǎn),用于根據(jù)所修改的文件元數(shù)據(jù),將移動(dòng)到數(shù)據(jù)節(jié)點(diǎn)的檢查點(diǎn)數(shù)據(jù)文件和校驗(yàn)文件復(fù)制到該塊同步并行 計(jì)算系統(tǒng)的另外數(shù)據(jù)節(jié)點(diǎn)。
【文檔編號(hào)】G06F17/30GK103631815SQ201210306762
【公開(kāi)日】2014年3月12日 申請(qǐng)日期:2012年8月27日 優(yōu)先權(quán)日:2012年8月27日
【發(fā)明者】蔡斌, 李勇, 肖磊, 薛偉, 張夏天, 劉大鵬, 言艷花, 姜磊, 郭偉昭, 胡智超, 胡少鋒, 路華, 柳金晶 申請(qǐng)人:深圳市騰訊計(jì)算機(jī)系統(tǒng)有限公司