本發(fā)明涉及一種分布式數(shù)據(jù)處理方法,尤其是一種針對大數(shù)據(jù)的分布式數(shù)據(jù)處理方法。
背景技術:
數(shù)據(jù)處理一般分為集中式數(shù)據(jù)處理和分布式數(shù)據(jù)處理。集中式數(shù)據(jù)處理存在的最大問題是數(shù)據(jù)處理速度較慢,同時,對計算機的性能要求也比較高。
由于個人計算機的性能得到極大的提高及其使用的普及,使處理能力分布到網(wǎng)絡上的所有計算機成為可能。分布式計算是和集中式計算相對立的概念,分布式計算的數(shù)據(jù)可以分布在很大區(qū)域。
分布式網(wǎng)絡中,由于每臺計算機都能夠處理數(shù)據(jù),所以不要求計算機功能十分強大,其價格也就不必過于昂貴。這種類型的計算機可以適應用戶的各種需要,同時允許他們共享網(wǎng)絡的數(shù)據(jù)、資源和服務。在分布式網(wǎng)絡中使用的計算機既能夠作為獨立的系統(tǒng)使用,也可以把它們連接在一起得到更強的網(wǎng)絡功能。但是,目前的分布式數(shù)據(jù)處理存在這樣一個問題,由于多臺子計算機在數(shù)據(jù)處理時,當子計算機完成任務后,其則停止工作,而其他未完成任務的子計算機還有繼續(xù)工作,這樣造成了資源的浪費。
技術實現(xiàn)要素:
本發(fā)明的目的是提供一種計算速度快、可充分利用子計算機的分布式數(shù)據(jù)處理方法。
根據(jù)本發(fā)明的一個方面,提供一種分布式數(shù)據(jù)處理方法,其包括:
s1,主計算機根據(jù)子計算機的數(shù)量把數(shù)據(jù)分成相應的段數(shù),每臺子計算機分配一個子數(shù)據(jù);
s2,子計算機收到主計算機發(fā)來的子數(shù)據(jù),每臺計算機獨立求解分配到的子數(shù)據(jù);
s3,子計算機內(nèi)部自我調(diào)節(jié),先完成任務的子計算機分擔未完成任務的子計算機任務;
s4,把計算結果發(fā)給主計算機;
s5,主計算機接收每個子計算機的計算結果;
s6,主計算機將結果匯總輸出。
優(yōu)選地,根據(jù)所述子計算機的計算能力給所述子計算機設置不同的權重,所述主計算機根據(jù)每臺子計算機的權重給子計算機分配相應的子數(shù)據(jù),所有子計算機的權重加在一起為1。
優(yōu)選地,給子計算機按順序編號,先完成任務的子計算機優(yōu)先分擔其后面的最靠近的未完成任務的子計算機任務。
優(yōu)選地,所述先完成任務的子計算機分擔未完成任務的子計算機剩余任務的50%。
優(yōu)選地,所述子計算機和主計算機位于同一個局域網(wǎng)內(nèi)或者同一個廣域網(wǎng)內(nèi)。
優(yōu)選地,所述子計算機位于同一個局域網(wǎng)內(nèi),所述子計算機和主計算機位于同一個廣域網(wǎng)內(nèi)。
優(yōu)選地,所述子數(shù)據(jù)存儲在對應的子計算機內(nèi)。
優(yōu)選地,所述主計算機存儲每個子計算機的子數(shù)據(jù),當子計算機停止工作時,主計算機將該子計算機的數(shù)據(jù)分給其他正常工作的子計算機。
優(yōu)選地,所述主計算機根據(jù)其他正常工作的子計算機的權重來給該些子計算機分配停止工作的子計算機的子數(shù)據(jù)。
優(yōu)選地,所述主計算機實時監(jiān)控并實時存儲每個子計算機的剩余子數(shù)據(jù),當監(jiān)控到子計算機的子數(shù)據(jù)計算完時,主計算機將存儲的未完成計算的子計算機的子數(shù)據(jù)的一部分分配給完成計算的子計算機。
本發(fā)明提供的分布式數(shù)據(jù)處理方法通過子計算機內(nèi)部自我調(diào)節(jié),先完成任務的子計算機分擔未完成任務的子計算機任務,以此來提供數(shù)據(jù)的處理速度。
附圖說明
圖1為本發(fā)明的分布式數(shù)據(jù)處理方法的流程圖。
具體實施方式
現(xiàn)在將詳細參考附圖描述本發(fā)明的實施例。
參見圖1所示,圖1示出一種分布式數(shù)據(jù)處理方法,其包括:
s1,主計算機根據(jù)子計算機的數(shù)量把數(shù)據(jù)分成相應的段數(shù),每臺子計算機分配一個子數(shù)據(jù)。圖1中僅示出了一臺子計算機。本領域的技術人員很容易知道,在實際應用中,一般是有多臺子計算機。
s2,子計算機收到主計算機發(fā)來的子數(shù)據(jù),每臺計算機獨立求解分配到的子數(shù)據(jù)。優(yōu)選的,根據(jù)所述子計算機的計算能力給所述子計算機設置不同的權重,所述主計算機根據(jù)每臺子計算機的權重給子計算機分配相應的子數(shù)據(jù),所有子計算機的權重加在一起為1。比如有5臺子計算機a、b、c、d、e,假設子計算機的計算能力如下a>b>c>d>e,a計算機的計算能力是b計算機能力的p1倍,b計算機的計算能力是c計算機能力的p2倍,c計算機的計算能力是d計算機的p3倍,d計算機的計算能力是e計算機能力的p4倍,e計算機的計算能力是。則a計算機的權重為x1=p1/(p1+p2+p3+p4+1),b計算機的權重為x2=p2/(p1+p2+p3+p4+1),c計算機的權重為x3=p3/(p1+p2+p3+p4+1),d計算機的權重為x4=p4/(p1+p2+p3+p4+1),e計算機的權重為x5=1/(p1+p2+p3+p4+1)。且x1+x2+x3+x4+x5=1。
s3,子計算機內(nèi)部自我調(diào)節(jié),先完成任務的子計算機分擔未完成任務的子計算機任務??梢酝ㄟ^如下方式來進行此步驟。給子計算機按順序編號,先完成任務的子計算機優(yōu)先分擔其后面的最靠近的未完成任務的子計算機任務。所述先完成任務的子計算機分擔未完成任務的子計算機剩余任務的50%。在其它實施方式中,也可以讓先完成任務的子計算機分擔未完成任務的子計算機剩余任務的其它比例。
s4,把計算結果發(fā)給主計算機。
s5,主計算機接收每個子計算機的計算結果。
s6,主計算機將結果匯總輸出。
所述子計算機和主計算機位于同一個局域網(wǎng)內(nèi)或者同一個廣域網(wǎng)內(nèi)。
所述子計算機位于同一個局域網(wǎng)內(nèi),所述子計算機和主計算機位于同一個廣域網(wǎng)內(nèi)。
為了便于計算,所述子數(shù)據(jù)可存儲在對應的子計算機內(nèi)。
為了防止子計算機在計算時因停止工作而影響計算結果,所述主計算機存儲每個子計算機的子數(shù)據(jù)。當子計算機停止工作時,主計算機將該子計算機的子數(shù)據(jù)分給其他正常工作的子計算機。
所述主計算機根據(jù)其他正常工作的子計算機的權重來給該些子計算機分配停止工作的子計算機的子數(shù)據(jù)。該權重可根據(jù)計算機的計算能力來分配。
優(yōu)選的,所述主計算機實時監(jiān)控并實時存儲每個子計算機的剩余子數(shù)據(jù)。當監(jiān)控到子計算機的子數(shù)據(jù)計算完時,主計算機將存儲的未完成計算的子計算機的子數(shù)據(jù)的一部分分配給完成計算的子計算機。
優(yōu)選的,所述主計算機實時監(jiān)控并實時存儲每個子計算機的剩余子數(shù)據(jù)。當監(jiān)控到子計算機的停止工作時,主計算機將存儲的停止工作的子計算機的剩余子數(shù)據(jù)分配給其它正常工作的子計算機。該方法可根據(jù)計算機的計算能力來分配。
為了防止在計算時,主計算機或子計算機因故障而停止工作,將每臺計算機都實時存儲所有計算機的數(shù)據(jù)。若主計算機停止工作,將會有一臺子計算機升為主計算機。在計算完成后,計算結果會發(fā)給該升為主計算機的子計算機。若是子計算機出現(xiàn)故障,則將該子計算未計算完的剩余子數(shù)據(jù)分配給其它子計算機進行計算。
本領域技術人員可顯見,可對本發(fā)明的上述示例性實施例進行各種修改和變型而不偏離本發(fā)明的精神和范圍。因此,旨在使本發(fā)明覆蓋落在所附權利要求書及其等效技術方案范圍內(nèi)的對本發(fā)明的修改和變型。