一種文件存儲(chǔ)方法及名稱節(jié)點(diǎn)的制作方法
【專利摘要】本發(fā)明實(shí)施例公開(kāi)了一種文件存儲(chǔ)方法及名稱節(jié)點(diǎn),該方法包括:名稱節(jié)點(diǎn)接收客戶端發(fā)送的攜帶有文件的文件名、至少兩種文件格式以及該至少兩種文件格式中各文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù)的寫(xiě)入請(qǐng)求,該各文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù)之和小于至少兩種文件格式的文件格式總數(shù)與預(yù)設(shè)閾值的乘積;名稱節(jié)點(diǎn)根據(jù)該文件名指定目標(biāo)數(shù)據(jù)塊的第一標(biāo)識(shí),目標(biāo)數(shù)據(jù)塊用于存儲(chǔ)該文件的數(shù)據(jù)流;名稱節(jié)點(diǎn)根據(jù)各文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù),確定各文件格式的目標(biāo)數(shù)據(jù)塊與目標(biāo)數(shù)據(jù)節(jié)點(diǎn)之間的對(duì)應(yīng)關(guān)系,并指示客戶端協(xié)助目標(biāo)數(shù)據(jù)節(jié)點(diǎn)按照第一標(biāo)識(shí)存儲(chǔ)與自身存在對(duì)應(yīng)關(guān)系的文件格式的目標(biāo)數(shù)據(jù)塊??梢?jiàn),通過(guò)實(shí)施該方法,在存儲(chǔ)多種格式的某文件時(shí),節(jié)省了HDFS的存儲(chǔ)空間。
【專利說(shuō)明】
一種文件存儲(chǔ)方法及名稱節(jié)點(diǎn)
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種文件存儲(chǔ)方法及名稱節(jié)點(diǎn)。
【背景技術(shù)】
[0002] HDFS(Hadoop Distribute File System,Hadoop分布式文件系統(tǒng))是用于儲(chǔ)存超 大文件的分布式文件系統(tǒng)。例如,HDFS可用于儲(chǔ)存幾百兆字節(jié)、吉字節(jié)甚至太字節(jié)級(jí)別的文 件。
[0003] 圖1是現(xiàn)有的HDFS架構(gòu)圖,如圖1所示,HDFS架構(gòu)中主要包括客戶端、名稱節(jié)點(diǎn)和至 少兩個(gè)數(shù)據(jù)節(jié)點(diǎn)。其中,客戶端用于在需要寫(xiě)入文件的數(shù)據(jù)流至數(shù)據(jù)節(jié)點(diǎn)時(shí),向名稱節(jié)點(diǎn)發(fā) 送該數(shù)據(jù)流的寫(xiě)入請(qǐng)求;名稱節(jié)點(diǎn)用于根據(jù)該寫(xiě)入請(qǐng)求為存儲(chǔ)該數(shù)據(jù)流的數(shù)據(jù)塊分配對(duì)應(yīng) 的數(shù)據(jù)節(jié)點(diǎn);數(shù)據(jù)節(jié)點(diǎn)用于存儲(chǔ)其對(duì)應(yīng)的數(shù)據(jù)塊,即文件以數(shù)據(jù)塊的形式存儲(chǔ)于數(shù)據(jù)節(jié)點(diǎn) 中。
[0004] 為提高HDFS的可靠性,在HDFS每次存儲(chǔ)某一格式的文件的過(guò)程中,名稱節(jié)點(diǎn)會(huì)默 認(rèn)為存儲(chǔ)該文件的數(shù)據(jù)流的數(shù)據(jù)塊分配三個(gè)不同的數(shù)據(jù)節(jié)點(diǎn),即該數(shù)據(jù)塊會(huì)被存儲(chǔ)三份。 也就是說(shuō),HDFS在存儲(chǔ)每種格式的文件時(shí),均會(huì)默認(rèn)存儲(chǔ)三份該格式的文件。例如,若HDFS 儲(chǔ)存SequenceFile格式、TextFile格式和ORCFile格式這三種格式的文件A,HDFS會(huì)存儲(chǔ)9份 文件A(即三份SequenceFile格式的文件A、三份TextFile格式的文件A和三份ORCFile格式 的文件A)。顯然,當(dāng)HDFS需要存儲(chǔ)很多種格式的某一文件時(shí),HDFS將存儲(chǔ)很多份該文件,這 給HDFS造成了很大的內(nèi)存消耗。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明實(shí)施例公開(kāi)了一種文件存儲(chǔ)方法及名稱節(jié)點(diǎn),有利于減小HDFS的內(nèi)存消 耗。
[0006] 第一方面,本發(fā)明實(shí)施例提供了一種文件存儲(chǔ)方法,應(yīng)用于包括名稱節(jié)點(diǎn)和至少 兩個(gè)數(shù)據(jù)節(jié)點(diǎn)的系統(tǒng),該方法包括:名稱節(jié)點(diǎn)接收客戶端發(fā)送的寫(xiě)入請(qǐng)求,該寫(xiě)入請(qǐng)求在客 戶端在期望存儲(chǔ)文件的數(shù)據(jù)流時(shí)生成,該寫(xiě)入請(qǐng)求攜帶有文件的文件名、至少兩種文件格 式以及該至少兩種文件格式中各文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù),其中,該至少兩種文件格式中 的每種文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù)之和小于至少兩種文件格式的文件格式總數(shù)與預(yù)設(shè)閾值 的乘積;名稱節(jié)點(diǎn)根據(jù)文件的文件名指定用于存儲(chǔ)數(shù)據(jù)流的目標(biāo)數(shù)據(jù)塊所對(duì)應(yīng)的目標(biāo)數(shù)據(jù) 塊的第一標(biāo)識(shí);名稱節(jié)點(diǎn)根據(jù)該至少兩種文件格式以及該至少兩種文件格式中的每種文件 格式對(duì)應(yīng)的存儲(chǔ)份數(shù),確定該至少兩種文件格式中的每種文件格式的目標(biāo)數(shù)據(jù)塊與該至少 兩個(gè)數(shù)據(jù)節(jié)點(diǎn)中的目標(biāo)數(shù)據(jù)節(jié)點(diǎn)之間的對(duì)應(yīng)關(guān)系;名稱節(jié)點(diǎn)根據(jù)對(duì)應(yīng)關(guān)系,指示客戶端協(xié) 助目標(biāo)數(shù)據(jù)節(jié)點(diǎn)按照第一標(biāo)識(shí)存儲(chǔ)與自身存在對(duì)應(yīng)關(guān)系的文件格式的目標(biāo)數(shù)據(jù)塊??梢?jiàn), 通過(guò)實(shí)施該方法,在存儲(chǔ)多種格式的某文件時(shí),減小了文件的存儲(chǔ)份數(shù),從而節(jié)省了 HDFS的 存儲(chǔ)空間。
[0007] 在一種可能的設(shè)計(jì)中,名稱節(jié)點(diǎn)根據(jù)該至少兩種文件格式以及該至少兩種文件格 式中的每種文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù),確定該至少兩種文件格式中的每種文件格式的目標(biāo) 數(shù)據(jù)塊與至少兩個(gè)數(shù)據(jù)節(jié)點(diǎn)中的目標(biāo)數(shù)據(jù)節(jié)點(diǎn)之間的對(duì)應(yīng)關(guān)系可以包括:名稱節(jié)點(diǎn)根據(jù)該 至少兩種文件格式以及該至少兩種文件格式中的每種文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù),確定該至 少兩種文件格式中的每種文件格式的目標(biāo)數(shù)據(jù)塊的個(gè)數(shù);名稱節(jié)點(diǎn)根據(jù)該至少兩種文件格 式中的每種文件格式的目標(biāo)數(shù)據(jù)塊的個(gè)數(shù),從該至少兩個(gè)數(shù)據(jù)節(jié)點(diǎn)中確定目標(biāo)數(shù)據(jù)節(jié)點(diǎn), 以便確定至少兩種文件格式中的每種文件格式的目標(biāo)數(shù)據(jù)塊與目標(biāo)數(shù)據(jù)節(jié)點(diǎn)之間的對(duì)應(yīng) 關(guān)系。即名稱節(jié)點(diǎn)根據(jù)某一文件格式的目標(biāo)數(shù)據(jù)塊的個(gè)數(shù)確定相同數(shù)量的數(shù)據(jù)節(jié)點(diǎn)來(lái)與該 文件格式的目標(biāo)數(shù)據(jù)塊對(duì)應(yīng),例如,格式1的目標(biāo)數(shù)據(jù)塊的個(gè)數(shù)為2個(gè),則確定兩個(gè)數(shù)據(jù)節(jié)點(diǎn) 與格式1的目標(biāo)數(shù)據(jù)塊對(duì)應(yīng)??梢?jiàn),這樣可確定與該至少兩種文件格式中的每種文件格式的 目標(biāo)數(shù)據(jù)塊對(duì)應(yīng)的目標(biāo)數(shù)據(jù)節(jié)點(diǎn),以便后續(xù)將各文件格式的目標(biāo)數(shù)據(jù)塊存儲(chǔ)至相應(yīng)的目標(biāo) 數(shù)據(jù)節(jié)點(diǎn)中。
[0008] 在一種可能的設(shè)計(jì)中,寫(xiě)入請(qǐng)求攜帶的至少兩種文件格式以及該至少兩種文件格 式中各文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù),根據(jù)使用文件的業(yè)務(wù)的業(yè)務(wù)類型確定。這樣可根據(jù)使用 文件的業(yè)務(wù)的業(yè)務(wù)類型自動(dòng)地為該至少兩種文件格式中各文件格式設(shè)置對(duì)應(yīng)的存儲(chǔ)份數(shù)。
[0009] 在一種可能的設(shè)計(jì)中,寫(xiě)入請(qǐng)求攜帶的至少兩種文件格式以及該至少兩種文件格 式中各文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù),由用戶在客戶端設(shè)定。用戶可根據(jù)自身需要靈活地在客 戶端設(shè)置該至少兩種文件格式中各文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù),用戶可設(shè)置每一種文件格式 的文件存儲(chǔ)較少的份數(shù),從而減少HDFS的存儲(chǔ)空間的消耗。
[0010] 在一種可能的設(shè)計(jì)中,名稱節(jié)點(diǎn)根據(jù)該對(duì)應(yīng)關(guān)系,指示客戶端協(xié)助目標(biāo)數(shù)據(jù)節(jié)點(diǎn) 按照第一標(biāo)識(shí)存儲(chǔ)與自身存在對(duì)應(yīng)關(guān)系的文件格式的目標(biāo)數(shù)據(jù)塊可以包括:名稱節(jié)點(diǎn)向客 戶端發(fā)送第一指令,該第一指令攜帶第一標(biāo)識(shí)、第一數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí)以及第一數(shù)據(jù)節(jié)點(diǎn)對(duì) 應(yīng)的目標(biāo)數(shù)據(jù)塊的文件格式,該第一指令指示客戶端按照第一指令攜帶的文件格式轉(zhuǎn)換文 件的數(shù)據(jù)流以及根據(jù)第一數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí)向第一數(shù)據(jù)節(jié)點(diǎn)發(fā)送轉(zhuǎn)換后的數(shù)據(jù)流和第一標(biāo) 識(shí),其中,該第一數(shù)據(jù)節(jié)點(diǎn)為目標(biāo)數(shù)據(jù)節(jié)點(diǎn)中的任一個(gè)數(shù)據(jù)節(jié)點(diǎn)。通過(guò)實(shí)施該設(shè)計(jì),名稱節(jié) 點(diǎn)指示客戶端發(fā)送與第一數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)的文件格式的數(shù)據(jù)流至第一數(shù)據(jù)節(jié)點(diǎn),從而第一數(shù) 據(jù)節(jié)點(diǎn)將接收的該數(shù)據(jù)流以目標(biāo)數(shù)據(jù)塊進(jìn)行儲(chǔ)存,以儲(chǔ)存與自身存在對(duì)應(yīng)關(guān)系的文件格式 的目標(biāo)數(shù)據(jù)塊,且其余的數(shù)據(jù)節(jié)點(diǎn)可從第一數(shù)據(jù)節(jié)點(diǎn)中獲取與自身存在對(duì)應(yīng)關(guān)系的文件格 式的該數(shù)據(jù)流,并以目標(biāo)數(shù)據(jù)塊進(jìn)行儲(chǔ)存??梢?jiàn),通過(guò)實(shí)施該設(shè)計(jì),名稱節(jié)點(diǎn)可指示客戶端 協(xié)助目標(biāo)數(shù)據(jù)節(jié)點(diǎn)根據(jù)第一標(biāo)識(shí)存儲(chǔ)與自身存在對(duì)應(yīng)關(guān)系的文件格式的目標(biāo)數(shù)據(jù)塊。
[0011] 在一種可能的設(shè)計(jì)中,名稱節(jié)點(diǎn)還可向第一數(shù)據(jù)節(jié)點(diǎn)發(fā)送第二指令,該第二指令 攜帶第一標(biāo)識(shí)和第一數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的文件格式,該第二指令指示第一數(shù)據(jù)節(jié) 點(diǎn)按照第二指令攜帶的第一標(biāo)識(shí)和文件格式,將客戶端發(fā)送的轉(zhuǎn)換后的數(shù)據(jù)流以目標(biāo)數(shù)據(jù) 塊進(jìn)行存儲(chǔ);名稱節(jié)點(diǎn)還可向第二數(shù)據(jù)節(jié)點(diǎn)發(fā)送第三指令,該第三指令攜帶第一標(biāo)識(shí)、第二 數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的文件格式和第三數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí),該第三指令指示第二數(shù)據(jù) 節(jié)點(diǎn)根據(jù)第一標(biāo)識(shí)、第三指令攜帶的文件格式和第三數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí)從第三數(shù)據(jù)節(jié)點(diǎn)獲取 第三指令攜帶的文件格式的數(shù)據(jù)流,并按照第一標(biāo)識(shí)和第三指令攜帶的文件格式將獲取的 數(shù)據(jù)流以目標(biāo)數(shù)據(jù)塊存儲(chǔ),其中,第二數(shù)據(jù)節(jié)點(diǎn)是指目標(biāo)數(shù)據(jù)節(jié)點(diǎn)中不同于第一數(shù)據(jù)節(jié)點(diǎn) 的數(shù)據(jù)節(jié)點(diǎn),第三數(shù)據(jù)節(jié)點(diǎn)是指第一數(shù)據(jù)節(jié)點(diǎn)或者任一個(gè)其他第二數(shù)據(jù)節(jié)點(diǎn)??梢?jiàn),通過(guò)實(shí) 施該設(shè)計(jì),數(shù)據(jù)節(jié)點(diǎn)可從除該數(shù)據(jù)節(jié)點(diǎn)之外的其他數(shù)據(jù)節(jié)點(diǎn)中獲取相應(yīng)格式的數(shù)據(jù)流,并 以目標(biāo)數(shù)據(jù)塊進(jìn)行儲(chǔ)存。
[0012] 在一種可能的設(shè)計(jì)中,第三指令攜帶的文件格式的數(shù)據(jù)流由第三數(shù)據(jù)節(jié)點(diǎn)將第三 數(shù)據(jù)節(jié)點(diǎn)存儲(chǔ)的目標(biāo)數(shù)據(jù)塊中的數(shù)據(jù)流轉(zhuǎn)換得到。
[0013] 在一種可能的設(shè)計(jì)中,名稱節(jié)點(diǎn)根據(jù)該對(duì)應(yīng)關(guān)系,指示客戶端協(xié)助目標(biāo)數(shù)據(jù)節(jié)點(diǎn) 根據(jù)第一標(biāo)識(shí)存儲(chǔ)與自身存在對(duì)應(yīng)關(guān)系的文件格式的目標(biāo)數(shù)據(jù)塊可以包括:名稱節(jié)點(diǎn)向客 戶端發(fā)送第四指令,該第四指令攜帶第一標(biāo)識(shí)、第一數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí),該第四指令用于指示 客戶端根據(jù)第一數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí),將文件的數(shù)據(jù)流和第一標(biāo)識(shí)發(fā)送至第一數(shù)據(jù)節(jié)點(diǎn)。其中, 第一數(shù)據(jù)節(jié)點(diǎn)為目標(biāo)數(shù)據(jù)節(jié)點(diǎn)中的任一個(gè)數(shù)據(jù)節(jié)點(diǎn)。通過(guò)實(shí)施該設(shè)計(jì),名稱節(jié)點(diǎn)可指示客 戶端發(fā)送文件的數(shù)據(jù)流至第一數(shù)據(jù)節(jié)點(diǎn),從而第一數(shù)據(jù)節(jié)點(diǎn)可將接收的數(shù)據(jù)流轉(zhuǎn)換為與自 身存在對(duì)應(yīng)關(guān)系的文件格式的數(shù)據(jù)流,并將轉(zhuǎn)換后的數(shù)據(jù)流以目標(biāo)數(shù)據(jù)塊進(jìn)行存儲(chǔ),以存 儲(chǔ)與自身存在對(duì)應(yīng)關(guān)系的目標(biāo)數(shù)據(jù)塊;且其余的數(shù)據(jù)節(jié)點(diǎn)可從第一數(shù)據(jù)節(jié)點(diǎn)中獲取目標(biāo)數(shù) 據(jù)塊中的數(shù)據(jù)流,從而可將獲取的數(shù)據(jù)流轉(zhuǎn)換為與自身存在對(duì)應(yīng)關(guān)系的文件格式的數(shù)據(jù) 流,并將轉(zhuǎn)換后的數(shù)據(jù)流以目標(biāo)數(shù)據(jù)塊進(jìn)行存儲(chǔ),以存儲(chǔ)與自身存在對(duì)應(yīng)關(guān)系的目標(biāo)數(shù)據(jù) 塊??梢?jiàn),通過(guò)實(shí)施該設(shè)計(jì),名稱節(jié)點(diǎn)可指示客戶端協(xié)助目標(biāo)數(shù)據(jù)節(jié)點(diǎn)根據(jù)第一標(biāo)識(shí)存儲(chǔ)與 自身存在對(duì)應(yīng)關(guān)系的文件格式的目標(biāo)數(shù)據(jù)塊。
[0014] 在一種可能的設(shè)計(jì)中,名稱節(jié)點(diǎn)還可向第一數(shù)據(jù)節(jié)點(diǎn)發(fā)送第五指令,該第五指令 攜帶第一標(biāo)識(shí)和第一數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的文件格式,第五指令指示第一數(shù)據(jù)節(jié)點(diǎn) 根據(jù)第五指令攜帶的文件格式,將客戶端發(fā)送的數(shù)據(jù)流的格式轉(zhuǎn)換為第五指令攜帶的文件 格式,并按照第一標(biāo)識(shí)和第五指令攜帶的文件格式將轉(zhuǎn)換格式后的數(shù)據(jù)流以目標(biāo)數(shù)據(jù)塊進(jìn) 行存儲(chǔ)。名稱節(jié)點(diǎn)還可向第二數(shù)據(jù)節(jié)點(diǎn)發(fā)送第六指令,該第六指令攜帶第一標(biāo)識(shí)、第二數(shù)據(jù) 節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的文件格式和第三數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí),該第六指令指示第二數(shù)據(jù)節(jié)點(diǎn) 根據(jù)第一標(biāo)識(shí)和第三數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí)從第三數(shù)據(jù)節(jié)點(diǎn)獲取第一標(biāo)識(shí)所對(duì)應(yīng)的文件格式的 數(shù)據(jù)流,并將獲取的數(shù)據(jù)流的格式轉(zhuǎn)換為第六指令攜帶的文件格式,并按照第一標(biāo)識(shí)和第 六指令攜帶的文件格式將轉(zhuǎn)換格式后的數(shù)據(jù)流以目標(biāo)數(shù)據(jù)塊存儲(chǔ)。其中,第二數(shù)據(jù)節(jié)點(diǎn)是 指目標(biāo)數(shù)據(jù)節(jié)點(diǎn)中不同于第一數(shù)據(jù)節(jié)點(diǎn)的數(shù)據(jù)節(jié)點(diǎn),第三數(shù)據(jù)節(jié)點(diǎn)是指第一數(shù)據(jù)節(jié)點(diǎn)或者 任一個(gè)其他第二數(shù)據(jù)節(jié)點(diǎn)??梢?jiàn),通過(guò)實(shí)施該設(shè)計(jì),不需要客戶端轉(zhuǎn)換數(shù)據(jù)流的格式,數(shù)據(jù) 節(jié)點(diǎn)可自己將數(shù)據(jù)流轉(zhuǎn)換為與自身對(duì)應(yīng)的格式的數(shù)據(jù)流,從而節(jié)省了客戶端CPU資源,且數(shù) 據(jù)節(jié)點(diǎn)也不需要發(fā)送與自身對(duì)應(yīng)的數(shù)據(jù)流的格式至其他數(shù)據(jù)節(jié)點(diǎn),使其他數(shù)據(jù)節(jié)點(diǎn)進(jìn)行格 式轉(zhuǎn)換,節(jié)省了網(wǎng)絡(luò)傳輸資源。
[0015] 第二方面,本發(fā)明實(shí)施例提供了一種名稱節(jié)點(diǎn),應(yīng)用于包括名稱節(jié)點(diǎn)和至少兩個(gè) 數(shù)據(jù)節(jié)點(diǎn)的系統(tǒng),該名稱節(jié)點(diǎn)包括用于執(zhí)行上述第一方面提供的方法的功能單元或還包括 用于執(zhí)行第一方面提供的方法的可能的設(shè)計(jì)的功能單元。
[0016] 第三方面,本發(fā)明實(shí)施例提供了一種名稱節(jié)點(diǎn),應(yīng)用于包括名稱節(jié)點(diǎn)和至少兩個(gè) 數(shù)據(jù)節(jié)點(diǎn)的系統(tǒng),該名稱節(jié)點(diǎn)包括處理器、存儲(chǔ)器、收發(fā)器、總線系統(tǒng)以及一個(gè)或多個(gè)程序, 處理器和存儲(chǔ)器通過(guò)總線系統(tǒng)相連,處理器和收發(fā)器通過(guò)總線系統(tǒng)相連,其中,該一個(gè)或多 個(gè)程序被存儲(chǔ)在存儲(chǔ)器中,該一個(gè)或多個(gè)程序包括指令,當(dāng)指令被名稱節(jié)點(diǎn)執(zhí)行時(shí)使名稱 節(jié)點(diǎn)執(zhí)行上述第一方面提供的方法或上述第一方面提供的方法的可能的設(shè)計(jì)。
[0017] 第四方面,本發(fā)明實(shí)施例提供了一種存儲(chǔ)一個(gè)或多個(gè)程序的計(jì)算機(jī)可讀存儲(chǔ)介 質(zhì),一個(gè)或多個(gè)程序包括指令,該指令用于執(zhí)行上述第一方面提供的方法或上述第一方面 提供的方法的可能的設(shè)計(jì)。
【附圖說(shuō)明】
[0018] 為了更清楚地說(shuō)明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例中所需要使用的 附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普 通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0019] 圖1是本發(fā)明實(shí)施例公開(kāi)的一種HDFS架構(gòu)圖;
[0020] 圖2是本發(fā)明實(shí)施例公開(kāi)的一種文件存儲(chǔ)方法的流程示意圖;
[0021] 圖3是本發(fā)明實(shí)施例公開(kāi)的另一種文件存儲(chǔ)方法的流程示意圖;
[0022] 圖4是本發(fā)明實(shí)施例公開(kāi)的一種名稱節(jié)點(diǎn)的結(jié)構(gòu)示意圖;
[0023] 圖5是本發(fā)明實(shí)施例公開(kāi)的另一種名稱節(jié)點(diǎn)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0024]為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明實(shí)施 例的技術(shù)方案進(jìn)行描述。
[0025] 在現(xiàn)有的存儲(chǔ)文件的過(guò)程中,HDFS每次存儲(chǔ)某一格式的文件時(shí),名稱節(jié)點(diǎn)會(huì)默認(rèn) 為存儲(chǔ)該文件的數(shù)據(jù)流的數(shù)據(jù)塊分配三個(gè)數(shù)據(jù)節(jié)點(diǎn),即每個(gè)數(shù)據(jù)塊會(huì)被存儲(chǔ)三份。也就是 說(shuō),HDFS在存儲(chǔ)每種格式的文件時(shí),均會(huì)默認(rèn)存儲(chǔ)三份該格式的文件。因此,當(dāng)HDFS需要存 儲(chǔ)某一文件的多種不同格式的版本時(shí),HDFS將存儲(chǔ)很多份該文件,這給HDFS造成了很大的 內(nèi)存消耗。
[0026] 為此,本發(fā)明實(shí)施例提供一種文件存儲(chǔ)方法及名稱節(jié)點(diǎn),用以在HDFS存儲(chǔ)某一文 件的多種不同格式的版本時(shí),減小HDFS的內(nèi)存消耗。其中,方法和名稱節(jié)點(diǎn)是基于同一發(fā)明 構(gòu)思的,由于方法及名稱節(jié)點(diǎn)解決問(wèn)題的原理相似,因此名稱節(jié)點(diǎn)與方法的實(shí)施可以相互 參見(jiàn),重復(fù)之處不再贅述。
[0027] 為了清楚的描述本發(fā)明實(shí)施例的方案,下面結(jié)合附圖1,對(duì)本發(fā)明實(shí)施例可能應(yīng)用 的HDFS架構(gòu)進(jìn)行說(shuō)明。
[0028]圖1示出了本發(fā)明實(shí)施例提供的一種可能的HDFS架構(gòu)。如圖1所示,HDFS架構(gòu)中主 要包括客戶端、名稱節(jié)點(diǎn)和至少兩個(gè)數(shù)據(jù)節(jié)點(diǎn)。其中,該客戶端可以為智能手機(jī)、掌上電腦、 筆記本電腦或臺(tái)式電腦等,本發(fā)明實(shí)施例不做限定。一個(gè)名稱節(jié)點(diǎn)對(duì)應(yīng)一臺(tái)物理裝置,一個(gè) 數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)一臺(tái)物理裝置,名稱節(jié)點(diǎn)與數(shù)據(jù)節(jié)點(diǎn)部署在不同的物理裝置,通常多個(gè)數(shù)據(jù) 節(jié)點(diǎn)組成一個(gè)集群,整個(gè)集群受名稱節(jié)點(diǎn)的管理。
[0029] 其中,客戶端用于在需要寫(xiě)入文件的數(shù)據(jù)流至數(shù)據(jù)節(jié)點(diǎn)時(shí),向名稱節(jié)點(diǎn)發(fā)送寫(xiě)入 請(qǐng)求;名稱節(jié)點(diǎn)用于根據(jù)該寫(xiě)入請(qǐng)求為存儲(chǔ)該數(shù)據(jù)流的數(shù)據(jù)塊分配對(duì)應(yīng)的數(shù)據(jù)節(jié)點(diǎn);數(shù)據(jù) 節(jié)點(diǎn)用于存儲(chǔ)其對(duì)應(yīng)的數(shù)據(jù)塊。
[0030] 可以理解的是,本發(fā)明實(shí)施例描述的系統(tǒng)架構(gòu)是為了更加清楚的說(shuō)明本發(fā)明實(shí)施 例的技術(shù)方案,并不構(gòu)成對(duì)于本發(fā)明實(shí)施例提供的技術(shù)方案的限定,本領(lǐng)域普通技術(shù)人員 可知,隨著系統(tǒng)架構(gòu)的演變,本發(fā)明實(shí)施例提供的技術(shù)方案對(duì)于類似的技術(shù)問(wèn)題,同樣適 用。
[0031] 下面將基于上面所述的本發(fā)明實(shí)施例涉及的共性方面,對(duì)本發(fā)明實(shí)施例進(jìn)一步詳 細(xì)說(shuō)明。
[0032]請(qǐng)參見(jiàn)圖2,圖2為本發(fā)明實(shí)施例公開(kāi)的一種文件存儲(chǔ)方法的流程示意圖。如圖2所 示,該文件存儲(chǔ)方法可以包括201~204部分。
[0033] 201、名稱節(jié)點(diǎn)接收客戶端發(fā)送的寫(xiě)入請(qǐng)求。
[0034] 本發(fā)明實(shí)施例中,該寫(xiě)入請(qǐng)求為客戶端在期望存儲(chǔ)文件的數(shù)據(jù)流時(shí)生成的??蛻?端期望存儲(chǔ)文件的數(shù)據(jù)流時(shí),即是客戶端緩存的該數(shù)據(jù)流的大小達(dá)到一個(gè)數(shù)據(jù)塊的大小 時(shí)。例如,客戶端從本地內(nèi)存中讀取已有的文件時(shí),在讀取該文件的過(guò)程中,會(huì)將已讀取的 該文件的數(shù)據(jù)流進(jìn)行緩存,當(dāng)緩存的該文件的數(shù)據(jù)流大小達(dá)到一個(gè)數(shù)據(jù)塊的大小時(shí)(一個(gè) 數(shù)據(jù)塊默認(rèn)大小為64MB),客戶端會(huì)生成寫(xiě)入請(qǐng)求發(fā)送給名稱節(jié)點(diǎn)?;蛘撸蛻舳嗽谏晌?件的過(guò)程中,會(huì)將已生成的文件的數(shù)據(jù)流進(jìn)行緩存,當(dāng)緩存的該文件的數(shù)據(jù)流大小達(dá)到一 個(gè)數(shù)據(jù)塊的大小時(shí),客戶端會(huì)生成寫(xiě)入請(qǐng)求發(fā)送給名稱節(jié)點(diǎn)。
[0035] 發(fā)明實(shí)施例中,該寫(xiě)入請(qǐng)求攜帶有文件的文件名、至少兩種文件格式以及該至少 兩種文件格式中各文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù),其中,該至少兩種文件格式中的每種文件格 式對(duì)應(yīng)的存儲(chǔ)份數(shù)之和小于該至少兩種文件格式的文件格式總數(shù)與預(yù)設(shè)閾值的乘積。其 中,該預(yù)設(shè)閾值為數(shù)據(jù)塊默認(rèn)存儲(chǔ)份數(shù)。例如,若寫(xiě)入請(qǐng)求攜帶有文件A的文件名,格式1和 格式2,則格式1對(duì)應(yīng)的存儲(chǔ)份數(shù)1與格式2對(duì)應(yīng)的存儲(chǔ)份數(shù)2之和小于寫(xiě)入請(qǐng)求攜帶的文件 格式總數(shù)(即2)與預(yù)設(shè)閾值的乘積。
[0036] 202、名稱節(jié)點(diǎn)根據(jù)文件的文件名指定用于存儲(chǔ)該文件的數(shù)據(jù)流的目標(biāo)數(shù)據(jù)塊所 對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的第一標(biāo)識(shí)。
[0037] 發(fā)明實(shí)施例中,名稱節(jié)點(diǎn)接收寫(xiě)入請(qǐng)求之后,根據(jù)文件的文件名指定目標(biāo)數(shù)據(jù)塊 的第一標(biāo)識(shí)。其中,目標(biāo)數(shù)據(jù)塊用于存儲(chǔ)已緩存的該文件的數(shù)據(jù)流,即目標(biāo)數(shù)據(jù)塊包括已緩 存的該文件的數(shù)據(jù)流,第一標(biāo)識(shí)為目標(biāo)數(shù)據(jù)塊的身份信息,通過(guò)第一標(biāo)識(shí)可識(shí)別目標(biāo)數(shù)據(jù) 塊。
[0038] 203、名稱節(jié)點(diǎn)根據(jù)該至少兩種文件格式以及該至少兩種文件格式中的每種文件 格式對(duì)應(yīng)的存儲(chǔ)份數(shù),確定該至少兩種文件格式中的每種文件格式的目標(biāo)數(shù)據(jù)塊與該至少 兩個(gè)數(shù)據(jù)節(jié)點(diǎn)中的目標(biāo)數(shù)據(jù)節(jié)點(diǎn)之間的對(duì)應(yīng)關(guān)系。
[0039] 本發(fā)明實(shí)施例中,名稱節(jié)點(diǎn)指定目標(biāo)數(shù)據(jù)塊的第一標(biāo)識(shí)之后,名稱節(jié)點(diǎn)會(huì)根據(jù)該 至少兩種文件格式以及該至少兩種文件格式中的每種文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù),確定該至 少兩種文件格式中的每種文件格式的目標(biāo)數(shù)據(jù)塊與該至少兩個(gè)數(shù)據(jù)節(jié)點(diǎn)中的目標(biāo)數(shù)據(jù)節(jié) 點(diǎn)之間的對(duì)應(yīng)關(guān)系。其中,文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù)與該文件格式的目標(biāo)數(shù)據(jù)塊對(duì)應(yīng)的目 標(biāo)數(shù)據(jù)節(jié)點(diǎn)的數(shù)量相同。例如,文件格式1對(duì)應(yīng)的存儲(chǔ)份數(shù)為2,則名稱節(jié)點(diǎn)從該至少兩個(gè)數(shù) 據(jù)節(jié)點(diǎn)中選擇兩個(gè)數(shù)據(jù)節(jié)點(diǎn)作為目標(biāo)數(shù)據(jù)節(jié)點(diǎn)來(lái)與文件格式1的目標(biāo)數(shù)據(jù)塊對(duì)應(yīng)??蛇x的, 某一文件格式的多個(gè)目標(biāo)數(shù)據(jù)塊分別對(duì)應(yīng)的目標(biāo)數(shù)據(jù)節(jié)點(diǎn)不相同,即同一文件格式的多個(gè) 目標(biāo)數(shù)據(jù)塊是分別存儲(chǔ)在不同目標(biāo)數(shù)據(jù)節(jié)點(diǎn)上的。可選地,不同文件格式的目標(biāo)數(shù)據(jù)塊對(duì) 應(yīng)的目標(biāo)數(shù)據(jù)節(jié)點(diǎn)可以相同,即不同文件格式的目標(biāo)數(shù)據(jù)塊可能存儲(chǔ)在相同目標(biāo)數(shù)據(jù)節(jié)點(diǎn) 上。因此相同文件格式的目標(biāo)數(shù)據(jù)塊需要存儲(chǔ)在不同的數(shù)據(jù)節(jié)點(diǎn)中,不同格式的目標(biāo)數(shù)據(jù) 塊可存儲(chǔ)在相同或不同的數(shù)據(jù)節(jié)點(diǎn)。
[0040] 舉例來(lái)說(shuō),若該至少兩種文件格式為格式1和格式2,格式1對(duì)應(yīng)的存儲(chǔ)份數(shù)為1,格 式2對(duì)應(yīng)的存儲(chǔ)份數(shù)為2,則名稱節(jié)點(diǎn)確定的各文件格式的目標(biāo)數(shù)據(jù)塊與目標(biāo)數(shù)據(jù)節(jié)點(diǎn)之間 的對(duì)應(yīng)關(guān)系可如下表1所示。其中,數(shù)據(jù)節(jié)點(diǎn)1可以與數(shù)據(jù)節(jié)點(diǎn)2相同,或數(shù)據(jù)節(jié)點(diǎn)1可以與數(shù) 據(jù)節(jié)點(diǎn)3相同;數(shù)據(jù)節(jié)點(diǎn)2和數(shù)據(jù)節(jié)點(diǎn)3不相同。
[0041]表1
[0043] 204、名稱節(jié)點(diǎn)根據(jù)該對(duì)應(yīng)關(guān)系,指示客戶端協(xié)助目標(biāo)數(shù)據(jù)節(jié)點(diǎn)按照第一標(biāo)識(shí)存儲(chǔ) 與自身存在對(duì)應(yīng)關(guān)系的文件格式的目標(biāo)數(shù)據(jù)塊。
[0044] 本發(fā)明實(shí)施例中,舉例來(lái)說(shuō),該對(duì)應(yīng)關(guān)系如上表1所示,則名稱節(jié)點(diǎn)可根據(jù)該對(duì)應(yīng) 關(guān)系,指示客戶端協(xié)助數(shù)據(jù)節(jié)點(diǎn)1將格式1的該數(shù)據(jù)流以目標(biāo)數(shù)據(jù)塊進(jìn)行存儲(chǔ),并建立和儲(chǔ) 存該目標(biāo)數(shù)據(jù)塊與第一標(biāo)識(shí)的對(duì)應(yīng)關(guān)系,和/或協(xié)助數(shù)據(jù)節(jié)點(diǎn)2和數(shù)據(jù)節(jié)點(diǎn)3將格式2的該數(shù) 據(jù)流以目標(biāo)數(shù)據(jù)塊進(jìn)行儲(chǔ)存,并建立和儲(chǔ)存該目標(biāo)數(shù)據(jù)塊與第一標(biāo)識(shí)的對(duì)應(yīng)關(guān)系。
[0045] 在圖2所描述的方法中,舉例來(lái)說(shuō),若需要將格式1的文件A和格式2的文件A存儲(chǔ)在 HDFS中,在客戶端緩存的文件A的數(shù)據(jù)流的達(dá)到64MB時(shí),客戶端向名稱節(jié)點(diǎn)發(fā)送寫(xiě)入請(qǐng)求, 該寫(xiě)入請(qǐng)求攜帶文件A的文件名,格式1和格式2,以及與格式1對(duì)應(yīng)的存儲(chǔ)份數(shù)1,與格式2對(duì) 應(yīng)的存儲(chǔ)份數(shù)2。存儲(chǔ)份數(shù)1與存儲(chǔ)份數(shù)2之和小于文件格式總數(shù)(即2)與預(yù)設(shè)閾值(數(shù)據(jù)塊 默認(rèn)的存儲(chǔ)份數(shù))的乘積,即若預(yù)設(shè)閾值為3,則存儲(chǔ)份數(shù)1與存儲(chǔ)份數(shù)2之和小于6。名稱節(jié) 點(diǎn)接收寫(xiě)入請(qǐng)求之后,會(huì)根據(jù)文件A的文件名指定一個(gè)第一標(biāo)識(shí)給用于存儲(chǔ)緩存的該64MB 數(shù)據(jù)流的數(shù)據(jù)塊A。若存儲(chǔ)份數(shù)1為1,存儲(chǔ)份數(shù)2為2,則名稱節(jié)點(diǎn)確定格式1的數(shù)據(jù)塊A與數(shù) 據(jù)節(jié)點(diǎn)1的對(duì)應(yīng)關(guān)系,確定格式2的數(shù)據(jù)塊A與數(shù)據(jù)節(jié)點(diǎn)2和數(shù)據(jù)節(jié)點(diǎn)3的對(duì)應(yīng)關(guān)系。名稱節(jié)點(diǎn) 根據(jù)確定的對(duì)應(yīng)關(guān)系,使數(shù)據(jù)節(jié)點(diǎn)1存儲(chǔ)一份格式1的數(shù)據(jù)塊A,使數(shù)據(jù)節(jié)點(diǎn)2存儲(chǔ)一份格式2 的數(shù)據(jù)塊A,使數(shù)據(jù)節(jié)點(diǎn)3存儲(chǔ)一份格式2的數(shù)據(jù)塊A??梢?jiàn),在存儲(chǔ)兩種格式的文件A時(shí),總共 只需存儲(chǔ)3份數(shù)據(jù)塊A,而現(xiàn)有技術(shù)在存儲(chǔ)兩種格式的數(shù)據(jù)塊A時(shí)需要存儲(chǔ)6份,因此,通過(guò)實(shí) 施圖2所描述的方法,節(jié)省了HDFS的存儲(chǔ)空間。
[0046] 作為一種可選的實(shí)施方式,寫(xiě)入請(qǐng)求攜帶的至少兩種文件格式以及該至少兩種文 件格式中各文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù),根據(jù)使用文件的業(yè)務(wù)的業(yè)務(wù)類型確定。
[0047] 在實(shí)際應(yīng)用中,例如,當(dāng)文件的格式為SequenceFile格式時(shí),更便于使用MR job對(duì) 文件做文本分析;當(dāng)文件格式為ORCFile格式時(shí),更便于對(duì)文件做查詢、統(tǒng)計(jì)操作;當(dāng)文件格 式為T(mén)extFile時(shí),更便于對(duì)文件進(jìn)行共享、備份或臨時(shí)存放。
[0048] 在該實(shí)施方式中,客戶端可預(yù)先設(shè)置使用文本的業(yè)務(wù)的業(yè)務(wù)類型對(duì)應(yīng)的存儲(chǔ)份 數(shù),例如,客戶端可設(shè)置使用文本的查詢類業(yè)務(wù)對(duì)應(yīng)的存儲(chǔ)份數(shù)為2份,使用文本的文本分 析類業(yè)務(wù)對(duì)應(yīng)的存儲(chǔ)份數(shù)為1份,則當(dāng)寫(xiě)入請(qǐng)求攜帶的至少兩種文件格式分別為ORCFile格 式和SequenceFile格式時(shí),客戶端確定ORCFile格式對(duì)應(yīng)查詢類業(yè)務(wù),SequenceFile格式對(duì) 應(yīng)文本分析類業(yè)務(wù);客戶端可設(shè)置ORCFi le格式對(duì)應(yīng)的存儲(chǔ)份數(shù)為2,SequenceFi le格式對(duì) 應(yīng)的存儲(chǔ)份數(shù)為1。
[0049] 可見(jiàn),通過(guò)實(shí)施該實(shí)施方式,可根據(jù)使用文件的業(yè)務(wù)的業(yè)務(wù)類型自動(dòng)地為該至少 兩種文件格式中各文件格式設(shè)置對(duì)應(yīng)的存儲(chǔ)份數(shù)。
[0050] 作為一種可選的實(shí)施方式,數(shù)據(jù)流寫(xiě)入請(qǐng)求攜帶的至少兩種文件格式以及該至少 兩種文件格式中各文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù),由用戶在客戶端設(shè)定。
[0051] 通過(guò)實(shí)施該實(shí)施方式,用戶可根據(jù)自身需要靈活地在客戶端設(shè)置該至少兩種文件 格式中各文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù),用戶可設(shè)置每一種文件格式的文件存儲(chǔ)較少的份數(shù), 從而減少HDFS的存儲(chǔ)空間的消耗。
[0052] 作為一種可選的實(shí)施方式,名稱節(jié)點(diǎn)根據(jù)該至少兩種文件格式以及該至少兩種文 件格式中的每種文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù),確定該至少兩種文件格式中的每種文件格式的 目標(biāo)數(shù)據(jù)塊與該至少兩個(gè)數(shù)據(jù)節(jié)點(diǎn)中的目標(biāo)數(shù)據(jù)節(jié)點(diǎn)之間的對(duì)應(yīng)關(guān)系的【具體實(shí)施方式】可 包括以下步驟:
[0053] 11)名稱節(jié)點(diǎn)根據(jù)該至少兩種文件格式以及該至少兩種文件格式中的每種文件格 式對(duì)應(yīng)的存儲(chǔ)份數(shù),確定該至少兩種文件格式中的每種文件格式的目標(biāo)數(shù)據(jù)塊的個(gè)數(shù);
[0054] 12)名稱節(jié)點(diǎn)根據(jù)該至少兩種文件格式中的每種文件格式的目標(biāo)數(shù)據(jù)塊的個(gè)數(shù), 從該至少兩個(gè)數(shù)據(jù)節(jié)點(diǎn)中確定目標(biāo)數(shù)據(jù)節(jié)點(diǎn),以便確定該至少兩種文件格式中的每種文件 格式的目標(biāo)數(shù)據(jù)塊與目標(biāo)數(shù)據(jù)節(jié)點(diǎn)之間的對(duì)應(yīng)關(guān)系。
[0055] 在該實(shí)施方式中,舉例來(lái)說(shuō),若該至少兩種文件格式為格式1和格式2,格式1對(duì)應(yīng) 的存儲(chǔ)份數(shù)為1,格式2對(duì)應(yīng)的存儲(chǔ)份數(shù)為2,則名稱節(jié)點(diǎn)確定格式1的目標(biāo)數(shù)據(jù)塊的個(gè)數(shù)為 1,格式2的目標(biāo)數(shù)據(jù)塊的個(gè)數(shù)為2。相同格式的目標(biāo)數(shù)據(jù)塊需要存儲(chǔ)在不同的數(shù)據(jù)節(jié)點(diǎn)中, 不同格式的數(shù)據(jù)塊可存儲(chǔ)在相同或不同的數(shù)據(jù)節(jié)點(diǎn)。因此,需要一個(gè)數(shù)據(jù)節(jié)點(diǎn)來(lái)存儲(chǔ)格式1 的目標(biāo)數(shù)據(jù)塊,需要兩個(gè)數(shù)據(jù)節(jié)點(diǎn)來(lái)存儲(chǔ)格式2的目標(biāo)數(shù)據(jù)塊。名稱節(jié)點(diǎn)根據(jù)格式1的目標(biāo) 數(shù)據(jù)塊的個(gè)數(shù)可從該至少兩個(gè)數(shù)據(jù)節(jié)點(diǎn)中選擇一個(gè)數(shù)據(jù)節(jié)點(diǎn)1作為目標(biāo)數(shù)據(jù)節(jié)點(diǎn),并確定 格式1的目標(biāo)數(shù)據(jù)塊與數(shù)據(jù)節(jié)點(diǎn)1的對(duì)應(yīng)關(guān)系;名稱節(jié)點(diǎn)根據(jù)格式2的目標(biāo)數(shù)據(jù)塊的個(gè)數(shù)可 從該至少兩個(gè)數(shù)據(jù)節(jié)點(diǎn)中選擇數(shù)據(jù)節(jié)點(diǎn)2和數(shù)據(jù)節(jié)點(diǎn)3作為與目標(biāo)數(shù)據(jù)節(jié)點(diǎn),并確定格式2 的目標(biāo)數(shù)據(jù)塊與數(shù)據(jù)節(jié)點(diǎn)2和數(shù)據(jù)節(jié)點(diǎn)3的對(duì)應(yīng)關(guān)系。該對(duì)應(yīng)關(guān)系可如上表1所示。
[0056] 作為一種可選的實(shí)施方式,名稱節(jié)點(diǎn)根據(jù)該對(duì)應(yīng)關(guān)系,指示客戶端協(xié)助目標(biāo)數(shù)據(jù) 節(jié)點(diǎn)根據(jù)第一標(biāo)識(shí)存儲(chǔ)與自身存在對(duì)應(yīng)關(guān)系的文件格式的目標(biāo)數(shù)據(jù)塊的【具體實(shí)施方式】可 包括以下步驟:
[0057] 21)名稱節(jié)點(diǎn)向客戶端發(fā)送第一指令。
[0058]在該實(shí)施方式中,該第一指令攜帶第一標(biāo)識(shí)、第一數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí)以及第一數(shù)據(jù) 節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的文件格式,該第一指令用于指示客戶端按照第一指令攜帶的文件 格式轉(zhuǎn)換文件的數(shù)據(jù)流以及根據(jù)第一數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí)向第一數(shù)據(jù)節(jié)點(diǎn)發(fā)送轉(zhuǎn)換后的數(shù)據(jù) 流和第一標(biāo)識(shí),其中,該第一數(shù)據(jù)節(jié)點(diǎn)為目標(biāo)數(shù)據(jù)節(jié)點(diǎn)中的任一個(gè)數(shù)據(jù)節(jié)點(diǎn)。
[0059] 步驟21)的具體實(shí)現(xiàn)方式可參見(jiàn)圖3所示的304、307和308部分,在此不贅述。
[0060] 作為一種可選的實(shí)施方式,名稱節(jié)點(diǎn)還可執(zhí)行以下步驟:
[0061] 22)名稱節(jié)點(diǎn)向第一數(shù)據(jù)節(jié)點(diǎn)發(fā)送第二指令。
[0062] 23)名稱節(jié)點(diǎn)向第二數(shù)據(jù)節(jié)點(diǎn)發(fā)送第三指令。
[0063]在該實(shí)施方式中,該第二指令攜帶第一標(biāo)識(shí)和第一數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的 文件格式,該第二指令指示第一數(shù)據(jù)節(jié)點(diǎn)按照第二指令攜帶的第一標(biāo)識(shí)和文件格式,將客 戶端發(fā)送的轉(zhuǎn)換后的數(shù)據(jù)流以目標(biāo)數(shù)據(jù)塊進(jìn)行存儲(chǔ)。
[0064]在該實(shí)施方式中,該第三指令攜帶第一標(biāo)識(shí)、第二數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的 文件格式、第三數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí),該第三指令用于指示第二數(shù)據(jù)節(jié)點(diǎn)根據(jù)第一標(biāo)識(shí)、第三指 令攜帶的文件格式和第三數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí)從第三數(shù)據(jù)節(jié)點(diǎn)獲取第三指令攜帶的文件格式 的數(shù)據(jù)流,并按照第一標(biāo)識(shí)和第三指令攜帶的文件格式將獲取的數(shù)據(jù)流以目標(biāo)數(shù)據(jù)塊存 儲(chǔ),其中,第二數(shù)據(jù)節(jié)點(diǎn)是指目標(biāo)數(shù)據(jù)節(jié)點(diǎn)中不同于第一數(shù)據(jù)節(jié)點(diǎn)的數(shù)據(jù)節(jié)點(diǎn),第三數(shù)據(jù)節(jié) 點(diǎn)是指第一數(shù)據(jù)節(jié)點(diǎn)或者任一個(gè)其他第二數(shù)據(jù)節(jié)點(diǎn)。
[0065] 步驟22)的具體實(shí)現(xiàn)方式可參見(jiàn)圖3所示的305和309部分,在此不贅述。
[0066] 步驟23)的具體實(shí)現(xiàn)方式可參見(jiàn)圖3所示的306和310~313部分,在此不贅述。
[0067]作為一種可選的實(shí)施方式,第三指令攜帶的文件格式的數(shù)據(jù)流由第三數(shù)據(jù)節(jié)點(diǎn)將 第三數(shù)據(jù)節(jié)點(diǎn)存儲(chǔ)的目標(biāo)數(shù)據(jù)塊中的數(shù)據(jù)流轉(zhuǎn)換得到。該實(shí)施方式的具體實(shí)現(xiàn)方式可參見(jiàn) 圖3所示的311部分,在此不贅述。
[0068] 作為一種可選的實(shí)施方式,名稱節(jié)點(diǎn)根據(jù)該對(duì)應(yīng)關(guān)系,指示客戶端協(xié)助目標(biāo)數(shù)據(jù) 節(jié)點(diǎn)根據(jù)第一標(biāo)識(shí)存儲(chǔ)與自身存在對(duì)應(yīng)關(guān)系的文件格式的目標(biāo)數(shù)據(jù)塊的【具體實(shí)施方式】可 包括以下步驟:
[0069] 31)名稱節(jié)點(diǎn)向客戶端發(fā)送第四指令。
[0070] 在該實(shí)施方式中,該第四指令攜帶第一標(biāo)識(shí)、第一數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí),該第四指令用 于指示客戶端根據(jù)第一數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí),將文件的數(shù)據(jù)流和第一標(biāo)識(shí)發(fā)送至第一數(shù)據(jù)節(jié) 點(diǎn)。其中,第一數(shù)據(jù)節(jié)點(diǎn)為目標(biāo)數(shù)據(jù)節(jié)點(diǎn)中的任一個(gè)數(shù)據(jù)節(jié)點(diǎn)。
[0071 ]那么相應(yīng)地,名稱節(jié)點(diǎn)在確定該至少兩種文件格式中的每種文件格式的目標(biāo)數(shù)據(jù) 塊與該至少兩個(gè)數(shù)據(jù)節(jié)點(diǎn)中的目標(biāo)數(shù)據(jù)節(jié)點(diǎn)之間的對(duì)應(yīng)關(guān)系之后,還可執(zhí)行以下步驟: [0072] 32)名稱節(jié)點(diǎn)向第一數(shù)據(jù)節(jié)點(diǎn)發(fā)送第五指令。
[0073]其中,該第五指令攜帶第一標(biāo)識(shí)和第一數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的文件格式, 第五指令指示第一數(shù)據(jù)節(jié)點(diǎn)根據(jù)第五指令攜帶的文件格式,將客戶端發(fā)送的數(shù)據(jù)流的格式 轉(zhuǎn)換為第五指令攜帶的文件格式,并按照第一標(biāo)識(shí)和第五指令攜帶的文件格式將轉(zhuǎn)換格式 后的數(shù)據(jù)流以目標(biāo)數(shù)據(jù)塊進(jìn)行存儲(chǔ)。
[0074] 33)名稱節(jié)點(diǎn)向第二數(shù)據(jù)節(jié)點(diǎn)發(fā)送第六指令。
[0075]其中,該第六指令攜帶第一標(biāo)識(shí)、第二數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的文件格式和 第三數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí),第六指令指示第二數(shù)據(jù)節(jié)點(diǎn)根據(jù)第一標(biāo)識(shí)和第三數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí)從 第三數(shù)據(jù)節(jié)點(diǎn)獲取第一標(biāo)識(shí)所對(duì)應(yīng)的文件格式的數(shù)據(jù)流,并將獲取的數(shù)據(jù)流的格式轉(zhuǎn)換為 第六指令攜帶的文件格式,并按照第一標(biāo)識(shí)和第六指令攜帶的文件格式將轉(zhuǎn)換格式后的數(shù) 據(jù)流以目標(biāo)數(shù)據(jù)塊存儲(chǔ)。其中,第二數(shù)據(jù)節(jié)點(diǎn)是指目標(biāo)數(shù)據(jù)節(jié)點(diǎn)中不同于第一數(shù)據(jù)節(jié)點(diǎn)的 數(shù)據(jù)節(jié)點(diǎn),第三數(shù)據(jù)節(jié)點(diǎn)是指第一數(shù)據(jù)節(jié)點(diǎn)或者任一個(gè)其他第二數(shù)據(jù)節(jié)點(diǎn)。
[0076] 舉例來(lái)說(shuō),若名稱節(jié)點(diǎn)確定的至少兩種文件格式中的每種文件格式的所述目標(biāo)數(shù) 據(jù)塊與所述至少兩個(gè)數(shù)據(jù)節(jié)點(diǎn)中的目標(biāo)數(shù)據(jù)節(jié)點(diǎn)之間的對(duì)應(yīng)關(guān)系如表1所示,則第一數(shù)據(jù) 節(jié)點(diǎn)可以是數(shù)據(jù)節(jié)點(diǎn)1、數(shù)據(jù)節(jié)點(diǎn)2和數(shù)據(jù)節(jié)點(diǎn)3中的任意一個(gè)數(shù)據(jù)節(jié)點(diǎn)。例如,若第一數(shù)據(jù) 節(jié)點(diǎn)為數(shù)據(jù)節(jié)點(diǎn)1,第二數(shù)據(jù)節(jié)點(diǎn)可以為數(shù)據(jù)節(jié)點(diǎn)2和數(shù)據(jù)節(jié)點(diǎn)3,第三數(shù)據(jù)節(jié)點(diǎn)可以為數(shù)據(jù) 節(jié)點(diǎn)1、數(shù)據(jù)節(jié)點(diǎn)2或數(shù)據(jù)節(jié)點(diǎn)3。例如,若當(dāng)前從第三數(shù)據(jù)節(jié)點(diǎn)獲取數(shù)據(jù)流的第二數(shù)據(jù)節(jié)點(diǎn) 為數(shù)據(jù)節(jié)點(diǎn)2,則第三數(shù)據(jù)節(jié)點(diǎn)可以為數(shù)據(jù)節(jié)點(diǎn)1或數(shù)據(jù)節(jié)點(diǎn)3,若當(dāng)前從第三數(shù)據(jù)節(jié)點(diǎn)獲取 數(shù)據(jù)流的第二數(shù)據(jù)節(jié)點(diǎn)為數(shù)據(jù)節(jié)點(diǎn)3,則第三數(shù)據(jù)節(jié)點(diǎn)可以為數(shù)據(jù)節(jié)點(diǎn)1或數(shù)據(jù)節(jié)點(diǎn)2。
[0077] 可見(jiàn),通過(guò)實(shí)施該實(shí)施方式,不需要客戶端轉(zhuǎn)換數(shù)據(jù)流的格式,數(shù)據(jù)節(jié)點(diǎn)可自己將 數(shù)據(jù)流轉(zhuǎn)換為與自身對(duì)應(yīng)的格式的數(shù)據(jù)流,從而節(jié)省了客戶端CPU資源,且數(shù)據(jù)節(jié)點(diǎn)也不需 要發(fā)送與自身對(duì)應(yīng)的數(shù)據(jù)流的格式至其他數(shù)據(jù)節(jié)點(diǎn),使其他數(shù)據(jù)節(jié)點(diǎn)進(jìn)行格式轉(zhuǎn)換,節(jié)省 了網(wǎng)絡(luò)傳輸資源。
[0078]請(qǐng)參見(jiàn)圖3,圖3為本發(fā)明實(shí)施例公開(kāi)的另一種文件存儲(chǔ)方法的流程示意圖。如圖3 所示,該文件存儲(chǔ)方法可以包括301~313部分。
[0079] 301、客戶端向名稱節(jié)點(diǎn)發(fā)送寫(xiě)入請(qǐng)求。
[0080] 本發(fā)明實(shí)施例中,該寫(xiě)入請(qǐng)求攜帶有文件的文件名、至少兩種文件格式以及該至 少兩種文件格式中各文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù),其中,該至少兩種文件格式中的每種文件 格式對(duì)應(yīng)的存儲(chǔ)份數(shù)之和小于該至少兩種文件格式的文件格式總數(shù)與預(yù)設(shè)閾值的乘積。其 中,該預(yù)設(shè)閾值為數(shù)據(jù)塊默認(rèn)存儲(chǔ)份數(shù)。該寫(xiě)入請(qǐng)求為客戶端在期望存儲(chǔ)文件的數(shù)據(jù)流時(shí) 生成的??蛻舳似谕鎯?chǔ)文件的數(shù)據(jù)流時(shí),即是客戶端緩存的該數(shù)據(jù)流的大小達(dá)到一個(gè)數(shù) 據(jù)塊的大小時(shí)。
[0081] 302、名稱節(jié)點(diǎn)根據(jù)文件的文件名指定用于存儲(chǔ)該文件的數(shù)據(jù)流的目標(biāo)數(shù)據(jù)塊所 對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的第一標(biāo)識(shí)。
[0082] 303、名稱節(jié)點(diǎn)根據(jù)至少兩種文件格式以及該至少兩種文件格式中的每種文件格 式對(duì)應(yīng)的存儲(chǔ)份數(shù),確定該至少兩種文件格式中的每種文件格式的目標(biāo)數(shù)據(jù)塊與該至少兩 個(gè)數(shù)據(jù)節(jié)點(diǎn)中的目標(biāo)數(shù)據(jù)節(jié)點(diǎn)之間的對(duì)應(yīng)關(guān)系。
[0083] 302部分和303部分可參見(jiàn)圖2所示的202部分和203部分的描述,在此不贅述。
[0084] 304、名稱節(jié)點(diǎn)向客戶端發(fā)送第一指令。
[0085]本發(fā)明實(shí)施例中,名稱節(jié)點(diǎn)確定該至少兩種文件格式中的每種文件格式的目標(biāo)數(shù) 據(jù)塊與該至少兩個(gè)數(shù)據(jù)節(jié)點(diǎn)中的目標(biāo)數(shù)據(jù)節(jié)點(diǎn)之間的對(duì)應(yīng)關(guān)系之后,向客戶端發(fā)送第一指 令。其中,該第一指令攜帶第一標(biāo)識(shí)、第一數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí)以及第一數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)數(shù) 據(jù)塊的文件格式。該第一數(shù)據(jù)節(jié)點(diǎn)為目標(biāo)數(shù)據(jù)節(jié)點(diǎn)中的任一個(gè)數(shù)據(jù)節(jié)點(diǎn)。
[0086] 305、名稱節(jié)點(diǎn)向第一數(shù)據(jù)節(jié)點(diǎn)發(fā)送第二指令。
[0087]本發(fā)明實(shí)施例中,名稱節(jié)點(diǎn)確定該至少兩種文件格式中的每種文件格式的目標(biāo)數(shù) 據(jù)塊與該至少兩個(gè)數(shù)據(jù)節(jié)點(diǎn)中的目標(biāo)數(shù)據(jù)節(jié)點(diǎn)之間的對(duì)應(yīng)關(guān)系之后,向第一數(shù)據(jù)節(jié)點(diǎn)發(fā)送 第二指令。其中,該第二指令攜帶第一標(biāo)識(shí)和第一數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的文件格式。 [0088] 306、名稱節(jié)點(diǎn)向第二數(shù)據(jù)節(jié)點(diǎn)發(fā)送第三指令。
[0089] 本發(fā)明實(shí)施例中,名稱節(jié)點(diǎn)確定該至少兩種文件格式中的每種文件格式的目標(biāo)數(shù) 據(jù)塊與該至少兩個(gè)數(shù)據(jù)節(jié)點(diǎn)中的目標(biāo)數(shù)據(jù)節(jié)點(diǎn)之間的對(duì)應(yīng)關(guān)系之后,向第二數(shù)據(jù)節(jié)點(diǎn)發(fā)送 第三指令。其中,該第三指令攜帶第一標(biāo)識(shí)、第二數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的文件格式和 第三數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí)。其中,第二數(shù)據(jù)節(jié)點(diǎn)是指目標(biāo)數(shù)據(jù)節(jié)點(diǎn)中不同于第一數(shù)據(jù)節(jié)點(diǎn)的數(shù) 據(jù)節(jié)點(diǎn),第三數(shù)據(jù)節(jié)點(diǎn)是指第一數(shù)據(jù)節(jié)點(diǎn)或者任一個(gè)其他第二數(shù)據(jù)節(jié)點(diǎn)。
[0090] 307、客戶端按照第一指令攜帶的文件格式轉(zhuǎn)換該文件的數(shù)據(jù)流。
[0091] 本發(fā)明實(shí)施例中,客戶端接收第一指令之后,按照第一指令攜帶的文件格式轉(zhuǎn)換 該文件的數(shù)據(jù)流。例如,若第一指令攜帶的文件格式為格式1,則客戶端將該文件的數(shù)據(jù)流 的格式轉(zhuǎn)換為格式1。
[0092] 308、客戶端根據(jù)第一數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí)向第一數(shù)據(jù)節(jié)點(diǎn)發(fā)送轉(zhuǎn)換后的數(shù)據(jù)流和第 一標(biāo)識(shí)。
[0093]本發(fā)明實(shí)施例中,客戶端按照第一指令攜帶的文件格式轉(zhuǎn)換該文件的數(shù)據(jù)流之 后,將根據(jù)第一數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí)向第一數(shù)據(jù)節(jié)點(diǎn)發(fā)送轉(zhuǎn)換后的數(shù)據(jù)流和第一標(biāo)識(shí)。
[0094] 309、第一數(shù)據(jù)節(jié)點(diǎn)按照第二指令攜帶的第一標(biāo)識(shí)和文件格式將客戶端發(fā)送的轉(zhuǎn) 換后的數(shù)據(jù)流以目標(biāo)數(shù)據(jù)塊進(jìn)行存儲(chǔ)。
[0095]本發(fā)明實(shí)施例中,第一數(shù)據(jù)節(jié)點(diǎn)接收第二指令和客戶端發(fā)送的轉(zhuǎn)換后的數(shù)據(jù)流和 第一標(biāo)識(shí)之后,將該轉(zhuǎn)換后的數(shù)據(jù)流以目標(biāo)數(shù)據(jù)塊進(jìn)行存儲(chǔ),并建立和存儲(chǔ)該目標(biāo)數(shù)據(jù)塊 與第一標(biāo)識(shí)的對(duì)應(yīng)關(guān)系,以及建立和存儲(chǔ)該目標(biāo)數(shù)據(jù)塊與第二指令攜帶的文件格式的對(duì)應(yīng) 關(guān)系。
[0096] 310、第二數(shù)據(jù)節(jié)點(diǎn)根據(jù)第三數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí)向第三數(shù)據(jù)節(jié)點(diǎn)發(fā)送第一標(biāo)識(shí)和第 三指令攜帶的文件格式。
[0097]本發(fā)明實(shí)施例中,第二數(shù)據(jù)節(jié)點(diǎn)接收第三指令之后,根據(jù)第三數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí)向 第三數(shù)據(jù)節(jié)點(diǎn)發(fā)送第一標(biāo)識(shí)和第三指令攜帶的文件格式。
[0098] 311、第三數(shù)據(jù)節(jié)點(diǎn)按照第三指令攜帶的文件格式將存儲(chǔ)的目標(biāo)數(shù)據(jù)塊中的數(shù)據(jù) 流進(jìn)行轉(zhuǎn)換。
[0099]本發(fā)明實(shí)施例中,第三數(shù)據(jù)節(jié)點(diǎn)接收第二數(shù)據(jù)節(jié)點(diǎn)發(fā)送的第一標(biāo)識(shí)和第三指令攜 帶的文件格式之后,從存儲(chǔ)的數(shù)據(jù)塊中獲取與第一標(biāo)識(shí)對(duì)應(yīng)的數(shù)據(jù)塊(即目標(biāo)數(shù)據(jù)塊),并 將目標(biāo)數(shù)據(jù)塊中的數(shù)據(jù)流的格式轉(zhuǎn)換為第三指令攜帶的文件格式。
[0100] 312、第三數(shù)據(jù)節(jié)點(diǎn)向第二數(shù)據(jù)節(jié)點(diǎn)返回第三指令攜帶的文件格式的數(shù)據(jù)流和第 一標(biāo)識(shí)。
[0101] 本發(fā)明實(shí)施例中,第三數(shù)據(jù)節(jié)點(diǎn)將目標(biāo)數(shù)據(jù)塊中的數(shù)據(jù)流的格式轉(zhuǎn)換為第三指令 攜帶的文件格式之后,將向第二數(shù)據(jù)節(jié)點(diǎn)返回轉(zhuǎn)換格式后得到的第三指令攜帶的文件格式 的數(shù)據(jù)流和第一標(biāo)識(shí)。
[0102] 313、第二數(shù)據(jù)節(jié)點(diǎn)按照第一標(biāo)識(shí)和第三指令攜帶的文件格式將第三數(shù)據(jù)節(jié)點(diǎn)發(fā) 送的數(shù)據(jù)流以目標(biāo)數(shù)據(jù)塊存儲(chǔ)。
[0103] 本發(fā)明實(shí)施例中,第二數(shù)據(jù)節(jié)點(diǎn)接收第三數(shù)據(jù)節(jié)點(diǎn)返回的第三指令攜帶的文件格 式的數(shù)據(jù)流之后,將第三指令攜帶的文件格式的數(shù)據(jù)流以目標(biāo)數(shù)據(jù)塊存儲(chǔ),并建立和存儲(chǔ) 第一標(biāo)識(shí)和目標(biāo)數(shù)據(jù)塊之間的對(duì)應(yīng)關(guān)系,以及建立和存儲(chǔ)目標(biāo)數(shù)據(jù)塊和第三指令攜帶的文 件格式之間的對(duì)應(yīng)關(guān)系。
[0104] 舉例來(lái)說(shuō),若名稱節(jié)點(diǎn)確定的至少兩種文件格式中的每種文件格式的所述目標(biāo)數(shù) 據(jù)塊與所述至少兩個(gè)數(shù)據(jù)節(jié)點(diǎn)中的目標(biāo)數(shù)據(jù)節(jié)點(diǎn)之間的對(duì)應(yīng)關(guān)系如圖2所示的實(shí)施例中的 表1所示,則第一數(shù)據(jù)節(jié)點(diǎn)可以是數(shù)據(jù)節(jié)點(diǎn)1、數(shù)據(jù)節(jié)點(diǎn)2和數(shù)據(jù)節(jié)點(diǎn)3中的任意一個(gè)數(shù)據(jù)節(jié) 點(diǎn)。例如,若第一數(shù)據(jù)節(jié)點(diǎn)為數(shù)據(jù)節(jié)點(diǎn)1,第二數(shù)據(jù)節(jié)點(diǎn)可以為數(shù)據(jù)節(jié)點(diǎn)2和數(shù)據(jù)節(jié)點(diǎn)3,第三 數(shù)據(jù)節(jié)點(diǎn)可以為數(shù)據(jù)節(jié)點(diǎn)1、數(shù)據(jù)節(jié)點(diǎn)2或數(shù)據(jù)節(jié)點(diǎn)3。例如,若當(dāng)前從第三數(shù)據(jù)節(jié)點(diǎn)獲取數(shù) 據(jù)流的第二數(shù)據(jù)節(jié)點(diǎn)為數(shù)據(jù)節(jié)點(diǎn)2,則第三數(shù)據(jù)節(jié)點(diǎn)可以為數(shù)據(jù)節(jié)點(diǎn)1或數(shù)據(jù)節(jié)點(diǎn)3,若當(dāng)前 從第三數(shù)據(jù)節(jié)點(diǎn)獲取數(shù)據(jù)流的第二數(shù)據(jù)節(jié)點(diǎn)為數(shù)據(jù)節(jié)點(diǎn)3,則第三數(shù)據(jù)節(jié)點(diǎn)可以為數(shù)據(jù)節(jié) 點(diǎn)1或數(shù)據(jù)節(jié)點(diǎn)2。
[0105] 可見(jiàn),通過(guò)實(shí)施本發(fā)明實(shí)施例,名稱節(jié)點(diǎn)可指示客戶端協(xié)助各目標(biāo)數(shù)據(jù)節(jié)點(diǎn)存儲(chǔ) 與自身對(duì)應(yīng)的文件格式的目標(biāo)數(shù)據(jù)塊,從而在存儲(chǔ)多種格式的文件時(shí),減少了文件的存儲(chǔ) 份數(shù),進(jìn)而節(jié)省了 HDFS的存儲(chǔ)空間。
[0106] 本發(fā)明實(shí)施例可以根據(jù)上述方法示例對(duì)名稱節(jié)點(diǎn)進(jìn)行功能單元的劃分,例如,可 以對(duì)應(yīng)各個(gè)功能劃分各個(gè)功能單元,也可以將兩個(gè)或兩個(gè)以上的功能集成在一個(gè)單元中。 上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。需要 說(shuō)明的是,本發(fā)明實(shí)施例中對(duì)單元的劃分是示意性的,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn) 時(shí)可以有另外的劃分方式。
[0107] 在采用集成的單元的情況下,圖4示出了上述實(shí)施例中所涉及的名稱節(jié)點(diǎn)的一種 可能的結(jié)構(gòu)示意圖。名稱節(jié)點(diǎn)400包括:處理單元401和通信單元402。其中:
[0108] 處理單元401,用于通過(guò)通信單元402接收客戶端發(fā)送的寫(xiě)入請(qǐng)求,該寫(xiě)入請(qǐng)求在 客戶端在期望存儲(chǔ)文件的數(shù)據(jù)流時(shí)生成,該寫(xiě)入請(qǐng)求攜帶有文件的文件名、至少兩種文件 格式以及該至少兩種文件格式中各文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù),其中,該至少兩種文件格式 中的每種文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù)之和小于至少兩種文件格式的文件格式總數(shù)與預(yù)設(shè)閾 值的乘積。
[0109] 處理單元401,還用于根據(jù)文件的文件名指定用于存儲(chǔ)數(shù)據(jù)流的目標(biāo)數(shù)據(jù)塊所對(duì) 應(yīng)的目標(biāo)數(shù)據(jù)塊的第一標(biāo)識(shí)。
[0110] 處理單元401,還用于根據(jù)該至少兩種文件格式以及該至少兩種文件格式中的每 種文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù),確定該至少兩種文件格式中的每種文件格式的目標(biāo)數(shù)據(jù)塊與 該至少兩個(gè)數(shù)據(jù)節(jié)點(diǎn)中的目標(biāo)數(shù)據(jù)節(jié)點(diǎn)之間的對(duì)應(yīng)關(guān)系。
[0111] 處理單元401,還用于根據(jù)對(duì)應(yīng)關(guān)系,通過(guò)通信單元402指示客戶端協(xié)助目標(biāo)數(shù)據(jù) 節(jié)點(diǎn)根據(jù)第一標(biāo)識(shí)存儲(chǔ)與自身存在對(duì)應(yīng)關(guān)系的文件格式的目標(biāo)數(shù)據(jù)塊。
[0112]作為一種可選的實(shí)施方式,處理單元401根據(jù)該至少兩種文件格式以及該至少兩 種文件格式中的每種文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù),確定該至少兩種文件格式中的每種文件格 式的目標(biāo)數(shù)據(jù)塊與該至少兩個(gè)數(shù)據(jù)節(jié)點(diǎn)中的目標(biāo)數(shù)據(jù)節(jié)點(diǎn)之間的對(duì)應(yīng)關(guān)系的方式具體為: [0113]處理單元401根據(jù)該至少兩種文件格式以及該至少兩種文件格式中的每種文件格 式對(duì)應(yīng)的存儲(chǔ)份數(shù),確定該至少兩種文件格式中的每種文件格式的目標(biāo)數(shù)據(jù)塊的個(gè)數(shù)。 [0 114]處理單元401根據(jù)該至少兩種文件格式中的每種文件格式的目標(biāo)數(shù)據(jù)塊的個(gè)數(shù), 從該至少兩個(gè)數(shù)據(jù)節(jié)點(diǎn)中確定目標(biāo)數(shù)據(jù)節(jié)點(diǎn),以便確定至少兩種文件格式中的每種文件格 式的目標(biāo)數(shù)據(jù)塊與目標(biāo)數(shù)據(jù)節(jié)點(diǎn)之間的對(duì)應(yīng)關(guān)系。
[0115] 作為一種可選的實(shí)施方式,寫(xiě)入請(qǐng)求攜帶的至少兩種文件格式以及該至少兩種文 件格式中各文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù),根據(jù)使用文件的業(yè)務(wù)的業(yè)務(wù)類型確定。
[0116] 作為一種可選的實(shí)施方式,寫(xiě)入請(qǐng)求攜帶的至少兩種文件格式以及該至少兩種文 件格式中各文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù),由用戶在客戶端設(shè)定。
[0117] 作為一種可選的實(shí)施方式,處理單元401根據(jù)對(duì)應(yīng)關(guān)系,通過(guò)通信單元402指示客 戶端協(xié)助目標(biāo)數(shù)據(jù)節(jié)點(diǎn)根據(jù)第一標(biāo)識(shí)存儲(chǔ)與自身存在對(duì)應(yīng)關(guān)系的文件格式的目標(biāo)數(shù)據(jù)塊 的方式具體為:
[0118] 處理單元401通過(guò)通信單元402向客戶端發(fā)送第一指令,該第一指令攜帶第一標(biāo) 識(shí)、第一數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí)以及第一數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的文件格式,該第一指令指 示客戶端按照第一指令攜帶的文件格式轉(zhuǎn)換文件的數(shù)據(jù)流以及根據(jù)第一數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí) 向第一數(shù)據(jù)節(jié)點(diǎn)發(fā)送轉(zhuǎn)換后的數(shù)據(jù)流和第一標(biāo)識(shí),其中,第一數(shù)據(jù)節(jié)點(diǎn)為目標(biāo)數(shù)據(jù)節(jié)點(diǎn)中 的任一個(gè)數(shù)據(jù)節(jié)點(diǎn)。
[0119] 作為一種可選的實(shí)施方式,處理單元401,還用于通過(guò)通信單元402向第一數(shù)據(jù)節(jié) 點(diǎn)發(fā)送第二指令,該第二指令攜帶第一標(biāo)識(shí)和第一數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的文件格 式,該第二指令指示第一數(shù)據(jù)節(jié)點(diǎn)根據(jù)第二指令攜帶的第一標(biāo)識(shí)和文件格式,將客戶端發(fā) 送的轉(zhuǎn)換后的數(shù)據(jù)流以目標(biāo)數(shù)據(jù)塊進(jìn)行存儲(chǔ)。
[0120] 處理單元401,還用于通過(guò)通信單元402向第二數(shù)據(jù)節(jié)點(diǎn)發(fā)送第三指令,該第三指 令攜帶第一標(biāo)識(shí)、第二數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的文件格式和第三數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí),該 第三指令指示第二數(shù)據(jù)節(jié)點(diǎn)根據(jù)第一標(biāo)識(shí)、第三指令攜帶的文件格式和第三數(shù)據(jù)節(jié)點(diǎn)的標(biāo) 識(shí)從第三數(shù)據(jù)節(jié)點(diǎn)獲取第三指令攜帶的文件格式的數(shù)據(jù)流,并根據(jù)第一標(biāo)識(shí)和第三指令攜 帶的文件格式將獲取的數(shù)據(jù)流以目標(biāo)數(shù)據(jù)塊存儲(chǔ),其中,第二數(shù)據(jù)節(jié)點(diǎn)與第一數(shù)據(jù)節(jié)點(diǎn)不 相同,第三數(shù)據(jù)節(jié)點(diǎn)與第二數(shù)據(jù)節(jié)點(diǎn)不相同。
[0121]作為一種可選的實(shí)施方式,第三指令攜帶的文件格式的數(shù)據(jù)流由第三數(shù)據(jù)節(jié)點(diǎn)將 第三數(shù)據(jù)節(jié)點(diǎn)存儲(chǔ)的目標(biāo)數(shù)據(jù)塊中的數(shù)據(jù)流轉(zhuǎn)換得到。
[0122]作為一種可選的實(shí)施方式,處理單元401,還用于通過(guò)通信單元402向客戶端發(fā)送 第四指令。該第四指令攜帶第一標(biāo)識(shí)、第一數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí),該第四指令用于指示客戶端根 據(jù)第一數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí),將文件的數(shù)據(jù)流和第一標(biāo)識(shí)發(fā)送至第一數(shù)據(jù)節(jié)點(diǎn)。其中,第一數(shù)據(jù) 節(jié)點(diǎn)為目標(biāo)數(shù)據(jù)節(jié)點(diǎn)中的任一個(gè)數(shù)據(jù)節(jié)點(diǎn)。
[0123] 作為一種可選的實(shí)施方式,處理單元401,還用于通過(guò)通信單元402向第一數(shù)據(jù)節(jié) 點(diǎn)發(fā)送第五指令。該第五指令攜帶第一標(biāo)識(shí)和第一數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的文件格 式,第五指令指示第一數(shù)據(jù)節(jié)點(diǎn)根據(jù)第五指令攜帶的文件格式,將客戶端發(fā)送的數(shù)據(jù)流的 格式轉(zhuǎn)換為第五指令攜帶的文件格式,并按照第一標(biāo)識(shí)和第五指令攜帶的文件格式將轉(zhuǎn)換 格式后的數(shù)據(jù)流以目標(biāo)數(shù)據(jù)塊進(jìn)行存儲(chǔ)。
[0124] 處理單元401,還用于通過(guò)通信單元402向第二數(shù)據(jù)節(jié)點(diǎn)發(fā)送第六指令。該第六指 令攜帶第一標(biāo)識(shí)、第二數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)的目標(biāo)數(shù)據(jù)塊的文件格式和第三數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí),第 六指令指示第二數(shù)據(jù)節(jié)點(diǎn)根據(jù)第一標(biāo)識(shí)和第三數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí)從第三數(shù)據(jù)節(jié)點(diǎn)獲取第一 標(biāo)識(shí)所對(duì)應(yīng)的文件格式的數(shù)據(jù)流,并將獲取的數(shù)據(jù)流的格式轉(zhuǎn)換為第六指令攜帶的文件格 式,并按照第一標(biāo)識(shí)和第六指令攜帶的文件格式將轉(zhuǎn)換格式后的數(shù)據(jù)流以目標(biāo)數(shù)據(jù)塊存 儲(chǔ)。其中,第二數(shù)據(jù)節(jié)點(diǎn)是指目標(biāo)數(shù)據(jù)節(jié)點(diǎn)中不同于第一數(shù)據(jù)節(jié)點(diǎn)的數(shù)據(jù)節(jié)點(diǎn),第三數(shù)據(jù)節(jié) 點(diǎn)是指第一數(shù)據(jù)節(jié)點(diǎn)或者任一個(gè)其他第二數(shù)據(jù)節(jié)點(diǎn)。
[0125] 請(qǐng)參見(jiàn)圖5,圖5是本發(fā)明實(shí)施例公開(kāi)的名稱節(jié)點(diǎn)的另一種可能的結(jié)構(gòu)示意圖。如 圖5所示,該名稱節(jié)點(diǎn)500包括處理器501、存儲(chǔ)器502、總線系統(tǒng)503和收發(fā)器504。其中,處理 器501和存儲(chǔ)器502通過(guò)總線系統(tǒng)503相連;處理器501和收發(fā)器504通過(guò)總線系統(tǒng)503相連。 [0126] 其中,處理器501可以是中央處理器(Central Processing Unit,CF*U),通用處理 器,協(xié)處理器,數(shù)字信號(hào)處理器(Digital Signal Processor,DSP),專用集成電路 (Application-Specific Integrated Circuit,ASIC),現(xiàn)場(chǎng)可編程門(mén)陣列(Field Programmable Gate Array,F(xiàn)PGA)或者其他可編程邏輯器件、晶體管邏輯器件、硬件部件或 者其任意組合。該處理器501也可以是實(shí)現(xiàn)計(jì)算功能的組合,例如包含一個(gè)或多個(gè)微處理器 組合,DSP和微處理器的組合等等。收發(fā)器504用于支持名稱節(jié)點(diǎn)與其他網(wǎng)元,如客戶端和數(shù) 據(jù)節(jié)點(diǎn)之間的通信。
[0127]其中,一個(gè)或多個(gè)程序被存儲(chǔ)在存儲(chǔ)器502中,該一個(gè)或多個(gè)程序包括指令,該指 令當(dāng)被名稱節(jié)點(diǎn)執(zhí)行時(shí)使名稱節(jié)點(diǎn)執(zhí)行圖2中的過(guò)程201~204,圖3中的過(guò)程302~306,和/ 或本文所描述的技術(shù)的其他過(guò)程。
[0128] 本領(lǐng)域技術(shù)人員應(yīng)該可以意識(shí)到,在上述一個(gè)或多個(gè)示例中,本發(fā)明所描述的功 能可以用硬件、軟件、固件或它們的任意組合來(lái)實(shí)現(xiàn)。當(dāng)使用軟件實(shí)現(xiàn)時(shí),可以將這些功能 存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中或者作為計(jì)算機(jī)可讀介質(zhì)上的一個(gè)或多個(gè)指令或代碼進(jìn)行傳輸。 計(jì)算機(jī)可讀介質(zhì)包括計(jì)算機(jī)存儲(chǔ)介質(zhì)和通信介質(zhì),其中通信介質(zhì)包括便于從一個(gè)地方向另 一個(gè)地方傳送計(jì)算機(jī)程序的任何介質(zhì)。存儲(chǔ)介質(zhì)可以是通用或?qū)S糜?jì)算機(jī)能夠存取的任何 可用介質(zhì)。
[0129] 以上所述的【具體實(shí)施方式】,對(duì)本發(fā)明的目的、技術(shù)方案和有益效果進(jìn)行了進(jìn)一步 詳細(xì)說(shuō)明,所應(yīng)理解的是,以上所述僅為本發(fā)明的【具體實(shí)施方式】而已,并不用于限定本發(fā)明 的保護(hù)范圍,凡在本發(fā)明的技術(shù)方案的基礎(chǔ)之上,所做的任何修改、等同替換、改進(jìn)等,均應(yīng) 包括在本發(fā)明的保護(hù)范圍之內(nèi)。
【主權(quán)項(xiàng)】
1. 一種文件存儲(chǔ)方法,應(yīng)用于包括名稱節(jié)點(diǎn)和至少兩個(gè)數(shù)據(jù)節(jié)點(diǎn)的系統(tǒng),其特征在于, 所述方法包括: 名稱節(jié)點(diǎn)接收客戶端發(fā)送的寫(xiě)入請(qǐng)求,所述寫(xiě)入請(qǐng)求在所述客戶端在期望存儲(chǔ)文件的 數(shù)據(jù)流時(shí)生成,所述寫(xiě)入請(qǐng)求攜帶有所述文件的文件名、至少兩種文件格式以及所述至少 兩種文件格式中各文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù),其中,所述至少兩種文件格式中的每種文件 格式對(duì)應(yīng)的存儲(chǔ)份數(shù)之和小于所述至少兩種文件格式的文件格式總數(shù)與預(yù)設(shè)閾值的乘積; 所述名稱節(jié)點(diǎn)根據(jù)所述文件的文件名指定用于存儲(chǔ)所述數(shù)據(jù)流的目標(biāo)數(shù)據(jù)塊所對(duì)應(yīng) 的所述目標(biāo)數(shù)據(jù)塊的第一標(biāo)識(shí); 所述名稱節(jié)點(diǎn)根據(jù)所述至少兩種文件格式以及所述至少兩種文件格式中的每種文件 格式對(duì)應(yīng)的存儲(chǔ)份數(shù),確定所述至少兩種文件格式中的每種文件格式的所述目標(biāo)數(shù)據(jù)塊與 所述至少兩個(gè)數(shù)據(jù)節(jié)點(diǎn)中的目標(biāo)數(shù)據(jù)節(jié)點(diǎn)之間的對(duì)應(yīng)關(guān)系; 所述名稱節(jié)點(diǎn)根據(jù)所述對(duì)應(yīng)關(guān)系,指示所述客戶端協(xié)助所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)按照所述第 一標(biāo)識(shí)存儲(chǔ)與自身存在對(duì)應(yīng)關(guān)系的文件格式的所述目標(biāo)數(shù)據(jù)塊。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述名稱節(jié)點(diǎn)根據(jù)所述至少兩種文件格式 以及所述至少兩種文件格式中的每種文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù),確定所述至少兩種文件格 式中的每種文件格式的所述目標(biāo)數(shù)據(jù)塊與所述至少兩個(gè)數(shù)據(jù)節(jié)點(diǎn)中的目標(biāo)數(shù)據(jù)節(jié)點(diǎn)之間 的對(duì)應(yīng)關(guān)系,包括: 所述名稱節(jié)點(diǎn)根據(jù)所述至少兩種文件格式以及所述至少兩種文件格式中的每種文件 格式對(duì)應(yīng)的存儲(chǔ)份數(shù),確定所述至少兩種文件格式中的每種文件格式的所述目標(biāo)數(shù)據(jù)塊的 個(gè)數(shù); 所述名稱節(jié)點(diǎn)根據(jù)所述至少兩種文件格式中的每種文件格式的所述目標(biāo)數(shù)據(jù)塊的個(gè) 數(shù),從所述至少兩個(gè)數(shù)據(jù)節(jié)點(diǎn)中確定所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn),以便確定所述至少兩種文件格式 中的每種文件格式的所述目標(biāo)數(shù)據(jù)塊與所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)之間的對(duì)應(yīng)關(guān)系。3. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述寫(xiě)入請(qǐng)求攜帶的所述至少兩種文件格 式以及所述至少兩種文件格式中各文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù),根據(jù)使用所述文件的業(yè)務(wù)的 業(yè)務(wù)類型確定。4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述寫(xiě)入請(qǐng)求攜帶的所述至少兩種文件格 式以及所述至少兩種文件格式中各文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù),由用戶在所述客戶端設(shè)定。5. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述名稱節(jié)點(diǎn)根據(jù)所述對(duì)應(yīng)關(guān)系,指示所 述客戶端協(xié)助所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)按照所述第一標(biāo)識(shí)存儲(chǔ)與自身存在對(duì)應(yīng)關(guān)系的文件格式 的所述目標(biāo)數(shù)據(jù)塊,包括: 所述名稱節(jié)點(diǎn)向所述客戶端發(fā)送第一指令,所述第一指令攜帶所述第一標(biāo)識(shí)、第一數(shù) 據(jù)節(jié)點(diǎn)的標(biāo)識(shí)以及所述第一數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)的所述目標(biāo)數(shù)據(jù)塊的文件格式,所述第一指令指 示所述客戶端按照所述第一指令攜帶的文件格式轉(zhuǎn)換所述文件的數(shù)據(jù)流以及根據(jù)所述第 一數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí)向所述第一數(shù)據(jù)節(jié)點(diǎn)發(fā)送轉(zhuǎn)換后的數(shù)據(jù)流和所述第一標(biāo)識(shí),其中,所述 第一數(shù)據(jù)節(jié)點(diǎn)為所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)中的任一個(gè)數(shù)據(jù)節(jié)點(diǎn)。6. 根據(jù)權(quán)利要求5所述的方法,其特征在于,所述方法還包括: 所述名稱節(jié)點(diǎn)向所述第一數(shù)據(jù)節(jié)點(diǎn)發(fā)送第二指令,所述第二指令攜帶所述第一標(biāo)識(shí)和 所述第一數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)的所述目標(biāo)數(shù)據(jù)塊的文件格式,所述第二指令指示所述第一數(shù)據(jù)節(jié) 點(diǎn)按照所述第二指令攜帶的第一標(biāo)識(shí)和文件格式,將所述客戶端發(fā)送的所述轉(zhuǎn)換后的數(shù)據(jù) 流以所述目標(biāo)數(shù)據(jù)塊進(jìn)行存儲(chǔ); 所述名稱節(jié)點(diǎn)向所述第二數(shù)據(jù)節(jié)點(diǎn)發(fā)送第三指令,所述第三指令攜帶所述第一標(biāo)識(shí)、 所述第二數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)的所述目標(biāo)數(shù)據(jù)塊的文件格式和第三數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí),所述第三指 令指示所述第二數(shù)據(jù)節(jié)點(diǎn)根據(jù)所述第一標(biāo)識(shí)、所述第三指令攜帶的文件格式和所述第三數(shù) 據(jù)節(jié)點(diǎn)的標(biāo)識(shí)從所述第三數(shù)據(jù)節(jié)點(diǎn)獲取所述第三指令攜帶的文件格式的數(shù)據(jù)流,并按照所 述第一標(biāo)識(shí)和所述第三指令攜帶的文件格式將獲取的數(shù)據(jù)流以所述目標(biāo)數(shù)據(jù)塊存儲(chǔ),其 中,所述第二數(shù)據(jù)節(jié)點(diǎn)是指所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)中不同于所述第一數(shù)據(jù)節(jié)點(diǎn)的數(shù)據(jù)節(jié)點(diǎn),所 述第三數(shù)據(jù)節(jié)點(diǎn)是指所述第一數(shù)據(jù)節(jié)點(diǎn)或者任一個(gè)其他所述第二數(shù)據(jù)節(jié)點(diǎn)。7. 根據(jù)權(quán)利要求6所述的方法,其特征在于,所述第三指令攜帶的文件格式的數(shù)據(jù)流由 所述第三數(shù)據(jù)節(jié)點(diǎn)將所述第三數(shù)據(jù)節(jié)點(diǎn)存儲(chǔ)的所述目標(biāo)數(shù)據(jù)塊中的數(shù)據(jù)流轉(zhuǎn)換得到。8. -種名稱節(jié)點(diǎn),應(yīng)用于包括所述名稱節(jié)點(diǎn)和至少兩個(gè)數(shù)據(jù)節(jié)點(diǎn)的系統(tǒng),其特征在于, 所述名稱節(jié)點(diǎn)包括處理單元和通信單元,其中: 所述處理單元,用于通過(guò)所述通信單元接收客戶端發(fā)送的寫(xiě)入請(qǐng)求,所述寫(xiě)入請(qǐng)求在 所述客戶端在期望存儲(chǔ)文件的數(shù)據(jù)流時(shí)生成,所述寫(xiě)入請(qǐng)求攜帶有所述文件的文件名、至 少兩種文件格式以及所述至少兩種文件格式中各文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù),其中,所述至 少兩種文件格式中的每種文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù)之和小于所述至少兩種文件格式的文 件格式總數(shù)與預(yù)設(shè)閾值的乘積; 所述處理單元,還用于根據(jù)所述文件的文件名指定用于存儲(chǔ)所述數(shù)據(jù)流的目標(biāo)數(shù)據(jù)塊 所對(duì)應(yīng)的所述目標(biāo)數(shù)據(jù)塊的第一標(biāo)識(shí); 所述處理單元,還用于根據(jù)所述至少兩種文件格式以及所述至少兩種文件格式中的每 種文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù),確定所述至少兩種文件格式中的每種文件格式的所述目標(biāo)數(shù) 據(jù)塊與所述至少兩個(gè)數(shù)據(jù)節(jié)點(diǎn)中的目標(biāo)數(shù)據(jù)節(jié)點(diǎn)之間的對(duì)應(yīng)關(guān)系; 所述處理單元,還用于根據(jù)所述對(duì)應(yīng)關(guān)系,通過(guò)所述通信單元指示所述客戶端協(xié)助所 述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)按照所述第一標(biāo)識(shí)存儲(chǔ)與自身存在對(duì)應(yīng)關(guān)系的文件格式的所述目標(biāo)數(shù)據(jù) 塊。9. 根據(jù)權(quán)利要求8所述的名稱節(jié)點(diǎn),其特征在于,所述處理單元根據(jù)所述至少兩種文件 格式以及所述至少兩種文件格式中的每種文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù),確定所述至少兩種文 件格式中的每種文件格式的所述目標(biāo)數(shù)據(jù)塊與所述至少兩個(gè)數(shù)據(jù)節(jié)點(diǎn)中的目標(biāo)數(shù)據(jù)節(jié)點(diǎn) 之間的對(duì)應(yīng)關(guān)系的方式具體為: 所述處理單元根據(jù)所述至少兩種文件格式以及所述至少兩種文件格式中的每種文件 格式對(duì)應(yīng)的存儲(chǔ)份數(shù),確定所述至少兩種文件格式中的每種文件格式的所述目標(biāo)數(shù)據(jù)塊的 個(gè)數(shù); 所述處理單元根據(jù)所述至少兩種文件格式中的每種文件格式的所述目標(biāo)數(shù)據(jù)塊的個(gè) 數(shù),從所述至少兩個(gè)數(shù)據(jù)節(jié)點(diǎn)中確定所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn),以便確定所述至少兩種文件格式 中的每種文件格式的所述目標(biāo)數(shù)據(jù)塊與所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)之間的對(duì)應(yīng)關(guān)系。10. 根據(jù)權(quán)利要求8所述的名稱節(jié)點(diǎn),其特征在于,所述寫(xiě)入請(qǐng)求攜帶的所述至少兩種 文件格式以及所述至少兩種文件格式中各文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù),根據(jù)使用所述文件的 業(yè)務(wù)的業(yè)務(wù)類型確定。11. 根據(jù)權(quán)利要求8所述的名稱節(jié)點(diǎn),其特征在于,所述寫(xiě)入請(qǐng)求攜帶的所述至少兩種 文件格式以及所述至少兩種文件格式中各文件格式對(duì)應(yīng)的存儲(chǔ)份數(shù),由用戶在所述客戶端 設(shè)定。12. 根據(jù)權(quán)利要求8所述的名稱節(jié)點(diǎn),其特征在于,所述處理單元根據(jù)所述對(duì)應(yīng)關(guān)系,通 過(guò)所述通信單元指示所述客戶端協(xié)助所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)根據(jù)所述第一標(biāo)識(shí)存儲(chǔ)與自身存 在對(duì)應(yīng)關(guān)系的文件格式的所述目標(biāo)數(shù)據(jù)塊的方式具體為: 所述處理單元通過(guò)所述通信單元向所述客戶端發(fā)送第一指令,所述第一指令攜帶所述 第一標(biāo)識(shí)、第一數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí)以及所述第一數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)的所述目標(biāo)數(shù)據(jù)塊的文件格 式,所述第一指令指示所述客戶端按照所述第一指令攜帶的文件格式轉(zhuǎn)換所述文件的數(shù)據(jù) 流以及根據(jù)所述第一數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí)向所述第一數(shù)據(jù)節(jié)點(diǎn)發(fā)送轉(zhuǎn)換后的數(shù)據(jù)流和所述第 一標(biāo)識(shí),其中,所述第一數(shù)據(jù)節(jié)點(diǎn)為所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)中的任一個(gè)數(shù)據(jù)節(jié)點(diǎn)。13. 根據(jù)權(quán)利要求12所述的名稱節(jié)點(diǎn),其特征在于, 所述處理單元,還用于通過(guò)所述通信單元向所述第一數(shù)據(jù)節(jié)點(diǎn)發(fā)送第二指令,所述第 二指令攜帶所述第一標(biāo)識(shí)和所述第一數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)的所述目標(biāo)數(shù)據(jù)塊的文件格式,所述第 二指令指示所述第一數(shù)據(jù)節(jié)點(diǎn)按照所述第二指令攜帶的第一標(biāo)識(shí)和文件格式,將所述客戶 端發(fā)送的所述轉(zhuǎn)換后的數(shù)據(jù)流以所述目標(biāo)數(shù)據(jù)塊進(jìn)行存儲(chǔ); 所述處理單元,還用于通過(guò)所述通信單元向所述第二數(shù)據(jù)節(jié)點(diǎn)發(fā)送第三指令,所述第 三指令攜帶所述第一標(biāo)識(shí)、所述第二數(shù)據(jù)節(jié)點(diǎn)對(duì)應(yīng)的所述目標(biāo)數(shù)據(jù)塊的文件格式和第三數(shù) 據(jù)節(jié)點(diǎn)的標(biāo)識(shí),所述第三指令指示所述第二數(shù)據(jù)節(jié)點(diǎn)根據(jù)所述第一標(biāo)識(shí)、所述第三指令攜 帶的文件格式和所述第三數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識(shí)從所述第三數(shù)據(jù)節(jié)點(diǎn)獲取所述第三指令攜帶的 文件格式的數(shù)據(jù)流,并按照所述第一標(biāo)識(shí)和所述第三指令攜帶的文件格式將獲取的數(shù)據(jù)流 以所述目標(biāo)數(shù)據(jù)塊存儲(chǔ),其中,所述第二數(shù)據(jù)節(jié)點(diǎn)是指所述目標(biāo)數(shù)據(jù)節(jié)點(diǎn)中不同于所述第 一數(shù)據(jù)節(jié)點(diǎn)的數(shù)據(jù)節(jié)點(diǎn),所述第三數(shù)據(jù)節(jié)點(diǎn)是指所述第一數(shù)據(jù)節(jié)點(diǎn)或者任一個(gè)其他所述第 二數(shù)據(jù)節(jié)點(diǎn)。14. 根據(jù)權(quán)利要求13所述的名稱節(jié)點(diǎn),其特征在于,所述第三指令攜帶的文件格式的數(shù) 據(jù)流由所述第三數(shù)據(jù)節(jié)點(diǎn)將所述第三數(shù)據(jù)節(jié)點(diǎn)存儲(chǔ)的所述目標(biāo)數(shù)據(jù)塊中的數(shù)據(jù)流轉(zhuǎn)換得 到。15. -種名稱節(jié)點(diǎn),應(yīng)用于包括所述名稱節(jié)點(diǎn)和至少兩個(gè)數(shù)據(jù)節(jié)點(diǎn)的系統(tǒng),其特征在 于,所述名稱節(jié)點(diǎn)包括處理器、存儲(chǔ)器、收發(fā)器、總線系統(tǒng)以及一個(gè)或多個(gè)程序,所述處理器 和所述存儲(chǔ)器通過(guò)所述總線系統(tǒng)相連,所述處理器和所述收發(fā)器通過(guò)所述總線系統(tǒng)相連, 其中,所述一個(gè)或多個(gè)程序被存儲(chǔ)在所述存儲(chǔ)器中,所述一個(gè)或多個(gè)程序包括指令,當(dāng)所述 指令被所述名稱節(jié)點(diǎn)執(zhí)行時(shí)使所述名稱節(jié)點(diǎn)執(zhí)行如權(quán)利要求1至7任一項(xiàng)所述的方法。
【文檔編號(hào)】G06F17/30GK105912718SQ201610286777
【公開(kāi)日】2016年8月31日
【申請(qǐng)日】2016年4月29日
【發(fā)明人】張建
【申請(qǐng)人】華為技術(shù)有限公司