新四季網

一種基於分布式集群的數據放置方法

2023-05-28 09:27:16

一種基於分布式集群的數據放置方法
【專利摘要】本發明公開了一種基於分布式集群的數據放置方法,針對分布式集群中節點的負載情況、計算節點計算能力及大量數據移動會影響運算性能的特點,把三個因素有效的結合起來計算出數據放置的評價值,然後根據評價值來選取節點。此方法帶來的效果首先是可以實現數據放置的負載均衡,在數據讀寫時增加並行度;其次是能很好的利用節點的計算能力,根據計算能力分配相應的計算任務,減少運行時間;最後是實現良好的傳輸性能。數據被存儲在就近於計算節點可以使數據傳輸最小化,提高效率。
【專利說明】一種基於分布式集群的數據放置方法
【技術領域】
[0001]本發明涉及一種基於分布式集群的數據放置方法。
技術背景
[0002]隨著網際網路技術的不斷發展與網絡信息量的不斷劇增,能夠高效的、可靠地處理大規模數據集對於網際網路的發展至關重要。MapReduce是易於編寫的並行編程框架。海量的數據可以通過Hadoop集群中的MapReduce框架處理,通過並行性來提高效率。但由於MapReduce中運算的輸入數據通常是大量的數據,若數據分布在不同機架上會導致大量的數據移動,從而影響運算的性能。所以數據的放置應就近於計算節點,減少因大量數據移動帶來的性能損失。因此,分布式集群的數據放置方法是非常重要的。
[0003]目前對於Hadoop集群上的HDFS選擇存放數據的方法是機架感知方法。該方法是將數據塊的多個副本放置在本地機架與隨機的遠端機架的節點上。用戶發起請求時,首先從本地操作數據,如果本地節點的數據因某種原因失效,系統則通過遠端節點的副本進行數據恢復。但此時可能會由於遠端節點距離本地節點太遠而增加不必要的數據恢復時間,同時隨機選取節點也不能保證節點間數據存儲的平衡。由於系統中經常發生節點失效,隨機的選取遠端節點會造成數據恢復中不必要的性能損失,導致整個存儲系統性能下降。然而,遠程數據副本的網絡距離和各節點數據負載及各節點的計算能力都會影響性能。基於上述原因,提出一種基於分布式集群的數據放置方法。該方法根據數據負載、節點計算能力及節點網絡距離計算Datanode的數據放置評價值,根據此值選取最佳的放置節點,從而實現了數據放置的負載均衡、充分利用節點計算能力的同時保證數據傳輸性能。

【發明內容】

[0004]本發明要解決的技術問題是:針對集群中節點數據的負載情況、節點的計算能力、及數據到運算節點的距離三個因素來計算每個節點的數據放置評價值,根據放置評價值選擇最佳的節點。
[0005]在本方法中需要計算節點的負載情況,計算能力以及數據到運算節點的距離。計算每個節點的三種要素需要複雜的計算,因此,隨機選取每個機架中的一定數目的節點,根據這些節點計算數據到運算節點的距離、當前存放的數據塊、及該節點的計算能力。通過三個要素的綜合計算給出這些節點的數據放置評價值,然後根據評價值列表中選擇評價值最大的作為最優的放置數據的節點。該節點的選取既能實現數據放置的負載均衡,也能充分利用節點的計算能力,同時也實現了良好的數據傳輸。
[0006]本發明所採用的技術方案為:
一種基於分布式集群的數據放置方法,針對分布式集群中節點的負載情況、計算節點計算能力及大量數據移動會影響運算性能的特點,把三個因素有效的結合起來計算出數據放置的評價值,然後根據評價值來選取節點,這樣既可以保證了數據的負載均衡,防止有的節點空閒浪費資源或者有的節點負載過重降低運行速度的現象發生,又可以保證數據選取的傳輸效率,提升存儲的性能。
[0007]其中:分布式集群中節點的負載情況是指該節點能放置數據的能力,它反比於Datanode存放的數據塊數,根據該節點中存放的數據塊數決定的,通過獲取特定Datanode上已經存放的數據塊數量來表示該Datanode上當前的負載。當Datanode上數據塊數越多時,負載較重,該節點上可放置數據的能力就越低,因此,可放置數據的負載係數就越小。
[0008]該過程根據數據塊數來決定Datanode的負載能力。作為數據放置評價值中的參考因素之一,可以根據應用適當的調整該係數來達到負載均衡的目的。
[0009]計算節點計算能力是根據硬體特性來評估的,如根據CPU個數、內存大小,磁碟大小,磁碟轉速等來評估節點的計算能力。硬體特性好的節點比硬體特性差的節點處理任務快,花費時間短,同樣的時間內可以處理更多的任務,減少計算時間。因此,計算能力強的節點可防止數據的係數就越大。
[0010]存放多個數據副本的存儲節點的選取要將副本放置於不同的機架上,而且選取距離當前節點最近的機架,可以保證數據傳輸的效率,提升存儲時的性能。在當前機架發生故障的情況下仍然可以進行自動的數據恢復,同時保證效率。
[0011]計算節點的計算能力和數據傳輸性能的比重來作為數據放置評價值中的參考因素。可以通過綜合考慮,調整相應的係數,達到應用的需求,使得任務處理的速度更快,提高效率。
[0012]當用戶提交數據存儲的請求時,首先隨機選取一定數目的不同機架上的不同數據節點,然後獲取各個節點中當前存放的數據數量、各個節點到當前節點的距離信息及相應的計算能力,結合上述三個方面計算出每個節點的數據放置評價值,依據此評價值從高到低選取數據存放節點。
[0013]所述數據放置方法的評價函數是根據數據負載情況、計算能力、相應距離信息綜合計算得到的,具體的評價方法是E = A*a+ B*b + Oc,其中A、B、C是相關係數比重,其取值範圍是[O, I],且A+B+C=l。其中a為Datanode的負載係數,反比於該節點當前存放的數據塊數;b為節點計算能力的係數,根據計算能力數組取得相應的值;c為距離係數,反比於該節點中的網絡距離。網絡距離是根據樹形拓撲結構計算的,在該拓撲結構中,葉子節點是Datanode,內部節點表示路由器、交換機等網絡設備。在網絡拓撲中,任意兩個節點的距離是兩個節點到最近的公共祖先節點的距離和。上述的A、B、C可以根據具體的應用需求指定相應的值。
[0014]所述方法流程為:根據用戶提交的數據塊請求,循環的選取節點數量直到選取到一定數量為止,然後根據每個選取的節點測試是否在節點列表Nodelist中,如果節點不在候選節點集Nodelist中且與Nodelist中的任一節點均不在同一機架中,則將該節點加入到Nodelist中;其中選取的數量應小於或等於機架的數量;再次將循環在Nodelist列表中的節點,對每個節點根據數據放置的評價值函數計算其相應的評價值,若該節點計算完數據放置評價值,則將該節點標記為已評價,並將該E值加入評價列表Elist中;最後對每個Elist中的記錄值進行排序,取最高的N個E值對應的節點為候選節點。如果在計算節點中處理用戶請求,同時各個機架中的負載相同、計算能力也都相同過的情況下,應該會在離計算節點最近的機架中獲得更多數據塊的副本放置在其上。
[0015]為了保證數據存儲的本地性和數據的安全性,所述方法實現是在Hadoop中實現的抽象類中做更改,抽象類中提供了數據塊副本放置的相關方法,每當有數據塊存儲請求提交時就會被調用。
[0016]在該抽象類中主要有chooseNode函數,直接負責存放選取的Datanode節點,
為了獲取Datanode節點的網絡距離,在該類中增加getDistance函數,得到兩個節點間的網絡距離。通過獲取節點中計算能力數據獲取相應的計算能力係數。
[0017]在該抽象類中增加numBlock函數以獲取節點中存放的數據塊數量值,用於表示該節點中的當前負載情況。
[0018]通過這三個因素計算數據放置評價函數得到相應的數據放置評價值,選取評價值中最大的Datanode節點作為數據放置的節點,即選擇了綜合權衡數據負載、計算能力、網絡距離較優的數據放置節點,從而優化數據塊的存放。
[0019]本發明的有益效果為:
本發明採用的是基於分布式集群的數據放置方法。根據集群中節點數據的負載情況、節點的計算能力、及數據到運算節點的距離三個因素來計算每個節點的數據放置評價值,根據放置評價值選擇最佳的節點。此方法帶來的效果首先是可以實現數據放置的負載均衡,在數據讀寫時增加並行度;其次是能很好的利用節點的計算能力,根據計算能力分配相應的計算任務,減少運行時間;最後是實現良好的傳輸性能。數據被存儲在就近於計算節點可以使數據傳輸最小化,提高效率。
【專利附圖】

【附圖說明】
[0020]圖1為分布式集群的數據放置方法流程圖;
圖2為數據放置評價模塊的流程圖;
圖3為三因素平衡時遠端機架上的數據塊分布情況圖;
圖4為注重負載和距離時遠端機架上的數據塊分布情況圖;
圖5為注重計算能力和距離時遠端機架上的數據塊分布情況圖;
其中:圖3-5中每組機架直方圖中從左到右分別代表:DataNodel,DataNode2,DataNode3, DataNode4, DataNode5。
【具體實施方式】
[0021 ] 下面參照附圖,對本發明的內容以一個具體實例來描述實現基於分布式集群的數據放置方法的過程。
[0022]首先部署分布式集群環境,在作業系統是centos6.3上按照官方文檔安裝hadoop組件。然後將hdfs、mapreduce服務開啟。機架I中節點具有普通的計算能力,機架2和機架3的節點具有快速的計算能力。每個機架中都有5個Datanode節點。分布式集群的數據放置方法流程圖如圖1所示,當用戶提交數據存儲請求時,首先選取不同機架中的節點,然後判斷獲取的節點是否達到選中的固定值,如果符合條件就進入到數據放置評價模塊中,否則繼續獲取符合條件的節點。在進入到數據放置評價模塊中,首先要根據在網絡拓撲中計算出當前節點的距離信息、各個節點中當前存放的數據副本的數量及節點的計算能力,具體流程如圖2所示。然後結合這三方面的信息,根據數據放置的評價值選取評價值高的節點作為數據存放節點。在實際環境中,計算節點機架X距離機架I的網絡距離是5 ;距離機架2的網絡距離是I ;距離機架3的網絡距離是3 ;機架I距離機架2的網絡距離是4 ;機架I距離機架3的網絡距離是2 ;機架2距離機架3的網絡距離是6。根據計算能力機架2和機架3的計算能力強,因此給的係數較高,機架X和機架I的計算能力係數是1,機架2和機架3的計算能力是2。
[0023]本發明所述方法是在hadoop源碼中找到相應的數據塊副本放置的相應類,在數據塊存儲請求提交時就會調用相應類中的方法,主要是存放數據時選取DataNode節點的方法,根據集群中節點數據的負載情況、節點的計算能力、及數據到運算節點的距離三個因素重寫chooseNode方法,該方法中包含getDistance函數,得到兩個節點間的網絡距離。通過獲取節點中計算能力數據獲取相應的計算能力係數。在numBlock函數中獲取節點中存放的數據塊數量值,用於表示該節點中的當前負載情況。在calculateCapacity函數中獲取節點計算能力值,根據每個選取的DataNode節點計算數據放置的評價值E = A*a+ B*b +C*c,其中A、B、C是相關係數比重,其取值範圍是[0,1],且A+B+C=l。其中a為Datanode的負載係數,反比於該節點當前存放的數據塊數,在numBlock函數中獲取;b為節點計算能力的係數,根據計算能力數組取得相應的值,在calculateCapacity函數中獲取;c為距離係數,反比於該節點中的網絡距離,網絡距離在getDistance函數中獲取。
[0024]採用基於分布式集群的數據放置方法,可以將數據負載、節點計算能力、數據傳輸性很好的結合起來。在有1500塊大小相同的數據塊提交時,在副本存放在非本地機架上時,默認考慮均衡三個因素,他們係數分別是A=0.3,B=0.4,C=0.3時,可得到圖3中的數據分布情況,在此時機架2中節點計算能力強,並且網絡距離最近,因此在附圖3中很好的體現出來。若偏重於負載和網絡距離,可將A、B、C參數設置如下:A=0.45,B=0.1,C=0.45,可得到圖4中的數據分布情況,此時網絡距離最近的機架2仍讓具有較多的數據,同時機架中的數據負載都很均勻。若考慮計算能力和網絡距離時,可將A、B、C參數設置如下:A=0.1,B=0.45,C=0.45,可得到圖5中的數據分布情況,此時可以利用節點的計算能力,將任務分配分配到計算能力強的節點上,減少運行時間的同時實現良好的傳輸性能。據此,可以根據不同的應用注重的不同結果來調整相應的係數,如果只注重負載情況不注重計算時間可以將負載係數調高,若注重計算時間可將節點計算能力係數調高,若應用中由於網絡傳輸導致性能不好,則可以將網絡距離係數調高。此方法可以根據應用的需求達到很好的性能及效果。
【權利要求】
1.一種基於分布式集群的數據放置方法,其特徵在於:針對分布式集群中節點的負載情況、計算節點計算能力及大量數據移動會影響運算性能的特點,把三個因素有效的結合起來計算出數據放置的評價值,然後根據評價值來選取節點,其中: 分布式集群中節點的負載情況是指該節點能放置數據的能力,它反比於Datanode存放的數據塊數,根據該節點中存放的數據塊數決定的,通過獲取特定Datanode上已經存放的數據塊數量來表示該Datanode上當前的負載; 計算節點計算能力是根據硬體特性來評估的; 存放多個數據副本的存儲節點的選取要將副本放置於不同的機架上,而且選取距離當前節點最近的機架。
2.根據權利要求1所述的一種基於分布式集群的數據放置方法,其特徵在於:所述數據放置方法的評價函數是根據數據負載情況、計算能力、相應距離信息綜合計算得到的,具體的評價方法是E = A*a+ B*b + Oc,其中A、B、C是相關係數比重,其取值範圍是[0,I],且A+B+C=l,其中a為Datanode的負載係數,反比於該節點當前存放的數據塊數;b為節點計算能力的係數,根據計算能力數組取得相應的值;c為距離係數,反比於該節點中的網絡距離,網絡距離是根據樹形拓撲結構計算的,在網絡拓撲中,任意兩個節點的距離是兩個節點到最近的公共祖先節點的距離和。
3.根據權利要求1或2所述的一種基於分布式集群的數據放置方法,其特徵在於,所述方法流程為:根據用戶提交的數據塊請求,循環的選取節點數量直到選取到一定數量為止,然後根據每個選取的節點測試是否在節點列表Nodelist中,如果節點不在候選節點集Nodelist中且與Nodelist中的任一節點均不在同一機架中,則將該節點加入到Nodelist中;其中選取的數量應小於或等於機架的數量;再次將循環在Nodelist列表中的節點,對每個節點根據數據放置的評價值函數計算其相應的評價值,若該節點計算完數據放置評價值,則將該節點標記為已評價,並將該E值加入評價列表Elist中;最後對每個Elist中的記錄值進行排序,取最高的N個E值對應的節點為候選節點。
4.根據權利要求3所述的一種基於分布式集群的數據放置方法,其特徵在於:為了保證數據存儲的本地性和數據的安全性,所述方法實現是在Hadoop中實現的抽象類中做更改,抽象類中提供了數據塊副本放置的相關方法,每當有數據塊存儲請求提交時就會被調用。
5.根據權利要求4所述的一種基於分布式集群的數據放置方法,其特徵在於:在該抽象類中主要有chooseNode函數,直接負責存放選取的Datanode節點。
6.根據權利要求5所述的一種基於分布式集群的數據放置方法,其特徵在於:為了獲取Datanode節點的網絡距離,在該抽象類中增加getDistance函數,得到兩個節點間的網絡距離。
7.根據權利要求6所述的一種基於分布式集群的數據放置方法,其特徵在於:在該抽象類中增加numBlock函數以獲取節點中存放的數據塊數量值,用於表示該節點中的當前負載情況。
【文檔編號】H04L29/08GK103595805SQ201310589416
【公開日】2014年2月19日 申請日期:2013年11月22日 優先權日:2013年11月22日
【發明者】郭美思, 王秀娟 申請人:浪潮電子信息產業股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀