羅 鵬,龔 勛
(四川大學(xué)計(jì)算機(jī)學(xué)院,四川成都610065)
隨著社會(huì)信息化程度的不斷提高,各種形式的數(shù)據(jù)急劇膨脹[1]。因?yàn)閿?shù)據(jù)量的快速增長(zhǎng),在網(wǎng)絡(luò)上出現(xiàn)了越來越多的數(shù)據(jù)密集型應(yīng)用,如何安全可靠及有效地存儲(chǔ)海量數(shù)據(jù)是云計(jì)算[2]的一個(gè)重要研究方向,而HDFS(hadoop distributed file system)[3,4]就是解決海量數(shù)據(jù)存儲(chǔ)問題的一個(gè)開源分布式文件系統(tǒng)。
HDFS有著高容錯(cuò)性的特點(diǎn),并且設(shè)計(jì)用來部署在低廉的硬件上。它提供高吞吐量來訪問應(yīng)用程序的數(shù)據(jù),適合擁有超大數(shù)據(jù)集的應(yīng)用。為了避免機(jī)器故障給數(shù)據(jù)帶來毀滅性的災(zāi)難,HDFS將文件分塊,且每個(gè)數(shù)據(jù)塊以多個(gè)數(shù)據(jù)副本的形式存儲(chǔ)在多個(gè)數(shù)據(jù)節(jié)點(diǎn)上[5]。針對(duì)數(shù)據(jù)存放的問題,HDFS將每個(gè)數(shù)據(jù)節(jié)點(diǎn)以機(jī)架為單位進(jìn)行組織,并添加到網(wǎng)絡(luò)拓?fù)渲?。在選擇數(shù)據(jù)節(jié)點(diǎn)時(shí),默認(rèn)存放第一個(gè)數(shù)據(jù)塊副本到本地機(jī)架,并隨機(jī)選擇遠(yuǎn)端機(jī)架存放其他數(shù)據(jù)副本,從而減輕了網(wǎng)絡(luò)的負(fù)擔(dān),同時(shí)也降低了數(shù)據(jù)的風(fēng)險(xiǎn)。
但是,HDFS在選擇數(shù)據(jù)存放節(jié)點(diǎn)時(shí),沒有考慮到集群中數(shù)據(jù)節(jié)點(diǎn)性能、網(wǎng)絡(luò)狀況和存儲(chǔ)空間的差異性[6],從而造成集群整體負(fù)載不均衡,數(shù)據(jù)節(jié)點(diǎn)的資源無法合理利用。因此,本文在綜合考慮每個(gè)數(shù)據(jù)節(jié)點(diǎn)CPU負(fù)載、內(nèi)存負(fù)載、網(wǎng)絡(luò)負(fù)載[7]和存儲(chǔ)空間負(fù)載[8]的基礎(chǔ)上,提出一種改進(jìn)的數(shù)據(jù)存放策略。
HDFS采用基于元數(shù)據(jù)服務(wù)器的組織結(jié)構(gòu)進(jìn)行工作。名稱節(jié)點(diǎn)(namenode)負(fù)責(zé)存儲(chǔ)和管理文件系統(tǒng)的元數(shù)據(jù),數(shù)據(jù)節(jié)點(diǎn)(datanode)負(fù)責(zé)存儲(chǔ)和管理數(shù)據(jù)[9]。當(dāng)客戶端需要寫入數(shù)據(jù)時(shí),客戶端先訪問名稱節(jié)點(diǎn),請(qǐng)求寫數(shù)據(jù)操作。在通過名稱節(jié)點(diǎn)的權(quán)限檢查后,名稱節(jié)點(diǎn)選擇合適的節(jié)點(diǎn),返回給客戶端。
由于大型HDFS實(shí)例一般運(yùn)行在跨越多個(gè)機(jī)架的集群上,不同機(jī)架上的兩臺(tái)機(jī)器之間通信需要經(jīng)過交換機(jī),在大多數(shù)情況下,同一個(gè)機(jī)架內(nèi)的兩臺(tái)機(jī)器間的帶寬會(huì)比不同機(jī)架的機(jī)器間的帶寬大。因此,名稱節(jié)點(diǎn)在選擇合適的數(shù)據(jù)節(jié)點(diǎn)時(shí),為了提高網(wǎng)絡(luò)帶寬的利用率、保證數(shù)據(jù)的可靠性,應(yīng)用了機(jī)架感知的理論。該理論一個(gè)重要的前提是HDFS運(yùn)行于一個(gè)具有樹狀網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的集群上。集群可以由多個(gè)數(shù)據(jù)中心組成,每個(gè)數(shù)據(jù)中心有多個(gè)機(jī)架,每個(gè)機(jī)架上有多個(gè)數(shù)據(jù)節(jié)點(diǎn)。
機(jī)架感知的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)示例圖如圖1所示。
圖1 機(jī)架感知的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
圖1展示了兩個(gè)數(shù)據(jù)中心的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。其中Di(i∈[1,2])、Ri(i∈[1,4])都是交換機(jī),DNi(i∈[1,12])是數(shù)據(jù)節(jié)點(diǎn)。
設(shè)rackid表示節(jié)點(diǎn)在網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)中的路徑。如圖1所示,DN1的rackid=/D1/R1/DN1。每個(gè)rackid中都包含了該節(jié)點(diǎn)的父節(jié)點(diǎn)以及每個(gè)層次的祖先節(jié)點(diǎn)。
為了衡量?jī)蓚€(gè)節(jié)點(diǎn)的距離,HDFS采用了一個(gè)簡(jiǎn)單的方法,兩個(gè)節(jié)點(diǎn)間的距離就是它們到最近的共同祖先的距離總和。通過機(jī)架感知的過程,名稱節(jié)點(diǎn)可以確定每個(gè)數(shù)據(jù)節(jié)點(diǎn)所屬的rackid,通過rackid可以計(jì)算數(shù)據(jù)節(jié)點(diǎn)之間的網(wǎng)絡(luò)距離。
設(shè)distance(rackid1,rackid2)表示rackid1與rackid2之間的網(wǎng)絡(luò)距離。
如圖1所示,distance(/D1/R1/DN1,/D1/R1/DN1)=0(同一個(gè)節(jié)點(diǎn))。
distance(/D1/R1/DN1,/D1/R1/DN2)=2(同一機(jī)架上的不同節(jié)點(diǎn))。
distance(/D1/R1/DN1,/D1/R2/DN4)=4(同一數(shù)據(jù)中心不同機(jī)架上的節(jié)點(diǎn))。
distance(/D1/R1/DN1,/D2/R3/DN7)=6(不同數(shù)據(jù)中心的節(jié)點(diǎn))。
設(shè)數(shù)據(jù)塊的n個(gè)副本,分別存放在rackid為RACKID1,RACK-ID2,……,RACK-IDn的節(jié)點(diǎn)上(n∈N*),distance(RACK-IDi,RACK-IDj)表示RACK-IDi與RACK-IDj的距離,其中i≤n,j≤n(i、j∈N*)。
HDFS數(shù)據(jù)存放策略具體流程如下:
步驟1 如果Client是集群中的數(shù)據(jù)節(jié)點(diǎn),那么Namenode選擇Client主機(jī)存放數(shù)據(jù)塊的第一個(gè)副本。
步驟2 如果Client不是集群中的數(shù)據(jù)節(jié)點(diǎn),Namenode隨機(jī)選擇集群中的任意一個(gè)Datanode(數(shù)據(jù)節(jié)點(diǎn))存放數(shù)據(jù)塊的第一個(gè)副本。
步驟3 Namenode計(jì)算distance(RACK-ID1,RACKIDk),其中k∈N*,k≤n并且k≠1,隨機(jī)選擇與第一個(gè)副本存放節(jié)點(diǎn)不在同一個(gè)機(jī)架的數(shù)據(jù)節(jié)點(diǎn)作為第二個(gè)數(shù)據(jù)塊副本的存放節(jié)點(diǎn)。
步驟4 Namenode計(jì)算distance(RACK-ID2,RACKIDk),其中k∈N*,k≤n,k≠1且k≠2,隨機(jī)選擇與第二個(gè)副本存放節(jié)點(diǎn)在同一個(gè)機(jī)架的數(shù)據(jù)節(jié)點(diǎn)作為第三個(gè)數(shù)據(jù)塊副本的存放節(jié)點(diǎn)。
步驟5 對(duì)多于3個(gè)副本的情況,Namenode為其它副本隨機(jī)選擇集群中的任意一個(gè)還沒有被選中Datanode作為數(shù)據(jù)塊副本存放節(jié)點(diǎn)。
以上情況,在每個(gè)Datanode選中后,如果出現(xiàn)節(jié)點(diǎn)存儲(chǔ)空間不足、網(wǎng)絡(luò)連接負(fù)載過重或者所在機(jī)架選擇的Datanode數(shù)量過多的問題,則重新選擇一個(gè)數(shù)據(jù)節(jié)點(diǎn)。
HDFS的數(shù)據(jù)存放策略基于以下兩個(gè)基本原則:
原則1:存在兩個(gè)或兩個(gè)以上機(jī)架的情況下,如果數(shù)據(jù)塊副本數(shù)量多于1個(gè),則數(shù)據(jù)塊副本至少分布在兩個(gè)不同的機(jī)架上。
原則2:選擇距離較近的數(shù)據(jù)節(jié)點(diǎn),即“臨近原則”。HDFS的數(shù)據(jù)存放策略在保證以上兩個(gè)基本原則的基礎(chǔ)上仍存在以下問題:
(1)HDFS數(shù)據(jù)存放策略在選擇數(shù)據(jù)塊副本存放節(jié)點(diǎn)的算法上隨機(jī)性較大。
(2)HDFS數(shù)據(jù)存放策略雖然考慮了數(shù)據(jù)節(jié)點(diǎn)的網(wǎng)絡(luò)連接數(shù),卻是在隨機(jī)選擇了數(shù)據(jù)節(jié)點(diǎn)之后再進(jìn)行衡量,導(dǎo)致集群負(fù)載的均衡性不太理想。
基于上述問題,在保證原則1和原則2的前提下,本文提出一種綜合考慮數(shù)據(jù)節(jié)點(diǎn)負(fù)載,優(yōu)先選擇負(fù)載最小的數(shù)據(jù)節(jié)點(diǎn)作為副本存放節(jié)點(diǎn)的數(shù)據(jù)存放策略。
定義1 存放成本用于衡量一個(gè)數(shù)據(jù)節(jié)點(diǎn)存放數(shù)據(jù)塊副本的優(yōu)先程度,數(shù)據(jù)節(jié)點(diǎn)負(fù)載越大,存放成本越高,優(yōu)先程度越低。
定義2 負(fù)載因子用于計(jì)算數(shù)據(jù)節(jié)點(diǎn)存放成本的參數(shù),包括CPU負(fù)載、內(nèi)存負(fù)載、網(wǎng)絡(luò)負(fù)載和存儲(chǔ)空間負(fù)載。
數(shù)學(xué)模型如下:
設(shè)數(shù)據(jù)節(jié)點(diǎn)的集合DN={DN1,DN2,DN3,…,DNm},DNi為該集合的任一數(shù)據(jù)節(jié)點(diǎn),DNi∈DN,m為HDFS集群中數(shù)據(jù)節(jié)點(diǎn)的數(shù)量。數(shù)據(jù)節(jié)點(diǎn)DNi的CPU負(fù)載為CPUi,平均值為DNi的內(nèi)存負(fù)載為Memi,平均值為DNi的網(wǎng)絡(luò)負(fù)載為Neti,平均值為DNi最近k次CPUi負(fù)載的集合CPUi={CPUi1,CPUi2,…,CPUik},DNi最近k次Memi負(fù)載的集合Memi={Memi1,Memi2,…,Memik},DNi最近k次Neti負(fù)載的集合Neti={Neti1,Neti2,…,Netik},則
其中,k的值,本文默認(rèn)為5,即計(jì)算最近5次的負(fù)載因子的平均值。
設(shè)WCPU、WMem、WNet、WS分別表示數(shù)據(jù)節(jié)點(diǎn)的CPU、內(nèi)存、網(wǎng)絡(luò)、存儲(chǔ)空間負(fù)載的權(quán)值系數(shù)。DNi的存儲(chǔ)空間負(fù)載為Si。
數(shù)據(jù)節(jié)點(diǎn)DNi的存放成本Ci可定義為
其中,WCPU、WMem、WNet、WS的具體值,需要通過實(shí)驗(yàn)的測(cè)試結(jié)果,選擇最優(yōu)化的一組權(quán)值系數(shù)。
步驟1 Datanode每間隔60s,采集CPU運(yùn)行時(shí)間,CPU空閑時(shí)間,內(nèi)存總量,內(nèi)存使用量,網(wǎng)絡(luò)上行流量、網(wǎng)絡(luò)下行流量,以及存儲(chǔ)空間的使用信息。
步驟2 計(jì)算間隔時(shí)間內(nèi)CPU利用率、網(wǎng)絡(luò)帶寬利用率,以及在采集時(shí)間點(diǎn)時(shí)內(nèi)存的利用率、存儲(chǔ)空間的利用率。并計(jì)算近5次CPU利用率、網(wǎng)絡(luò)帶寬利用率和內(nèi)存利用率的平均值。
Datanode處理流程如圖2所示。
步驟4 Namenode收到Datanode發(fā)送的心跳包,根據(jù)公式(4),計(jì)算數(shù)據(jù)塊副本存放成本。
步驟5 在Client向Namenode發(fā)送寫數(shù)據(jù)請(qǐng)求時(shí),Namenode選擇最優(yōu)數(shù)據(jù)節(jié)點(diǎn),返回給Client。
Namenode選擇數(shù)據(jù)塊副本存放節(jié)點(diǎn)的偽代碼如下所示:(注:numOf Replication表示副本數(shù)量,且副本數(shù)量大于1的情況下,數(shù)據(jù)節(jié)點(diǎn)不能被重復(fù)選擇)
在選擇一個(gè)數(shù)據(jù)塊副本的存放節(jié)點(diǎn)時(shí),由于改進(jìn)后的策略,需要在機(jī)架上選擇存放成本最低的Datanode,而原始的HDFS策略只是在機(jī)架上隨機(jī)選擇Datanode存放數(shù)據(jù)塊副本。對(duì)于有N個(gè)節(jié)點(diǎn)的數(shù)據(jù)中心,前者的計(jì)算量正比于數(shù)據(jù)中心的節(jié)點(diǎn)數(shù)量,后者的計(jì)算量也與數(shù)據(jù)中心節(jié)點(diǎn)存在線性關(guān)系,兩者的復(fù)雜度都為O(N)。
圖2 Datanode處理流程
實(shí)驗(yàn)的拓?fù)浣Y(jié)構(gòu)如圖3所示,HDFS分布式文件系統(tǒng)搭建在A、B、C這3個(gè)機(jī)架上。slave1與master位于機(jī)架A,slave1負(fù)責(zé)測(cè)試數(shù)據(jù)的上傳。slave2與slave3位于機(jī)架B,slave4與slave5位于機(jī)架C。其中,名稱節(jié)點(diǎn)是機(jī)器master,slave1~slave5是數(shù)據(jù)節(jié)點(diǎn)。
圖3 實(shí)驗(yàn)拓?fù)?/p>
6個(gè)測(cè)試機(jī)器的軟硬件配置和安裝環(huán)境如下:
虛擬機(jī):VMware Workstation 7.1.2 build-301548
操作系統(tǒng):32位的CentOS 5.4系統(tǒng)
Java運(yùn)行環(huán)境:JDK 1.6.0_20
分布式環(huán)境:Hadoop 0.20.203.0
CPU:2.93GHZ
內(nèi)存:1GB
網(wǎng)絡(luò)帶寬:100 Mb/s
3.2.1 可行性驗(yàn)證
在本實(shí)驗(yàn)中,分別獲取了HDFS在兩種策略下,處理不同大小的上傳數(shù)據(jù)所耗費(fèi)的時(shí)間。實(shí)驗(yàn)中的時(shí)間開銷是通過多次測(cè)試,獲取的平均值。實(shí)驗(yàn)數(shù)據(jù)通過位于機(jī)架A的slave1進(jìn)行上傳,數(shù)據(jù)大小包括:256MB,512MB,1GB,2GB,3GB。結(jié)果如圖4所示。
圖4 兩種策略的時(shí)間開銷對(duì)比
由于本實(shí)驗(yàn)采取3個(gè)副本存放數(shù)據(jù),所以在兩種策略中,第一個(gè)副本都是存放在本地(即slave1)上。如圖4所示,在測(cè)試數(shù)據(jù)為256MB時(shí),兩種策略的時(shí)間開銷基本相同,隨著測(cè)試數(shù)據(jù)量的增多,兩者時(shí)間開銷的差距逐漸增大。改進(jìn)的策略相比HDFS策略,后者在數(shù)據(jù)節(jié)點(diǎn)較少的情況下,由于隨機(jī)的選擇數(shù)據(jù)存放節(jié)點(diǎn),容易導(dǎo)致部分?jǐn)?shù)據(jù)節(jié)點(diǎn)網(wǎng)絡(luò)負(fù)載偏重,而其他數(shù)據(jù)節(jié)點(diǎn)空閑,從而出現(xiàn)數(shù)據(jù)副本在節(jié)點(diǎn)間傳輸相對(duì)偏慢的情況,而前者綜合考慮了每個(gè)數(shù)據(jù)節(jié)點(diǎn)的負(fù)載,使得集群的網(wǎng)絡(luò)帶寬等資源得到更合理的利用。由此可說明改進(jìn)的數(shù)據(jù)存放策略是可行的。
3.2.2 比較負(fù)載的均衡性
本實(shí)驗(yàn)分別比較在兩種策略下,整個(gè)集群所有數(shù)據(jù)節(jié)點(diǎn)的CPU負(fù)載、內(nèi)存負(fù)載、網(wǎng)絡(luò)負(fù)載和存儲(chǔ)空間負(fù)載的均衡性。實(shí)驗(yàn)中,slave1上傳1G的測(cè)試數(shù)據(jù),并在圖5~圖8中,列出了各個(gè)數(shù)據(jù)節(jié)點(diǎn)在兩種策略中的各項(xiàng)平均負(fù)載值的對(duì)比。圖9通過式(4)計(jì)算每個(gè)數(shù)據(jù)節(jié)點(diǎn)的平均存放成本值,從整體上,可以看出在兩種策略下,整個(gè)集群負(fù)載的均衡性。
(1)CPU負(fù)載
圖5 CPU平均負(fù)載對(duì)比
(2)內(nèi)存負(fù)載
圖6 內(nèi)存平均負(fù)載對(duì)比
(3)網(wǎng)絡(luò)負(fù)載
圖7 網(wǎng)絡(luò)平均負(fù)載對(duì)比
(4)存儲(chǔ)空間負(fù)載
圖8 存儲(chǔ)空間負(fù)載對(duì)比
(5)數(shù)據(jù)節(jié)點(diǎn)平均存放成本比較
圖9 數(shù)據(jù)節(jié)點(diǎn)平均存放成本對(duì)比
通過反復(fù)實(shí)驗(yàn),參考CPU負(fù)載、內(nèi)存負(fù)載、網(wǎng)絡(luò)負(fù)載、存儲(chǔ)空間負(fù)載的統(tǒng)計(jì)結(jié)果,根據(jù)各項(xiàng)負(fù)載因子的負(fù)載能力,波動(dòng)情況及其重要性,分別設(shè)置WCPU=0.1,WMem=0.2,WNet=0.3,WS=0.4。
由于數(shù)據(jù)節(jié)點(diǎn)slave1作為上傳測(cè)試數(shù)據(jù)的客戶端,根據(jù)兩種策略的算法,slave1會(huì)存儲(chǔ)所有數(shù)據(jù)塊的第一個(gè)副本,所以slave1的負(fù)載在所有數(shù)據(jù)節(jié)點(diǎn)中是最高的。
slave2與slave3、slave4與slave5分別在同一個(gè)機(jī)架,根據(jù)兩種策略的算法,slave2與slave3、slave4與slave5被選中的概率是相等的,所存儲(chǔ)的數(shù)據(jù)量也是相同的。因此,從圖5~圖8可以看出,同一個(gè)機(jī)架上的數(shù)據(jù)節(jié)點(diǎn)負(fù)載情況是基本一致的。
改進(jìn)后的數(shù)據(jù)存放策略相比原始的HDFS數(shù)據(jù)存放策略,由于處理實(shí)驗(yàn)數(shù)據(jù)耗費(fèi)時(shí)間相對(duì)較少,所以,如圖5~圖8所示,從整個(gè)集群來看,CPU平均負(fù)載,內(nèi)存平均負(fù)載,網(wǎng)絡(luò)平均負(fù)載,前者的數(shù)值更高。
圖9展示了slave1~slave5所有數(shù)據(jù)節(jié)點(diǎn)的平均存放成本。從圖中可以看出,slave1的平均存放成本是最高的,slave2與slave3、slave4與slave5平均存放成本是基本相同的。改進(jìn)的數(shù)據(jù)存放策略相比HDFS數(shù)據(jù)存放策略,由于綜合的考慮了每個(gè)數(shù)據(jù)節(jié)點(diǎn)的性能差異,所以在數(shù)據(jù)節(jié)點(diǎn)的選擇過程中避免了連續(xù)多次選擇性能較低的節(jié)點(diǎn),更好的利用了集群的網(wǎng)絡(luò)資源,以及各個(gè)數(shù)據(jù)節(jié)點(diǎn)的本地資源。如圖9所示,改進(jìn)后的策略,集群負(fù)載的均衡性得到了很好的優(yōu)化。
文中介紹了HDFS分布式文件系統(tǒng)數(shù)據(jù)存放的相關(guān)內(nèi)容。針對(duì)HDFS的數(shù)據(jù)存取策略沒有考慮節(jié)點(diǎn)的差異性導(dǎo)致節(jié)點(diǎn)負(fù)載不均的問題,提出了改進(jìn)的方法。該方法綜合考慮了節(jié)點(diǎn)的CPU負(fù)載,內(nèi)存負(fù)載,網(wǎng)絡(luò)負(fù)載和存儲(chǔ)空間負(fù)載,通過設(shè)置負(fù)載因子的權(quán)值提高HDFS的數(shù)據(jù)存放性能。
本文的不足是沒有對(duì)負(fù)載因子權(quán)值的選取進(jìn)行更深入的研究。權(quán)值的選取與HDFS運(yùn)行環(huán)境相關(guān),所以需要結(jié)合實(shí)際情況反復(fù)進(jìn)行實(shí)驗(yàn),才能得出更加精確的數(shù)據(jù)存放策略,進(jìn)一步提高HDFS分布式文件系統(tǒng)數(shù)據(jù)存放的性能。
[1]Wade.IDC's latest research report:“Digital Universe in 2020”[EB/OL].[2012-12-26].http://info.chinabyte.com/487/12496987.shtml(in Chinese).[Wade.IDC最新調(diào)研報(bào)告:“2020年的數(shù)字宇宙”[EB/OL].[2012-12-26].http://info.chinabyte.com/487/12496987.shtml.]
[2]CHEN Kang,ZHEN Weimin.Cloud computing:System instances and current research[J].Journal of Software,2009,20(5):1337-1348(in Chinese).[陳康,鄭緯民.云計(jì)算:系統(tǒng)實(shí)例與研究現(xiàn)狀[J].軟件學(xué)報(bào),2009,20(5):1337-1348.]
[3]Apache.Apache Hadoop[EB/OL].[2013-07-10].http://hadoop.apache.org/.
[4]Dhruba Borthakur.HDFS architecture guide[EB/OL].http://archive.cloudera.com/cdh4/cdh/4/mr1/hdfs_design.pdf,2008.
[5]Rahman R,Alhajj R,Barker K.Replica selection strategies in data grid[J].Journal of Parallel and Distributed Computing,2008,68(12):1561-1574.
[6]Tom White.Hadoop:The definitive guide[M].2nd ed.ZHOU Minqi,WANG Xiaoling,transl.Beijing:Tsinghua University press,2011(in Chinese).[Tom White.Hadoop權(quán)威指南[M].2版.周敏奇,王曉玲,譯.北京:清華大學(xué)出版社,2011.]
[7]LIN Weiwei.An improved data placement strategy of Hadoop[J].Journal of South China University of Technology(Natural Science Edition),2012,40(1):152-158(in Chinese).[林偉偉.一種改進(jìn)的Hadoop數(shù)據(jù)放置策略[J].華南理工大學(xué)學(xué)報(bào)(自然科學(xué)版),2012,40(1):152-158.]
[8]ZHOU Jingli,ZHOU Zhengda.Improved data distribution strategy for cloud storage system[J].Journal of Computer Applications,2012,32(2):309-312(in Chinese).[周敬利,周正達(dá).改進(jìn)的云存儲(chǔ)系統(tǒng)數(shù)據(jù)分布策略[J].計(jì)算機(jī)應(yīng)用,2012,32(2):309-312.]
[9]WANG Yijie,SUN Weidong,ZHOU Song,et al.Key technologies of distributed storage for cloud computing[J].Journal of Software,2012,23(4):962-986(in Chinese).[王意潔,孫偉東,周松,等.云計(jì)算環(huán)境下的分布存儲(chǔ)關(guān)鍵技術(shù)[J].軟件學(xué)報(bào),2012,23(4):962-986.]
[10]Apache.Rack aware HDFS proposal[EB/OL].https://issues.apache.org/jira/secure/attachment/12345251/,2008.