一種基于分布式文件系統(tǒng)的數(shù)據(jù)塊分配方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明是基于分布式文件系統(tǒng),以結(jié)點的網(wǎng)絡(luò)距離和負(fù)載均衡為代價把數(shù)據(jù)塊分 配到數(shù)據(jù)倉庫的分配方法。
【背景技術(shù)】
[0002] 由于Hadoop環(huán)境下分布式文件系統(tǒng)中的數(shù)據(jù)不支持類似于DBMS的分析功能,因 此,需要將HDFS中的數(shù)據(jù)迀移到支持類似于SQL的分布式數(shù)據(jù)倉庫中。Yu Xu等人提出了 基于Edmonds-Karp的數(shù)據(jù)塊分配方案但是該算法對于未分配的數(shù)據(jù)塊只是隨機(jī)的將其分 配到的結(jié)點中,未考慮結(jié)點之間的網(wǎng)絡(luò)距離和負(fù)載均衡等因素,而且,運(yùn)用Edmonds-Karp 方法求解網(wǎng)絡(luò)流的最大流時效率比較低。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明要解決的技術(shù)問題是:減少被迀移到遠(yuǎn)程MySQL結(jié)點的HDFS數(shù)據(jù)塊個數(shù), 同時以最小的代價將HDFS數(shù)據(jù)塊均勻地分配到MySQL結(jié)點上。
[0004] 為了解決上述技術(shù)問題,本發(fā)明的技術(shù)方案是提供了 一種基于分布式文件系統(tǒng)的 數(shù)據(jù)塊分配方法,其特征在于,包括以下步驟:
[0005] 步驟1、根據(jù)分配問題構(gòu)造數(shù)據(jù)塊的初始分配圖G ;
[0006] 步驟2、初始化任意兩個結(jié)點之間的網(wǎng)絡(luò)距離,其中,第i個數(shù)據(jù)塊Bi和第j個 MySQL結(jié)點Mj之間的網(wǎng)絡(luò)距離d(i,j)為:
[0007]
【主權(quán)項】
1. 一種基于分布式文件系統(tǒng)的數(shù)據(jù)塊分配方法,其特征在于,包括以下步驟: 步驟1、根據(jù)分配問題構(gòu)造數(shù)據(jù)塊的初始分配圖G ; 步驟2、初始化任意兩個結(jié)點之間的網(wǎng)絡(luò)距離,其中,第i個數(shù)據(jù)塊Bi和第j個MySQL 結(jié)點Mj之間的網(wǎng)絡(luò)距離d(i,j)為:
步驟3、基于步驟2得到的網(wǎng)絡(luò)距離根據(jù)最短增廣路算法求解初始分配圖G的最大流; 步驟4、根據(jù)步驟3得到的最大流,判斷是否存在未分配的數(shù)據(jù)塊,如果存在,則取出所 有未分配的數(shù)據(jù)塊,組成集合UnBlocks,然后跳轉(zhuǎn)到步驟5,否則,跳轉(zhuǎn)到步驟6 ; 步驟5、如果存在數(shù)據(jù)塊個數(shù)小于a的MySQL結(jié)點,則取出這些結(jié)點,稱作結(jié)點集合M, 否則,取出數(shù)據(jù)塊個數(shù)等于a的MySQL結(jié)點,同樣稱作結(jié)點集合M,從集合UnBlocks中隨機(jī) 取出一個數(shù)據(jù)塊,稱作數(shù)據(jù)塊UB,選擇一個與數(shù)據(jù)塊UB所在結(jié)點的網(wǎng)絡(luò)代價最小的MySQL 結(jié)點,稱作MySQL結(jié)點MinM,然后將數(shù)據(jù)塊UB分配給MySQL結(jié)點MinM,最后從結(jié)點集合M 中刪除MySQL結(jié)點MinM,從集合UnBlocks中刪除數(shù)據(jù)塊UB,跳轉(zhuǎn)到步驟4,其中: 第i個數(shù)據(jù)塊Bi和第j個MySQL結(jié)點Mj之間的網(wǎng)絡(luò)代價cost (i,j)為: cost (i,j) = w*d(i,j) +(I-W) load (j),式中,w 為參數(shù),load (j)為第 j 個 MySQL 結(jié)點 Mj的負(fù)載能力; 步驟6、如果存在數(shù)據(jù)塊個數(shù)小于a的MySQL結(jié)點,則取出這些結(jié)點,稱作結(jié)點集合 M1,然后從結(jié)點集合Ml中隨機(jī)取出一個結(jié)點,稱作結(jié)點RM,接下來,從數(shù)據(jù)塊個數(shù)為a+Ι的 MySQL結(jié)點中取出一個與結(jié)點RM的網(wǎng)絡(luò)代價最小的數(shù)據(jù)塊,稱為數(shù)據(jù)塊MinB,最后將數(shù)據(jù) 塊MinB重新分配給結(jié)點RM,重復(fù)步驟6,否則算法終止。
2. 如權(quán)利要求1所述的一種基于分布式文件系統(tǒng)的數(shù)據(jù)塊分配方法,其特征在于,所 述第j個MySQL結(jié)點Mj的負(fù)載能力load (j)為第j個MySQL結(jié)點Mj的當(dāng)前數(shù)據(jù)塊的個數(shù)。
【專利摘要】本發(fā)明要解決的技術(shù)問題是:減少被遷移到遠(yuǎn)程MySQL結(jié)點的HDFS數(shù)據(jù)塊個數(shù),同時以最小的代價將HDFS數(shù)據(jù)塊均勻地分配到MySQL結(jié)點上。為了解決上述技術(shù)問題,本發(fā)明的技術(shù)方案是提供了一種基于分布式文件系統(tǒng)的數(shù)據(jù)塊分配方法。本發(fā)明在滿足數(shù)據(jù)塊均勻分配的約束條件下,使得被分配到遠(yuǎn)程結(jié)點的HDFS數(shù)據(jù)塊個數(shù)盡可能的少,同時使得在最短的時間內(nèi)傳輸?shù)腍DFS數(shù)據(jù)塊個數(shù)最多,在時間復(fù)雜度上更低,且性能更高,分配方案所花費(fèi)的網(wǎng)絡(luò)代價更低,更合理,具有較高的應(yīng)用價值。
【IPC分類】G06F17-30
【公開號】CN104834741
【申請?zhí)枴緾N201510259620
【發(fā)明人】李繼云, 孫莉, 張嬌艷, 何剛, 樂嘉錦, 施巍, 呂俊濤
【申請人】東華大學(xué)
【公開日】2015年8月12日
【申請日】2015年5月20日