一種分布式系統(tǒng)及根據(jù)該系統(tǒng)進行逐步擴容的方法
【專利摘要】本發(fā)明提供一種逐步進行擴容的分布式系統(tǒng)及利用該系統(tǒng)進行逐步擴容的方法,該系統(tǒng)包括ETL寫入數(shù)據(jù)模塊、緩沖模塊、數(shù)據(jù)重分布模塊、數(shù)據(jù)索引分布表形成模塊、調(diào)度模塊以及多個數(shù)據(jù)庫,所述多個數(shù)據(jù)庫承載在多個服務(wù)器上,所述緩沖模塊為ETL移動硬盤,所述緩沖模塊以及多個數(shù)據(jù)庫與所述ETL寫入數(shù)據(jù)模塊通訊連接;所述調(diào)度模塊包括暫停單元、啟動單元以及添加任務(wù)單元。解決了擴容后老節(jié)點不能使用的問題,從而降低了服務(wù)器的成本,增加了收益。一方面能夠保證系統(tǒng)在白天的工作時間仍能夠?qū)ν馓峁┫到y(tǒng)服務(wù),另一方面保證了新舊節(jié)點都可以運行。
【專利說明】一種分布式系統(tǒng)及根據(jù)該系統(tǒng)進行逐步擴容的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種系統(tǒng)擴容方法,具體的涉及一種分布式系統(tǒng)及根據(jù)該系統(tǒng)進行逐步擴容的方法。
【背景技術(shù)】
[0002]大數(shù)據(jù)處理系統(tǒng)中,每個節(jié)點存儲的數(shù)據(jù)量都很大,比如一個硬盤的實際數(shù)據(jù)量
2.8T。當(dāng)系統(tǒng)處理能力不足,需要增加數(shù)據(jù)節(jié)點來提升處理能力的時候,如何將原有系統(tǒng)的數(shù)據(jù)進行重分布,部署到所有數(shù)據(jù)節(jié)點(老節(jié)點+新節(jié)點),是一個比較難的問題。目前大部分分布式數(shù)據(jù)系統(tǒng)都采用hash方式分布數(shù)據(jù),當(dāng)增加節(jié)點時,由系統(tǒng)使用hash方式進行重分布。但由于數(shù)據(jù)量巨大,往往24小時也無法完成,而大部分系統(tǒng)工作時間還需要對外提供服務(wù),這個矛盾需要解決。某些產(chǎn)品,比如EMC的greenplum系統(tǒng),在廣東移動信令采集分析系統(tǒng)中,當(dāng)節(jié)點要從10個節(jié)點擴充到50個節(jié)點時,沒有辦法做到這一點,只好使用新舊節(jié)點并行導(dǎo)入數(shù)據(jù),最后的新系統(tǒng)只有40個節(jié)點,而不是50個節(jié)點。這個問題在從50個到100個的時候會更嚴(yán)重。
【發(fā)明內(nèi)容】
[0003]本發(fā)明為解決上述提到的在數(shù)據(jù)處理系統(tǒng)中進行重新分布擴容存在的缺點,提供一種分布式系統(tǒng)以及根據(jù)該分布式系統(tǒng)進行逐步擴容法,能夠逐步對系統(tǒng)進行擴容,一方面能夠保證系統(tǒng)在白天的工作時間仍能夠?qū)ν馓峁┫到y(tǒng)服務(wù),另一方面保證了新舊節(jié)點都可以在系統(tǒng)中運行。
[0004]本發(fā)明提供一種逐步進行擴容的分布式系統(tǒng),其包括ETL寫入數(shù)據(jù)模塊、緩沖模塊、數(shù)據(jù)重分布模塊、數(shù)據(jù)索引分布表形成模塊、調(diào)度模塊以及多個數(shù)據(jù)庫,所述多個數(shù)據(jù)庫承載在多個服務(wù)器上,所述緩沖模塊為ETL移動硬盤,所述緩沖模塊以及多個數(shù)據(jù)庫與所述ETL寫入數(shù)據(jù)模塊通訊連接;所述調(diào)度模塊包括暫停單元、啟動單元以及添加任務(wù)單
J Li ο
[0005]具體的,一種根據(jù)上述分布式系統(tǒng)進行逐步擴容的方法,其包括以下步驟:
[0006]S1:在分布式系統(tǒng)的多個新的數(shù)據(jù)庫產(chǎn)生后,根據(jù)多個新的新數(shù)據(jù)庫的數(shù)量,數(shù)據(jù)索引分布表形成模塊,生成新的數(shù)據(jù)索引分布表;
[0007]S2:所述暫停單元暫停ETL寫入數(shù)據(jù)模塊寫入數(shù)據(jù)的操作,將文件保存至緩沖模塊,所述添加任務(wù)單元將ETL寫入數(shù)據(jù)的任務(wù)添加入任務(wù)隊列;
[0008]S3:所述啟動單元啟動數(shù)據(jù)重分布模塊,將數(shù)據(jù)按新的數(shù)據(jù)索引分布表進行分布;
[0009]S4:重新啟動ETL寫入數(shù)據(jù)模塊,加速處理隊列中ETL寫入數(shù)據(jù)的任務(wù);直至ETL寫入數(shù)據(jù)完成后,重新啟動在線查詢?nèi)蝿?wù)。
[0010]優(yōu)選的,數(shù)據(jù)索引分布表形成模塊根據(jù)新數(shù)據(jù)庫的數(shù)量,通過業(yè)務(wù)規(guī)則生成新的數(shù)據(jù)索引分布表。[0011]優(yōu)選的,所述新的數(shù)據(jù)索引分布表將舊節(jié)點中的數(shù)據(jù)的30% -60%分布至新的節(jié)點中。
[0012]優(yōu)選的,所述新的數(shù)據(jù)索引分布表將舊節(jié)點中的數(shù)據(jù)的50%分布至新的節(jié)點中。
[0013]優(yōu)選的,所述添加任務(wù)單元包括選擇單元以及命令單元,所述選擇單元能夠設(shè)定ETL寫入數(shù)據(jù)的任務(wù)的優(yōu)先級,所述命令單元根據(jù)任務(wù)的優(yōu)先級選擇任務(wù)執(zhí)行的先后命令。
[0014]優(yōu)選的,ETL寫入數(shù)據(jù)的任務(wù)的優(yōu)先級分為最高優(yōu)先級、次優(yōu)先級以及普通優(yōu)先級。
[0015]本發(fā)明的優(yōu)點如下所述:本發(fā)明采用分天逐步擴容法對系統(tǒng)進行擴容,擴容后老節(jié)點以及新節(jié)點都能夠使用,解決了擴容后老節(jié)點不能使用的問題,從而降低了服務(wù)器的成本,增加了收益。大數(shù)據(jù)服務(wù)器的成本一般在5-15萬元左右,按10萬I臺計算,當(dāng)有20個老節(jié)點能被利用時,就可以節(jié)約200萬元。并且,能夠逐步對系統(tǒng)進行擴容,一方面能夠保證系統(tǒng)在白天的工作時間仍能夠?qū)ν馓峁┫到y(tǒng)服務(wù),另一方面保證了新舊節(jié)點都可以在系統(tǒng)中運打。
【專利附圖】
【附圖說明】
[0016]圖1為本發(fā)明提供的逐步進行擴容的分布式系統(tǒng)的結(jié)構(gòu)示意圖;
[0017]圖2為本發(fā)明的調(diào)度模塊的結(jié)構(gòu)示意圖;
[0018]圖3為本發(fā)明的分布式系統(tǒng)逐步擴容法中擴容時的示意圖。
【具體實施方式】
[0019]首先,對本發(fā)明中涉及到的一些術(shù)語進行解釋說明:
[0020]數(shù)據(jù)庫是一個面向主題的、集成的、不可更新的、隨時間不斷變化的數(shù)據(jù)集合,它用于支持企業(yè)或組織的決策分析處理。數(shù)據(jù)庫通常用于存儲企業(yè)的歷史數(shù)據(jù),并通過ETL過程,產(chǎn)生企業(yè)報表等。
[0021]ETL是指將分布的、異構(gòu)數(shù)據(jù)源中的數(shù)據(jù)(例如關(guān)系數(shù)據(jù)、平面數(shù)據(jù)文件)等抽取到臨時中間層后進行清洗、轉(zhuǎn)換、集成,最后加載到數(shù)據(jù)庫中,成為企業(yè)報表、聯(lián)機分析處理、數(shù)據(jù)挖掘的基礎(chǔ)。ETL任務(wù)一般在夜間運行,處理企業(yè)的大批量數(shù)據(jù),形成關(guān)鍵運營指標(biāo)(KPI, Key Performance Indication)裝載到報表中。
[0022]數(shù)據(jù)源是指ETL運算某個任務(wù)所需要的源頭數(shù)據(jù),有時是生產(chǎn)數(shù)據(jù)庫的數(shù)據(jù),有時是另外一個ETL程序所產(chǎn)生的數(shù)據(jù)。
[0023]生產(chǎn)數(shù)據(jù)庫是企業(yè)的日間營業(yè)活動所使用的數(shù)據(jù)庫,是數(shù)據(jù)庫最大的數(shù)據(jù)源。
[0024]下面結(jié)合附圖以及具體實施例對本發(fā)明做進一步解釋。
[0025]如圖1所示,一種逐步進行擴容的分布式系統(tǒng),其包括ETL寫入數(shù)據(jù)模塊1、緩沖模塊2、數(shù)據(jù)重分布模塊3、數(shù)據(jù)索引分布表形成模塊4、調(diào)度模塊5以及多個數(shù)據(jù)庫6,多個數(shù)據(jù)庫6承載在多個服務(wù)器上,緩沖模塊2為ETL移動硬盤,緩沖模塊2以及多個數(shù)據(jù)庫6與ETL寫入數(shù)據(jù)模塊I通訊連接;如圖2所示,調(diào)度模塊5包括暫停單元50、啟動單元51以及添加任務(wù)單元52。
[0026]如圖3所示,一種根據(jù)上述的分布式系統(tǒng)進行逐步擴容的方法,其包括以下步驟:
[0027]S1:在分布式系統(tǒng)的新的數(shù)據(jù)庫(以下也稱為節(jié)點)產(chǎn)生后,數(shù)據(jù)索引分布表形成模塊4根據(jù)新數(shù)據(jù)庫的數(shù)量,生成新的數(shù)據(jù)索引分布表;
[0028]S2:暫停單元50暫停ETL寫入數(shù)據(jù)模塊I寫入數(shù)據(jù)的操作,將文件保存至緩沖模塊,添加任務(wù)單元52將ETL寫入數(shù)據(jù)的任務(wù)添加入任務(wù)隊列;
[0029]S3:啟動單元51啟動數(shù)據(jù)重分布模塊3,將數(shù)據(jù)按新的數(shù)據(jù)索引分布表進行分布;ETL寫入數(shù)據(jù)模塊I找的新的節(jié)點位置,將數(shù)據(jù)存入;
[0030]S4:啟動單元51重新啟動ETL寫入數(shù)據(jù)模塊1,加速處理隊列中ETL寫入數(shù)據(jù)的任務(wù);
[0031]S5:ETL寫入數(shù)據(jù)完成后,啟動單元51重新啟動在線查詢?nèi)蝿?wù)。
[0032]優(yōu)選的,數(shù)據(jù)索引分布表形成模塊4根據(jù)新數(shù)據(jù)庫的數(shù)量,通過業(yè)務(wù)規(guī)則生成新的數(shù)據(jù)索引分布表。
[0033]優(yōu)選的,新的數(shù)據(jù)索引分布表將舊節(jié)點中的數(shù)據(jù)的30% -60%分布至新的節(jié)點中。在本實施例中,新的數(shù)據(jù)索引分布表將舊節(jié)點中的數(shù)據(jù)的50%分布至新的節(jié)點中。如下表所示:
[0034]在分布式系統(tǒng)中,數(shù)據(jù)的分布往往是按hash值或者業(yè)務(wù)規(guī)則進行分布的。按hash值分布主要是通過數(shù)學(xué)算法實現(xiàn),擴容的時候無法人為控制,導(dǎo)致擴容后老節(jié)點無法繼續(xù)使用,增加了數(shù)據(jù)庫的成本問題。在本發(fā)明中,按照業(yè)務(wù)規(guī)則生成新的數(shù)據(jù)索引分布表進行分布,在擴容時容易控制。
[0035]舉例如下:將新的數(shù)據(jù)索引分布表將舊節(jié)點中的數(shù)據(jù)的50%分布至新的節(jié)點中。
[0036]假設(shè)數(shù)據(jù)按號碼后兩位進行數(shù)據(jù)分布,擴容前分布關(guān)系如下:
[0037]
【權(quán)利要求】
1.一種逐步進行擴容的分布式系統(tǒng),其特征在于:其包括ETL寫入數(shù)據(jù)模塊、緩沖模塊、數(shù)據(jù)重分布模塊、數(shù)據(jù)索引分布表形成模塊、調(diào)度模塊以及多個數(shù)據(jù)庫,所述多個數(shù)據(jù)庫承載在多個服務(wù)器上,所述緩沖模塊為ETL移動硬盤,所述緩沖模塊以及多個數(shù)據(jù)庫與所述ETL寫入數(shù)據(jù)模塊通訊連接;所述調(diào)度模塊包括暫停單元、啟動單元以及添加任務(wù)單J Li ο
2.一種分布式系統(tǒng)進行逐步擴容的方法,其特征在于:其包括以下步驟: 51:在分布式系統(tǒng)的多個新的數(shù)據(jù)庫產(chǎn)生后,根據(jù)多個新的新數(shù)據(jù)庫的數(shù)量,數(shù)據(jù)索引分布表形成模塊,生成新的數(shù)據(jù)索引分布表; 52:所述暫停單元暫停ETL寫入數(shù)據(jù)模塊寫入數(shù)據(jù)的操作,將文件保存至緩沖模塊,所述添加任務(wù)單元將ETL寫入數(shù)據(jù)的任務(wù)添加入任務(wù)隊列; 53:所述啟動單元啟動數(shù)據(jù)重分布模塊,將數(shù)據(jù)按新的數(shù)據(jù)索引分布表進行分布; 54:重新啟動ETL寫入數(shù)據(jù)模塊,加速處理隊列中ETL寫入數(shù)據(jù)的任務(wù);直至ETL寫入數(shù)據(jù)完成后,啟動在線查詢?nèi)蝿?wù)。
3.根據(jù)權(quán)利要求2所述的逐步擴容的方法,其特征在于:數(shù)據(jù)索引分布表形成模塊根據(jù)新數(shù)據(jù)庫的數(shù)量,通過業(yè)務(wù)規(guī)則生成新的數(shù)據(jù)索引分布表。
4.根據(jù)權(quán)利要求3所述的逐步擴容的方法,其特征在于:所述新的數(shù)據(jù)索引分布表將舊節(jié)點中的數(shù)據(jù)的30% -60%分布至新的節(jié)點中。
5.根據(jù)權(quán)利要求4所述的逐步擴容的方法,其特征在于:所述新的數(shù)據(jù)索引分布表將舊節(jié)點中的數(shù)據(jù)的50%分布至新的節(jié)點中。
6.根據(jù)權(quán)利要求2所述的逐步擴容的方法,其特征在于:所述添加任務(wù)單元包括選擇單元以及命令單元,所述選擇單元能夠設(shè)定ETL寫入數(shù)據(jù)的任務(wù)的優(yōu)先級,所述命令單元根據(jù)任務(wù)的優(yōu)先級選擇任務(wù)執(zhí)行的先后命令。
7.根據(jù)權(quán)利要求6所述的逐步擴容的方法,其特征在于:ETL寫入數(shù)據(jù)的任務(wù)的優(yōu)先級分為最高優(yōu)先級、次優(yōu)先級以及普通優(yōu)先級。
【文檔編號】G06F17/30GK103944964SQ201410116840
【公開日】2014年7月23日 申請日期:2014年3月27日 優(yōu)先權(quán)日:2014年3月27日
【發(fā)明者】李曉華 申請人:上海云數(shù)信息科技有限公司