分布式圖計(jì)算系統(tǒng)數(shù)據(jù)切分方法和系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供一種分布式圖計(jì)算系統(tǒng)數(shù)據(jù)切分方法和系統(tǒng),該方法包括:確定待處理數(shù)據(jù)中的每個(gè)數(shù)據(jù)節(jié)點(diǎn)與自身的各第一相鄰節(jié)點(diǎn)間的相似性度量值;獲得各第一相鄰節(jié)點(diǎn)的標(biāo)簽的出現(xiàn)次數(shù),并確定是否存在出現(xiàn)次數(shù)相同的至少兩個(gè)標(biāo)簽;若存在,則確定與至少兩個(gè)標(biāo)簽分別對應(yīng)的各第二相鄰節(jié)點(diǎn),并根據(jù)所述數(shù)據(jù)節(jié)點(diǎn)與各第二相鄰節(jié)點(diǎn)間的相似性度量值,確定所述數(shù)據(jù)節(jié)點(diǎn)的標(biāo)簽;將具有同一標(biāo)簽的數(shù)據(jù)節(jié)點(diǎn)劃分到同一社區(qū),將屬于同一社區(qū)的數(shù)據(jù)節(jié)點(diǎn)存儲在同一處理主機(jī)中。充分考慮了數(shù)據(jù)節(jié)點(diǎn)間的相似性特征以及基于標(biāo)簽實(shí)現(xiàn)了數(shù)據(jù)節(jié)點(diǎn)的社區(qū)劃分,節(jié)省了運(yùn)算開銷,而且關(guān)系密切的數(shù)據(jù)節(jié)點(diǎn)被分配到同一處理主機(jī)中,減少了在不同處理主機(jī)間的通信開銷。
【專利說明】分布式圖計(jì)算系統(tǒng)數(shù)據(jù)切分方法和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于數(shù)據(jù)處理領(lǐng)域,尤其是涉及一種分布式圖計(jì)算系統(tǒng)數(shù)據(jù)切分方法和系統(tǒng)。
【背景技術(shù)】
[0002]近年來,以互聯(lián)網(wǎng)、高能物理、計(jì)算生物為代表的眾多領(lǐng)域產(chǎn)生的海量數(shù)據(jù)對數(shù)據(jù)處理系統(tǒng)提出了更高的要求。在這些海量數(shù)據(jù)中,由節(jié)點(diǎn)和邊組成的圖結(jié)構(gòu)數(shù)據(jù)作為一種重要的數(shù)據(jù)結(jié)構(gòu),可以有效表示很多不同領(lǐng)域的數(shù)據(jù)關(guān)系,例如,社交網(wǎng)絡(luò)數(shù)據(jù)可以表現(xiàn)為一種圖結(jié)構(gòu)數(shù)據(jù),其中節(jié)點(diǎn)代表用戶,邊代表用戶之間的關(guān)系,例如兩個(gè)用戶相互關(guān)注則表明兩個(gè)對應(yīng)節(jié)點(diǎn)之間有一條邊。同樣,英特網(wǎng)的網(wǎng)頁數(shù)據(jù)也可以表現(xiàn)為一種圖結(jié)構(gòu)數(shù)據(jù),節(jié)點(diǎn)代表網(wǎng)頁,邊代表網(wǎng)頁之間的關(guān)系,例如網(wǎng)頁A上有一個(gè)指向網(wǎng)頁B的超鏈接,則對應(yīng)的節(jié)點(diǎn)A和節(jié)點(diǎn)B之間有一條邊。
[0003]隨著數(shù)據(jù)比如圖結(jié)構(gòu)數(shù)據(jù)的數(shù)據(jù)量越來越大,受限于有限的運(yùn)算和存儲能力,單機(jī)已經(jīng)不能滿足對大規(guī)模圖結(jié)構(gòu)數(shù)據(jù)的高效處理,因而作為大數(shù)據(jù)處理的有效工具,分布式數(shù)據(jù)處理設(shè)備提供了一個(gè)處理海量圖結(jié)構(gòu)數(shù)據(jù)的平臺。為了實(shí)現(xiàn)數(shù)據(jù)的分布式存儲,分布式數(shù)據(jù)處理設(shè)備一般會采用數(shù)據(jù)切分。數(shù)據(jù)切分,簡單來說,就是指通過某種特定的條件,將海量數(shù)據(jù)中的數(shù)據(jù)分散存放到多個(gè)處理主機(jī)上,以達(dá)到分散單臺處理主機(jī)負(fù)載的效果O
[0004]但是,當(dāng)前圖數(shù)據(jù)處理設(shè)備存儲數(shù)據(jù)的模式為:對圖數(shù)據(jù)中的每個(gè)數(shù)據(jù)節(jié)點(diǎn)創(chuàng)建一個(gè)主節(jié)點(diǎn)(它自身)和至少一個(gè)副節(jié)點(diǎn)(備份節(jié)點(diǎn)),隨機(jī)將主節(jié)點(diǎn)固定存儲在某一臺處理主機(jī)上,同時(shí)在該處理主機(jī)上保存主節(jié)點(diǎn)的相鄰數(shù)據(jù)節(jié)點(diǎn),其中,如果相鄰數(shù)據(jù)節(jié)點(diǎn)的主節(jié)點(diǎn)在其處理主機(jī)上,則存儲相鄰數(shù)據(jù)節(jié)點(diǎn)的副節(jié)點(diǎn)。
[0005]上述這種以數(shù)據(jù)節(jié)點(diǎn)為單位進(jìn)行數(shù)據(jù)切分的圖結(jié)構(gòu)數(shù)據(jù)處理方式中,關(guān)系緊密的數(shù)據(jù)節(jié)點(diǎn)往往會被存儲在不同的處理主機(jī)上,而關(guān)系緊密的數(shù)據(jù)節(jié)點(diǎn)實(shí)際上非常有可能要被同時(shí)訪問,如果這些數(shù)據(jù)節(jié)點(diǎn)不在同一個(gè)處理主機(jī)上,則需要耗費(fèi)大量的通信資源來從不同的處理主機(jī)上獲得關(guān)系緊密的不同數(shù)據(jù)節(jié)點(diǎn)。而且,上述的隨機(jī)分配以及數(shù)據(jù)節(jié)點(diǎn)冗余存儲的方式,對于一些度數(shù)(即鄰居節(jié)點(diǎn)的個(gè)數(shù))很大的數(shù)據(jù)節(jié)點(diǎn),需要消耗很多的運(yùn)算資源,從而,將導(dǎo)致較大的運(yùn)算開銷和通信開銷,使得數(shù)據(jù)處理效率較低。
【發(fā)明內(nèi)容】
[0006]針對上述存在的問題,本發(fā)明提供一種分布式圖計(jì)算系統(tǒng)數(shù)據(jù)切分方法和系統(tǒng),用以克服現(xiàn)有技術(shù)中以數(shù)據(jù)節(jié)點(diǎn)為單位進(jìn)行數(shù)據(jù)切分的圖結(jié)構(gòu)數(shù)據(jù)處理方式導(dǎo)致數(shù)據(jù)處理效率較低的缺陷。
[0007]本發(fā)明提供了一種分布式圖計(jì)算系統(tǒng)數(shù)據(jù)切分方法,包括:
[0008]根據(jù)預(yù)設(shè)算法,確定待處理數(shù)據(jù)中的每個(gè)數(shù)據(jù)節(jié)點(diǎn)與自身的各第一相鄰節(jié)點(diǎn)間的相似性度量值;
[0009]根據(jù)所述各第一相鄰節(jié)點(diǎn)的標(biāo)簽,獲得每個(gè)所述標(biāo)簽在所述各第一相鄰節(jié)點(diǎn)中的出現(xiàn)次數(shù),所述標(biāo)簽包括節(jié)點(diǎn)標(biāo)識ID ;
[0010]根據(jù)所述出現(xiàn)次數(shù),確定所述各第一相鄰節(jié)點(diǎn)的標(biāo)簽中是否存在出現(xiàn)次數(shù)相同的至少兩個(gè)標(biāo)簽;
[0011]若存在,則確定與所述至少兩個(gè)標(biāo)簽分別對應(yīng)的各第二相鄰節(jié)點(diǎn),并根據(jù)所述數(shù)據(jù)節(jié)點(diǎn)與所述各第二相鄰節(jié)點(diǎn)間的相似性度量值,確定所述數(shù)據(jù)節(jié)點(diǎn)的標(biāo)簽;
[0012]將所述待處理數(shù)據(jù)中具有同一標(biāo)簽的數(shù)據(jù)節(jié)點(diǎn)劃分到同一社區(qū),并將屬于同一社區(qū)的數(shù)據(jù)節(jié)點(diǎn)存儲在同一處理主機(jī)中。
[0013]本發(fā)明提供了一種分布式圖計(jì)算系統(tǒng)數(shù)據(jù)切分系統(tǒng),包括:
[0014]第一確定模塊,用于根據(jù)預(yù)設(shè)算法,確定待處理數(shù)據(jù)中的每個(gè)數(shù)據(jù)節(jié)點(diǎn)與自身的各第一相鄰節(jié)點(diǎn)間的相似性度量值;
[0015]獲取模塊,用于根據(jù)所述各第一相鄰節(jié)點(diǎn)的標(biāo)簽,獲得每個(gè)所述標(biāo)簽在所述各第一相鄰節(jié)點(diǎn)中的出現(xiàn)次數(shù),所述標(biāo)簽包括節(jié)點(diǎn)標(biāo)識ID ;
[0016]第二確定模塊,用于根據(jù)所述出現(xiàn)次數(shù),確定所述各第一相鄰節(jié)點(diǎn)的標(biāo)簽中是否存在出現(xiàn)次數(shù)相同的至少兩個(gè)標(biāo)簽;
[0017]第三確定模塊,用于若存在,則確定與所述至少兩個(gè)標(biāo)簽分別對應(yīng)的各第二相鄰節(jié)點(diǎn),并根據(jù)所述數(shù)據(jù)節(jié)點(diǎn)與所述各第二相鄰節(jié)點(diǎn)間的相似性度量值,確定所述數(shù)據(jù)節(jié)點(diǎn)的標(biāo)簽;
[0018]處理模塊,用于將所述待處理數(shù)據(jù)中具有同一標(biāo)簽的數(shù)據(jù)節(jié)點(diǎn)劃分到同一社區(qū),并將屬于同一社區(qū)的數(shù)據(jù)節(jié)點(diǎn)存儲在同一處理主機(jī)中。
[0019]本發(fā)明提供的分布式圖計(jì)算系統(tǒng)數(shù)據(jù)切分方法和系統(tǒng),對于數(shù)據(jù)規(guī)模很大的待處理數(shù)據(jù),針對待處理數(shù)據(jù)中的每個(gè)數(shù)據(jù)節(jié)點(diǎn)確定自身與各相鄰節(jié)點(diǎn)間的相似性度量值,進(jìn)而在確定其各相鄰節(jié)點(diǎn)的標(biāo)簽中存在多個(gè)出現(xiàn)次數(shù)相同的標(biāo)簽時(shí),根據(jù)與擁有該相同標(biāo)簽的各相鄰節(jié)點(diǎn)間的相似性度量值,確定自身的標(biāo)簽,進(jìn)而將待處理數(shù)據(jù)中具有同一標(biāo)簽的數(shù)據(jù)節(jié)點(diǎn)劃分到同一社區(qū),并將屬于同一社區(qū)的數(shù)據(jù)節(jié)點(diǎn)存儲在同一處理主機(jī)中。通過對每個(gè)數(shù)據(jù)節(jié)點(diǎn)進(jìn)行與其相鄰節(jié)點(diǎn)間的相似性度量,充分考慮了待處理數(shù)據(jù)的整體結(jié)構(gòu)特性,進(jìn)而對待處理數(shù)據(jù)中的每個(gè)數(shù)據(jù)節(jié)點(diǎn)基于該相似性特性,結(jié)合其相鄰節(jié)點(diǎn)的標(biāo)簽進(jìn)行聚類分析,以最終將待處理數(shù)據(jù)劃分為多個(gè)社區(qū),每個(gè)社區(qū)中的數(shù)據(jù)節(jié)點(diǎn)都具有同一標(biāo)簽,而且,每個(gè)社區(qū)中的數(shù)據(jù)節(jié)點(diǎn)也具有較高相似性,從而以社區(qū)為單位進(jìn)行數(shù)據(jù)節(jié)點(diǎn)在處理主機(jī)上的切分存儲。由于充分考慮了數(shù)據(jù)節(jié)點(diǎn)間的相似性特征以及基于標(biāo)簽實(shí)現(xiàn)了數(shù)據(jù)節(jié)點(diǎn)的社區(qū)劃分,節(jié)省了運(yùn)算開銷,而且使得關(guān)系密切的數(shù)據(jù)節(jié)點(diǎn)能夠被分配到同一處理主機(jī)中,大大減少了在不同處理主機(jī)間的通信開銷,從而提高了數(shù)據(jù)處理效率。
【專利附圖】
【附圖說明】
[0020]圖1為本發(fā)明分布式圖計(jì)算系統(tǒng)數(shù)據(jù)切分方法實(shí)施例一的流程圖;
[0021]圖2為本發(fā)明分布式圖計(jì)算系統(tǒng)數(shù)據(jù)切分方法實(shí)施例二的流程圖;
[0022]圖3為本發(fā)明分布式圖計(jì)算系統(tǒng)數(shù)據(jù)切分系統(tǒng)實(shí)施例一的結(jié)構(gòu)示意圖;
[0023]圖4為本發(fā)明分布式圖計(jì)算系統(tǒng)數(shù)據(jù)切分系統(tǒng)實(shí)施例二的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0024]圖1為本發(fā)明分布式圖計(jì)算系統(tǒng)數(shù)據(jù)切分方法實(shí)施例一的流程圖,如圖1所示,該方法包括:
[0025]步驟101、根據(jù)預(yù)設(shè)算法,確定待處理數(shù)據(jù)中的每個(gè)數(shù)據(jù)節(jié)點(diǎn)與自身的各第一相鄰節(jié)點(diǎn)間的相似性度量值;
[0026]本實(shí)施例提供的所述方法適用于采用分布式數(shù)據(jù)處理系統(tǒng)對大規(guī)模的圖結(jié)構(gòu)數(shù)據(jù)進(jìn)行數(shù)據(jù)切分存儲的場景,在該分布式數(shù)據(jù)處理系統(tǒng)中設(shè)置有多個(gè)處理主機(jī)。值得說明的是,該系統(tǒng)在接收到大量待處理數(shù)據(jù)后,可以采用現(xiàn)有的分布式處理方式將該待處理數(shù)據(jù)預(yù)先分布式存入多個(gè)處理主機(jī)中,而本實(shí)施例提供的所述方法可以針對預(yù)存入各處理主機(jī)中的待處理數(shù)據(jù)進(jìn)行處理,當(dāng)然,也可以在接收到待處理數(shù)據(jù)后直接進(jìn)行處理。本實(shí)施例提供的所述方法可以由一處理系統(tǒng)來執(zhí)行,該處理系統(tǒng)比如為分布式處理系統(tǒng)的管理平臺。
[0027]本實(shí)施例中,對于圖結(jié)構(gòu)的數(shù)據(jù),數(shù)據(jù)可以表示為數(shù)據(jù)節(jié)點(diǎn)與邊的抽象圖,處理系統(tǒng)針對待處理數(shù)據(jù)中的每個(gè)數(shù)據(jù)節(jié)點(diǎn),分別計(jì)算其與自身相鄰節(jié)點(diǎn)的相似度度量值,其中,上述預(yù)設(shè)算法例如可以是基于數(shù)據(jù)節(jié)點(diǎn)與其相鄰節(jié)點(diǎn)之間的連接邊的權(quán)重,或是基于數(shù)據(jù)節(jié)點(diǎn)的度數(shù)(其相鄰節(jié)點(diǎn)的總數(shù))與每個(gè)相鄰節(jié)點(diǎn)的度數(shù),或是基于數(shù)據(jù)節(jié)點(diǎn)的網(wǎng)頁排名(PageRank,以下簡稱PR)值等等。
[0028]步驟102、根據(jù)所述各第一相鄰節(jié)點(diǎn)的標(biāo)簽,獲得每個(gè)所述標(biāo)簽在所述各第一相鄰節(jié)點(diǎn)中的出現(xiàn)次數(shù),所述標(biāo)簽包括節(jié)點(diǎn)標(biāo)識ID ;
[0029]步驟103、根據(jù)所述出現(xiàn)次數(shù),確定所述各第一相鄰節(jié)點(diǎn)的標(biāo)簽中是否存在出現(xiàn)次數(shù)相同的至少兩個(gè)標(biāo)簽,若存在,則執(zhí)行步驟104,否則,執(zhí)行步驟105 ;
[0030]步驟104、確定與所述至少兩個(gè)標(biāo)簽分別對應(yīng)的各第二相鄰節(jié)點(diǎn),并根據(jù)所述數(shù)據(jù)節(jié)點(diǎn)與所述各第二相鄰節(jié)點(diǎn)間的相似性度量值,確定所述數(shù)據(jù)節(jié)點(diǎn)的標(biāo)簽;
[0031]步驟105、確定所述數(shù)據(jù)節(jié)點(diǎn)的標(biāo)簽與所述各第一相鄰節(jié)點(diǎn)的標(biāo)簽中出現(xiàn)次數(shù)最多的標(biāo)簽相同。
[0032]本實(shí)施例中,可以預(yù)先為每個(gè)數(shù)據(jù)節(jié)點(diǎn)配置一個(gè)標(biāo)簽,該標(biāo)簽可以是為每個(gè)節(jié)點(diǎn)預(yù)先設(shè)置的一個(gè)標(biāo)識ID。值得說明的是,該標(biāo)簽為節(jié)點(diǎn)標(biāo)識ID,并不意味著標(biāo)簽與數(shù)據(jù)節(jié)點(diǎn)具有唯一的一一對應(yīng)關(guān)系,簡單來說,該標(biāo)簽具有分類的含義,將滿足一定條件的各個(gè)數(shù)據(jù)節(jié)點(diǎn)打上同一個(gè)標(biāo)簽。
[0033]值得說明的是,本實(shí)施例中為每個(gè)數(shù)據(jù)節(jié)點(diǎn)確定標(biāo)簽的過程是一個(gè)多次迭代的過程。在迭代初始時(shí),可以為每個(gè)數(shù)據(jù)節(jié)點(diǎn)配置一個(gè)用于區(qū)別于其他數(shù)據(jù)節(jié)點(diǎn)的標(biāo)識ID,在第一次迭代時(shí),以某個(gè)數(shù)據(jù)節(jié)點(diǎn)i為例,在計(jì)算獲得了數(shù)據(jù)節(jié)點(diǎn)i與其各個(gè)相鄰節(jié)點(diǎn)即上述的第一相鄰節(jié)點(diǎn)的相似度度量值后,假設(shè)其與相鄰節(jié)點(diǎn)j的相似度度量值最大,從而,確定數(shù)據(jù)節(jié)點(diǎn)i的標(biāo)簽為數(shù)據(jù)節(jié)點(diǎn)j的標(biāo)識ID。也就是說,在第一次迭代時(shí),數(shù)據(jù)節(jié)點(diǎn)i的各相鄰節(jié)點(diǎn)的標(biāo)簽即為每個(gè)相鄰節(jié)點(diǎn)被初始分配的標(biāo)識ID,而且,由于此時(shí)的每個(gè)相鄰節(jié)點(diǎn)的標(biāo)簽具有唯一性,因此,每個(gè)標(biāo)簽的出現(xiàn)次數(shù)為1,即數(shù)據(jù)節(jié)點(diǎn)i的各相鄰節(jié)點(diǎn)的標(biāo)簽中存在出現(xiàn)次數(shù)相同的至少兩個(gè)標(biāo)簽,此時(shí),與所述至少兩個(gè)標(biāo)簽分別對應(yīng)的各第二相鄰節(jié)點(diǎn)即為數(shù)據(jù)節(jié)點(diǎn)i的全部相鄰節(jié)點(diǎn)。從而,根據(jù)數(shù)據(jù)節(jié)點(diǎn)i與其全部相鄰節(jié)點(diǎn)中的每個(gè)相鄰數(shù)據(jù)節(jié)點(diǎn)間的相似性度量值,確定數(shù)據(jù)節(jié)點(diǎn)i的標(biāo)簽。比如,假設(shè)數(shù)據(jù)節(jié)點(diǎn)i與相鄰節(jié)點(diǎn)j的相似度度量值最大,從而,確定數(shù)據(jù)節(jié)點(diǎn)i的標(biāo)簽為數(shù)據(jù)節(jié)點(diǎn)j的標(biāo)識ID,此時(shí),數(shù)據(jù)節(jié)點(diǎn)i的標(biāo)簽不再時(shí)初始分配給其的標(biāo)識ID,而變?yōu)閿?shù)據(jù)節(jié)點(diǎn)j的標(biāo)識ID。
[0034]從而在后續(xù)的第二次或者以后的迭代過程中,由于存在上述標(biāo)簽改變的過程,因此后續(xù)的迭代過程中有可能出現(xiàn)某數(shù)據(jù)節(jié)點(diǎn)k的某個(gè)相鄰節(jié)點(diǎn)q的標(biāo)簽出現(xiàn)了最多的次數(shù),也就是說,該數(shù)據(jù)節(jié)點(diǎn)q的標(biāo)識ID在數(shù)據(jù)節(jié)點(diǎn)k的所有相鄰節(jié)點(diǎn)中被用于作為標(biāo)簽的次數(shù)最多。此時(shí),將數(shù)據(jù)節(jié)點(diǎn)k的標(biāo)簽變?yōu)閿?shù)據(jù)節(jié)點(diǎn)q的標(biāo)識ID。
[0035]步驟106、將所述待處理數(shù)據(jù)中具有同一標(biāo)簽的數(shù)據(jù)節(jié)點(diǎn)劃分到同一社區(qū),并將屬于同一社區(qū)的數(shù)據(jù)節(jié)點(diǎn)存儲在同一處理主機(jī)中。
[0036]在對待處理數(shù)據(jù)中的每個(gè)數(shù)據(jù)節(jié)點(diǎn)都做了上述的確定標(biāo)簽的處理之后,待處理數(shù)據(jù)中的很多數(shù)據(jù)節(jié)點(diǎn)將具有同樣的標(biāo)簽,將具有同一標(biāo)簽的數(shù)據(jù)節(jié)點(diǎn)劃分到同一社區(qū),并將屬于同一社區(qū)的數(shù)據(jù)節(jié)點(diǎn)存儲在同一處理主機(jī)中,從而完成對待處理數(shù)據(jù)的數(shù)據(jù)切分處理,即將待處理數(shù)據(jù)劃分為各個(gè)社區(qū),以社區(qū)為單位進(jìn)行數(shù)據(jù)節(jié)點(diǎn)的存儲。
[0037]本實(shí)施例中,對于數(shù)據(jù)規(guī)模很大的待處理數(shù)據(jù),針對待處理數(shù)據(jù)中的每個(gè)數(shù)據(jù)節(jié)點(diǎn)確定自身與各相鄰節(jié)點(diǎn)間的相似性度量值,進(jìn)而在確定其各相鄰節(jié)點(diǎn)的標(biāo)簽中存在多個(gè)出現(xiàn)次數(shù)相同的標(biāo)簽時(shí),根據(jù)與擁有該相同標(biāo)簽的各相鄰節(jié)點(diǎn)間的相似性度量值,確定自身的標(biāo)簽,進(jìn)而將待處理數(shù)據(jù)中具有同一標(biāo)簽的數(shù)據(jù)節(jié)點(diǎn)劃分到同一社區(qū),并將屬于同一社區(qū)的數(shù)據(jù)節(jié)點(diǎn)存儲在同一處理主機(jī)中。通過對每個(gè)數(shù)據(jù)節(jié)點(diǎn)進(jìn)行與其相鄰節(jié)點(diǎn)間的相似性度量,充分考慮了待處理數(shù)據(jù)的整體結(jié)構(gòu)特性,進(jìn)而對待處理數(shù)據(jù)中的每個(gè)數(shù)據(jù)節(jié)點(diǎn)基于該相似性特性,結(jié)合其相鄰節(jié)點(diǎn)的標(biāo)簽進(jìn)行聚類分析,以最終將待處理數(shù)據(jù)劃分為多個(gè)社區(qū),每個(gè)社區(qū)中的數(shù)據(jù)節(jié)點(diǎn)都具有同一標(biāo)簽,而且,每個(gè)社區(qū)中的數(shù)據(jù)節(jié)點(diǎn)也具有較高相似性,從而以社區(qū)為單位進(jìn)行數(shù)據(jù)節(jié)點(diǎn)在處理主機(jī)上的切分存儲。由于充分考慮了數(shù)據(jù)節(jié)點(diǎn)間的相似性特征以及基于標(biāo)簽實(shí)現(xiàn)了數(shù)據(jù)節(jié)點(diǎn)的社區(qū)劃分,節(jié)省了運(yùn)算開銷,而且使得關(guān)系密切的數(shù)據(jù)節(jié)點(diǎn)能夠被分配到同一處理主機(jī)中,大大減少了在不同處理主機(jī)間的通信開銷,從而提高了數(shù)據(jù)處理效率。
[0038]圖2為本發(fā)明分布式圖計(jì)算系統(tǒng)數(shù)據(jù)切分方法實(shí)施例二的流程圖,如圖2所示,本實(shí)施例提供的所述方法包括如下步驟:
[0039]步驟201、根據(jù)公式(I)計(jì)算所述待處理數(shù)據(jù)中的數(shù)據(jù)節(jié)點(diǎn)u與所述數(shù)據(jù)節(jié)點(diǎn)u的相鄰節(jié)點(diǎn)V間的相似性度量值A(chǔ)PS (u,v);
[0040]
APS(u,v) = ^ i mini^GCv^., u), PGivl, v)),u, v e I^vj e (δ(ν)ηδ(ι?)( I )
[0041]其中,V為所述數(shù)據(jù)節(jié)點(diǎn)u的各第一相鄰節(jié)點(diǎn)中的任一個(gè)數(shù)據(jù)節(jié)點(diǎn),δ (V)為數(shù)據(jù)節(jié)點(diǎn)V的各第一相鄰節(jié)點(diǎn),V為所述待處理數(shù)據(jù)中所有數(shù)據(jù)節(jié)點(diǎn)的集合,δ (u)為所述數(shù)據(jù)節(jié)點(diǎn)U的各第一相鄰節(jié)點(diǎn),η為同時(shí)屬于數(shù)據(jù)節(jié)點(diǎn)V的各第一相鄰節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)U的各第一相鄰節(jié)點(diǎn)的節(jié)點(diǎn)的個(gè)數(shù),PG(Vj, u)為數(shù)據(jù)節(jié)點(diǎn)Vj傳播到數(shù)據(jù)節(jié)點(diǎn)u的網(wǎng)頁排名PR值,根據(jù)PG(Vj, u) = PR(U)確定,PG(Vj, V)為數(shù)據(jù)節(jié)點(diǎn)Vj傳播到數(shù)據(jù)節(jié)點(diǎn)v的網(wǎng)頁排名PR值,根據(jù)PG(Vj,v) = PR(V)確定,其中,PR(U)和PR(V)根據(jù)公式(2)確定:
[0042]PR(w) = i\-r) + rV pr^ , * e ι(2)
VJV /, /Zjneifl0l, I ΟΜ?(>ν) I >
[0043]其中,Y為加權(quán)系數(shù),in (W)為與所述數(shù)據(jù)節(jié)點(diǎn)w的入邊對應(yīng)的相鄰節(jié)點(diǎn)集合,OUt(W)為與數(shù)據(jù)節(jié)點(diǎn)W的出邊對應(yīng)的相鄰節(jié)點(diǎn)集合,1ut(W) I為所述出邊對應(yīng)的相鄰節(jié)點(diǎn)集合中包含的節(jié)點(diǎn)個(gè)數(shù)。
[0044]本實(shí)施例中,可以根據(jù)數(shù)據(jù)節(jié)點(diǎn)的PageRank值來計(jì)算某個(gè)數(shù)據(jù)節(jié)點(diǎn)與其相鄰節(jié)點(diǎn)的相似程度。PageRank是Google專有的算法,用于衡量特定網(wǎng)頁相對于搜索弓I擎索弓I中的其他網(wǎng)頁而言的重要程度,本實(shí)施例中將其應(yīng)用在圖結(jié)構(gòu)數(shù)據(jù)中,用來計(jì)算數(shù)據(jù)節(jié)點(diǎn)在整個(gè)圖結(jié)構(gòu)數(shù)據(jù)即待處理數(shù)據(jù)中的重要程度。每個(gè)數(shù)據(jù)節(jié)點(diǎn)通過上述計(jì)算方式計(jì)算出其與所有相鄰節(jié)點(diǎn)的相似度度量值,從而每個(gè)數(shù)據(jù)節(jié)點(diǎn)可以保存一個(gè)結(jié)構(gòu)體,其中存儲了它的所有相鄰節(jié)點(diǎn)的標(biāo)識ID和與該數(shù)據(jù)節(jié)點(diǎn)的相似度度量值,以便用于后續(xù)該數(shù)據(jù)節(jié)點(diǎn)的標(biāo)簽的確定過程中。
[0045]步驟202、根據(jù)所述各第一相鄰節(jié)點(diǎn)的標(biāo)簽,獲得每個(gè)所述標(biāo)簽在所述各第一相鄰節(jié)點(diǎn)中的出現(xiàn)次數(shù);
[0046]步驟203、根據(jù)所述出現(xiàn)次數(shù),確定所述各第一相鄰節(jié)點(diǎn)的標(biāo)簽中是否存在出現(xiàn)次數(shù)相同的至少兩個(gè)標(biāo)簽,若存在,則執(zhí)行步驟204,否則,執(zhí)行步驟205 ;
[0047]步驟204、確定與所述至少兩個(gè)標(biāo)簽分別對應(yīng)的各第二相鄰節(jié)點(diǎn),從所述各第二相鄰節(jié)點(diǎn)中確定出第三相鄰節(jié)點(diǎn),確定所述數(shù)據(jù)節(jié)點(diǎn)的標(biāo)簽與所述第三相鄰節(jié)點(diǎn)的標(biāo)簽相同,所述第三相鄰節(jié)點(diǎn)與所述數(shù)據(jù)節(jié)點(diǎn)的相似性度量值大于所述各第二相鄰節(jié)點(diǎn)中除所述第三相鄰節(jié)點(diǎn)之外的其他第二相鄰節(jié)點(diǎn)與所述數(shù)據(jù)節(jié)點(diǎn)的相似性度量值;
[0048]步驟205、確定所述數(shù)據(jù)節(jié)點(diǎn)的標(biāo)簽與所述各第一相鄰節(jié)點(diǎn)的標(biāo)簽中出現(xiàn)次數(shù)最多的標(biāo)簽相同。
[0049]上述步驟202-205與圖1所示實(shí)施例中一致,不再贅述。
[0050]步驟206、將所述待處理數(shù)據(jù)中具有同一標(biāo)簽的數(shù)據(jù)節(jié)點(diǎn)劃分到同一社區(qū),將所述待處理數(shù)據(jù)中的各個(gè)社區(qū)按照社區(qū)規(guī)模從大到小的順序進(jìn)行排序,所述社區(qū)規(guī)模為所述社區(qū)中包含的數(shù)據(jù)節(jié)點(diǎn)的個(gè)數(shù);
[0051]步驟207、根據(jù)各處理主機(jī)的預(yù)設(shè)存儲順序以及所述各個(gè)社區(qū)的排序,分別確定所述各個(gè)社區(qū)應(yīng)該存入的處理主機(jī),所述存儲順序是指所述各處理主機(jī)存儲所述各個(gè)社區(qū)的先后順序。
[0052]本實(shí)施例中,在各個(gè)處理主機(jī)中已經(jīng)預(yù)先存儲了待處理數(shù)據(jù)的情況下,為了使得對待處理數(shù)據(jù)進(jìn)行社區(qū)劃分后的每個(gè)社區(qū),與存儲該社區(qū)中的數(shù)據(jù)節(jié)點(diǎn)的處理主機(jī)中的預(yù)先存儲的數(shù)據(jù)節(jié)點(diǎn)具有較好的匹配,從而進(jìn)一步降低處理開銷,優(yōu)化處理效果,本實(shí)施例在將待處理數(shù)據(jù)中具有同一標(biāo)簽的數(shù)據(jù)節(jié)點(diǎn)劃分到同一社區(qū)之后,還進(jìn)行如下的處理:
[0053]將各個(gè)社區(qū)按照社區(qū)規(guī)模從大到小的順序進(jìn)行排序,其中,社區(qū)規(guī)模為所述社區(qū)中包含的數(shù)據(jù)節(jié)點(diǎn)的個(gè)數(shù);根據(jù)各處理主機(jī)的預(yù)設(shè)存儲順序以及所述各個(gè)社區(qū)的排序,分別確定所述各個(gè)社區(qū)應(yīng)該存入的處理主機(jī),所述存儲順序是指所述各處理主機(jī)存儲所述各個(gè)社區(qū)的先后順序。
[0054]值得說明的是,本實(shí)施例中對各個(gè)社區(qū)按照社區(qū)規(guī)模從大到小排序僅僅是一種可選的方式,也可以從小到大排序。而且,上述各處理主機(jī)的預(yù)設(shè)存儲順序,簡單來說相當(dāng)于對各個(gè)處理主機(jī)進(jìn)行了順序編號。從而,上述根據(jù)各處理主機(jī)的預(yù)設(shè)存儲順序以及所述各個(gè)社區(qū)的排序,分別確定所述各個(gè)社區(qū)應(yīng)該存入的處理主機(jī),具體為:以每個(gè)處理主機(jī)一次存入一個(gè)社區(qū)的方式,按照各個(gè)社區(qū)排序的先后順序以及各個(gè)處理主機(jī)存儲各社區(qū)的先后順序,確定每個(gè)社區(qū)應(yīng)該存入的處理主機(jī)。
[0055]舉例來說,假設(shè)待處理數(shù)據(jù)中有NI個(gè)社區(qū),按照社區(qū)規(guī)模從大到小的順序依次排列為:社區(qū)1、社區(qū)2、…、社區(qū)NI,并有N2個(gè)處理主機(jī),按照預(yù)設(shè)存儲順序依次為:處理主機(jī)1、處理主機(jī)2、…、處理主機(jī)N2。如果NI小于或者等于N2,那么各個(gè)社區(qū)與各個(gè)處理主機(jī)的對應(yīng)關(guān)系為:社區(qū)I (即社區(qū)I中包含的所有數(shù)據(jù)節(jié)點(diǎn))存入處理主機(jī)I中,社區(qū)2存入處理主機(jī)2中,依次類推,社區(qū)NI存入處理主機(jī)NI中;如果NI大于N2,此時(shí)說明待存入的社區(qū)數(shù)量多于處理主機(jī)的數(shù)量,此時(shí)各個(gè)社區(qū)與各個(gè)處理主機(jī)的對應(yīng)關(guān)系為:社區(qū)I存入處理主機(jī)I中,社區(qū)2存入處理主機(jī)2中,依次類推,社區(qū)N2存入處理主機(jī)N2中,后續(xù)社區(qū)則從頭開始循環(huán)存入,即社區(qū)N2+1存入處理主機(jī)I中,社區(qū)N2+2存入處理主機(jī)2中,以此類推。
[0056]從而,在確定了各個(gè)社區(qū)應(yīng)該存入的處理主機(jī)后,可選的,可以將各個(gè)社區(qū)依次存入對應(yīng)的各處理主機(jī)中。但是,另一種可選的方式中,為了使得每個(gè)社區(qū)能夠存入預(yù)存數(shù)據(jù)節(jié)點(diǎn)與該社區(qū)包含的數(shù)據(jù)節(jié)點(diǎn)具有良好匹配程度的處理主機(jī)中,本實(shí)施例中,將執(zhí)行如下步驟:
[0057]步驟208、分別以所述各個(gè)社區(qū)中的每個(gè)社區(qū)作為待處理社區(qū),確定所述待處理社區(qū)中包含的數(shù)據(jù)節(jié)點(diǎn)分別與所述各處理主機(jī)中的每個(gè)處理主機(jī)中預(yù)先保存的數(shù)據(jù)節(jié)點(diǎn)間的匹配程度;
[0058]具體地,所述確定所述待處理社區(qū)中包含的數(shù)據(jù)節(jié)點(diǎn)分別與所述各處理主機(jī)中的每個(gè)處理主機(jī)中預(yù)先保存的數(shù)據(jù)節(jié)點(diǎn)間的匹配程度,包括:
[0059]確定每個(gè)所述匹配程度為所述待處理社區(qū)中包含的數(shù)據(jù)節(jié)點(diǎn)與對應(yīng)的每個(gè)處理主機(jī)中預(yù)先保存的數(shù)據(jù)節(jié)點(diǎn)間包含的相同數(shù)據(jù)節(jié)點(diǎn)的個(gè)數(shù)。
[0060]簡單來說,針對每個(gè)社區(qū)來說,將其包含的數(shù)據(jù)節(jié)點(diǎn)依次與每個(gè)處理主機(jī)中預(yù)先保存的數(shù)據(jù)節(jié)點(diǎn)進(jìn)行比較,確定分別與每個(gè)處理主機(jī)中預(yù)先保存的數(shù)據(jù)節(jié)點(diǎn)間的匹配程度,即重復(fù)的數(shù)據(jù)節(jié)點(diǎn)的個(gè)數(shù)。
[0061]步驟209、從所述各處理主機(jī)中確定與所述待處理社區(qū)對應(yīng)的目標(biāo)處理主機(jī),所述目標(biāo)處理主機(jī)中預(yù)先保存的數(shù)據(jù)節(jié)點(diǎn)與所述待處理社區(qū)中包含的數(shù)據(jù)節(jié)點(diǎn)的匹配程度最聞;
[0062]針對每個(gè)社區(qū)來說,確定分別與每個(gè)處理主機(jī)中預(yù)先保存的數(shù)據(jù)節(jié)點(diǎn)間的匹配程度,即重復(fù)的數(shù)據(jù)節(jié)點(diǎn)的個(gè)數(shù)后,選擇數(shù)據(jù)節(jié)點(diǎn)重復(fù)個(gè)數(shù)最多的那個(gè)處理主機(jī)作為該社區(qū)最終將被存入的目標(biāo)處理主機(jī)。
[0063]步驟210、確定所述目標(biāo)處理主機(jī)與根據(jù)所述各處理主機(jī)的預(yù)設(shè)存儲順序以及所述各個(gè)社區(qū)的排序確定的所述待處理社區(qū)應(yīng)該存入的處理主機(jī)是否相同,若相同,則執(zhí)行步驟211,否則,執(zhí)行步驟212 ;
[0064]步驟211、將所述待處理社區(qū)存入所述應(yīng)該存入的處理主機(jī)中。
[0065]步驟212、將所述待處理社區(qū)存入所述目標(biāo)處理主機(jī)中。
[0066]如果確定的目標(biāo)處理主機(jī)與根據(jù)社區(qū)排序和處理主機(jī)排序確定的處理主機(jī)相同,那么將該社區(qū)存入該處理主機(jī)即可,否則,將該社區(qū)存入目標(biāo)處理主機(jī),即相當(dāng)于將該社區(qū)從初始確定的處理主機(jī)遷移到了目標(biāo)處理主機(jī)中。
[0067]本實(shí)施例中,通過對每個(gè)數(shù)據(jù)節(jié)點(diǎn)進(jìn)行與其相鄰節(jié)點(diǎn)間的相似性度量,充分考慮了待處理數(shù)據(jù)的整體結(jié)構(gòu)特性,進(jìn)而對待處理數(shù)據(jù)中的每個(gè)數(shù)據(jù)節(jié)點(diǎn)基于該相似性特性,結(jié)合其相鄰節(jié)點(diǎn)的標(biāo)簽進(jìn)行聚類分析,以最終將待處理數(shù)據(jù)劃分為多個(gè)社區(qū),每個(gè)社區(qū)中的數(shù)據(jù)節(jié)點(diǎn)都具有同一標(biāo)簽,而且,每個(gè)社區(qū)中的數(shù)據(jù)節(jié)點(diǎn)也具有較高相似性,從而以社區(qū)為單位進(jìn)行數(shù)據(jù)節(jié)點(diǎn)在處理主機(jī)上的切分存儲。由于充分考慮了數(shù)據(jù)節(jié)點(diǎn)間的相似性特征以及基于標(biāo)簽實(shí)現(xiàn)了數(shù)據(jù)節(jié)點(diǎn)的社區(qū)劃分,節(jié)省了運(yùn)算開銷,而且使得關(guān)系密切的數(shù)據(jù)節(jié)點(diǎn)能夠被分配到同一處理主機(jī)中,大大減少了在不同處理主機(jī)間的通信開銷,從而提高了數(shù)據(jù)處理效率。此外,在進(jìn)行社區(qū)存入處理主機(jī)的過程中,依據(jù)社區(qū)中包含的數(shù)據(jù)節(jié)點(diǎn)與處理主機(jī)中預(yù)先存儲的數(shù)據(jù)節(jié)點(diǎn)的匹配程度來最終確定各社區(qū)將被存入的處理主機(jī),降低了待處理數(shù)據(jù)中數(shù)據(jù)節(jié)點(diǎn)存儲位置的變更,進(jìn)一步降低了處理開銷,提高了處理效率。
[0068]圖3為本發(fā)明分布式圖計(jì)算系統(tǒng)數(shù)據(jù)切分系統(tǒng)實(shí)施例一的結(jié)構(gòu)示意圖,如圖3所示,該系統(tǒng)包括:
[0069]第一確定模塊11,用于根據(jù)預(yù)設(shè)算法,確定待處理數(shù)據(jù)中的每個(gè)數(shù)據(jù)節(jié)點(diǎn)與自身的各第一相鄰節(jié)點(diǎn)間的相似性度量值;
[0070]獲取模塊12,用于根據(jù)所述各第一相鄰節(jié)點(diǎn)的標(biāo)簽,獲得每個(gè)所述標(biāo)簽在所述各第一相鄰節(jié)點(diǎn)中的出現(xiàn)次數(shù),所述標(biāo)簽包括節(jié)點(diǎn)標(biāo)識ID ;
[0071]第二確定模塊13,用于根據(jù)所述出現(xiàn)次數(shù),確定所述各第一相鄰節(jié)點(diǎn)的標(biāo)簽中是否存在出現(xiàn)次數(shù)相同的至少兩個(gè)標(biāo)簽;
[0072]第三確定模塊14,用于若所述第二確定模塊13確定存在出現(xiàn)次數(shù)相同的至少兩個(gè)標(biāo)簽,則確定與所述至少兩個(gè)標(biāo)簽分別對應(yīng)的各第二相鄰節(jié)點(diǎn),并根據(jù)所述數(shù)據(jù)節(jié)點(diǎn)與所述各第二相鄰節(jié)點(diǎn)間的相似性度量值,確定所述數(shù)據(jù)節(jié)點(diǎn)的標(biāo)簽;
[0073]處理模塊15,用于將所述待處理數(shù)據(jù)中具有同一標(biāo)簽的數(shù)據(jù)節(jié)點(diǎn)劃分到同一社區(qū),并將屬于同一社區(qū)的數(shù)據(jù)節(jié)點(diǎn)存儲在同一處理主機(jī)中。
[0074]所述第三確定模塊14,還用于:
[0075]若所述第二確定模塊13確定不存在出現(xiàn)次數(shù)相同的至少兩個(gè)標(biāo)簽,則確定所述數(shù)據(jù)節(jié)點(diǎn)的標(biāo)簽與所述各第一相鄰節(jié)點(diǎn)的標(biāo)簽中出現(xiàn)次數(shù)最多的標(biāo)簽相同。
[0076]本實(shí)施例的系統(tǒng)可以用于執(zhí)行圖1所不方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0077]圖4為本發(fā)明分布式圖計(jì)算系統(tǒng)數(shù)據(jù)切分系統(tǒng)實(shí)施例二的結(jié)構(gòu)示意圖,如圖4所示,本實(shí)施例提供的所述系統(tǒng)在圖3所示實(shí)施例的基礎(chǔ)上,所述第一確定模塊11,具體用于:
[0078]根據(jù)公式(I)計(jì)算所述待處理數(shù)據(jù)中的數(shù)據(jù)節(jié)點(diǎn)u與所述數(shù)據(jù)節(jié)點(diǎn)u的相鄰節(jié)點(diǎn)V間的相似性度量值A(chǔ)PS (u,v):
[0079]
APS(u, v) =: miPG(vrv)),u, ve V, Vj e (5(ν) η δ(ι?)( I )
[0080]其中,V為所述數(shù)據(jù)節(jié)點(diǎn)U的各第一相鄰節(jié)點(diǎn)中的任一個(gè)數(shù)據(jù)節(jié)點(diǎn),δ (V)為數(shù)據(jù)節(jié)點(diǎn)V的各第一相鄰節(jié)點(diǎn),V為所述待處理數(shù)據(jù)中所有數(shù)據(jù)節(jié)點(diǎn)的集合,δ (u)為所述數(shù)據(jù)節(jié)點(diǎn)U的各第一相鄰節(jié)點(diǎn),η為同時(shí)屬于數(shù)據(jù)節(jié)點(diǎn)V的各第一相鄰節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)U的各第一相鄰節(jié)點(diǎn)的節(jié)點(diǎn)的個(gè)數(shù),PG(Vj, u)為數(shù)據(jù)節(jié)點(diǎn)Vj傳播到數(shù)據(jù)節(jié)點(diǎn)u的網(wǎng)頁排名PR值,根據(jù)PG(Vj, u) = PR(U)確定,PG(Vj, V)為數(shù)據(jù)節(jié)點(diǎn)Vj傳播到數(shù)據(jù)節(jié)點(diǎn)v的網(wǎng)頁排名PR值,根據(jù)PG(Vj,v) = PR(V)確定,其中,PR(U)和PR(V)根據(jù)公式(2)確定:
[0081]
m.H,,慨 FG
[0082]其中,Y為加權(quán)系數(shù),in (W)為與所述數(shù)據(jù)節(jié)點(diǎn)w的入邊對應(yīng)的相鄰節(jié)點(diǎn)集合,OUt(W)為與數(shù)據(jù)節(jié)點(diǎn)W的出邊對應(yīng)的相鄰節(jié)點(diǎn)集合,1ut(W) I為所述出邊對應(yīng)的相鄰節(jié)點(diǎn)集合中包含的節(jié)點(diǎn)個(gè)數(shù);
[0083]所述第三確定模塊14,具體用于:
[0084]從所述各第二相鄰節(jié)點(diǎn)中確定出第三相鄰節(jié)點(diǎn),所述第三相鄰節(jié)點(diǎn)與所述數(shù)據(jù)節(jié)點(diǎn)的相似性度量值大于所述各第二相鄰節(jié)點(diǎn)中除所述第三相鄰節(jié)點(diǎn)之外的其他第二相鄰節(jié)點(diǎn)與所述數(shù)據(jù)節(jié)點(diǎn)的相似性度量值;
[0085]確定所述數(shù)據(jù)節(jié)點(diǎn)的標(biāo)簽與所述第三相鄰節(jié)點(diǎn)的標(biāo)簽相同;
[0086]所述處理模塊15,還用于:
[0087]將所述待處理數(shù)據(jù)中的各個(gè)社區(qū)按照社區(qū)規(guī)模從大到小的順序進(jìn)行排序,所述社區(qū)規(guī)模為所述社區(qū)中包含的數(shù)據(jù)節(jié)點(diǎn)的個(gè)數(shù);
[0088]根據(jù)各處理主機(jī)的預(yù)設(shè)存儲順序以及所述各個(gè)社區(qū)的排序,分別確定所述各個(gè)社區(qū)應(yīng)該存入的處理主機(jī),所述存儲順序是指所述各處理主機(jī)存儲所述各個(gè)社區(qū)的先后順序;
[0089]將所述各個(gè)社區(qū)依次存入對應(yīng)的各處理主機(jī)中;
[0090]所述系統(tǒng)還包括第四確定模塊21,用于:
[0091]分別以所述各個(gè)社區(qū)中的每個(gè)社區(qū)作為待處理社區(qū),確定所述待處理社區(qū)中包含的數(shù)據(jù)節(jié)點(diǎn)分別與所述各處理主機(jī)中的每個(gè)處理主機(jī)中預(yù)先保存的數(shù)據(jù)節(jié)點(diǎn)間的匹配程度;
[0092]從所述各處理主機(jī)中確定與所述待處理社區(qū)對應(yīng)的目標(biāo)處理主機(jī),所述目標(biāo)處理主機(jī)中預(yù)先保存的數(shù)據(jù)節(jié)點(diǎn)與所述待處理社區(qū)中包含的數(shù)據(jù)節(jié)點(diǎn)的匹配程度最高;
[0093]確定所述目標(biāo)處理主機(jī)與根據(jù)所述各處理主機(jī)的預(yù)設(shè)存儲順序以及所述各個(gè)社區(qū)的排序確定的所述待處理社區(qū)應(yīng)該存入的處理主機(jī)是否相同;
[0094]所述處理模塊15,還用于:
[0095]若所述第四確定模塊21確定所述目標(biāo)處理主機(jī)與根據(jù)所述各處理主機(jī)的預(yù)設(shè)存儲順序以及所述各個(gè)社區(qū)的排序確定的所述待處理社區(qū)應(yīng)該存入的處理主機(jī)相同,則將所述待處理社區(qū)存入所述應(yīng)該存入的處理主機(jī)中;
[0096]若所述第四確定模塊21確定所述目標(biāo)處理主機(jī)與根據(jù)所述各處理主機(jī)的預(yù)設(shè)存儲順序以及所述各個(gè)社區(qū)的排序確定的所述待處理社區(qū)應(yīng)該存入的處理主機(jī)不相同,則將所述待處理社區(qū)存入所述目標(biāo)處理主機(jī)中。
[0097]本實(shí)施例的系統(tǒng)可以用于執(zhí)行圖2所示方法實(shí)施例的技術(shù)方案,其實(shí)現(xiàn)原理和技術(shù)效果類似,此處不再贅述。
[0098]本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過程序指令相關(guān)的硬件來完成,前述的程序可以存儲于一計(jì)算機(jī)可讀取存儲介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲介質(zhì)包括:R0M、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0099]最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。
【權(quán)利要求】
1.一種分布式圖計(jì)算系統(tǒng)數(shù)據(jù)切分方法,其特征在于,包括: 根據(jù)預(yù)設(shè)算法,確定待處理數(shù)據(jù)中的每個(gè)數(shù)據(jù)節(jié)點(diǎn)與自身的各第一相鄰節(jié)點(diǎn)間的相似性度量值; 根據(jù)所述各第一相鄰節(jié)點(diǎn)的標(biāo)簽,獲得每個(gè)所述標(biāo)簽在所述各第一相鄰節(jié)點(diǎn)中的出現(xiàn)次數(shù),所述標(biāo)簽包括節(jié)點(diǎn)標(biāo)識ID ; 根據(jù)所述出現(xiàn)次數(shù),確定所述各第一相鄰節(jié)點(diǎn)的標(biāo)簽中是否存在出現(xiàn)次數(shù)相同的至少兩個(gè)標(biāo)簽; 若存在,則確定與所述至少兩個(gè)標(biāo)簽分別對應(yīng)的各第二相鄰節(jié)點(diǎn),并根據(jù)所述數(shù)據(jù)節(jié)點(diǎn)與所述各第二相鄰節(jié)點(diǎn)間的相似性度量值,確定所述數(shù)據(jù)節(jié)點(diǎn)的標(biāo)簽; 將所述待處理數(shù)據(jù)中具有同一標(biāo)簽的數(shù)據(jù)節(jié)點(diǎn)劃分到同一社區(qū),并將屬于同一社區(qū)的數(shù)據(jù)節(jié)點(diǎn)存儲在同一處理主機(jī)中。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)預(yù)設(shè)算法,確定待處理數(shù)據(jù)中的每個(gè)數(shù)據(jù)節(jié)點(diǎn)與自身的各第一相鄰節(jié)點(diǎn)間的相似性度量值,包括: 根據(jù)公式(I)計(jì)算所述待處理數(shù)據(jù)中的數(shù)據(jù)節(jié)點(diǎn)u與所述數(shù)據(jù)節(jié)點(diǎn)u的相鄰節(jié)點(diǎn)V間的相似性度量值A(chǔ)PS (U,V):APS(u, V’) = Yht mm(PG(vru), PG(vrv)),u, v’e V,Vj e (δ(ν) η δ(ι?)( I ) 其中,V為所述數(shù)據(jù)節(jié)點(diǎn)u的各第一相鄰節(jié)點(diǎn)中的任一個(gè)數(shù)據(jù)節(jié)點(diǎn),δ (V)為數(shù)據(jù)節(jié)點(diǎn)V的各第一相鄰節(jié)點(diǎn),V為所述待處理數(shù)據(jù)中所有數(shù)據(jù)節(jié)點(diǎn)的集合,δ (u)為所述數(shù)據(jù)節(jié)點(diǎn)U的各第一相鄰節(jié)點(diǎn),η為同時(shí)屬于數(shù)據(jù)節(jié)點(diǎn)V的各第一相鄰節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)U的各第一相鄰節(jié)點(diǎn)的節(jié)點(diǎn)的個(gè)數(shù),PG (Vj,u)為數(shù)據(jù)節(jié)點(diǎn)Vj傳播到數(shù)據(jù)節(jié)點(diǎn)u的網(wǎng)頁排名PR值,根據(jù)PG(vj, u) = PR(U)確定,PG(Vj, V)為數(shù)據(jù)節(jié)點(diǎn)V」傳播到數(shù)據(jù)節(jié)點(diǎn)v的網(wǎng)頁排名PR值,根據(jù)PG(Vj, v) = PR(V)確定,其中,PR(U)和PR(V)根據(jù)公式(2)確定:釋)=(1-^⑵ 其中,Y為加權(quán)系數(shù),in(w)為與所述數(shù)據(jù)節(jié)點(diǎn)w的入邊對應(yīng)的相鄰節(jié)點(diǎn)集合,out(w)為與數(shù)據(jù)節(jié)點(diǎn)w的出邊對應(yīng)的相鄰節(jié)點(diǎn)集合,out (w) I為所述出邊對應(yīng)的相鄰節(jié)點(diǎn)集合中包含的節(jié)點(diǎn)個(gè)數(shù)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)所述數(shù)據(jù)節(jié)點(diǎn)與所述各第二相鄰節(jié)點(diǎn)間的相似性度量值,確定所述數(shù)據(jù)節(jié)點(diǎn)的標(biāo)簽,包括: 從所述各第二相鄰節(jié)點(diǎn)中確定出第三相鄰節(jié)點(diǎn),所述第三相鄰節(jié)點(diǎn)與所述數(shù)據(jù)節(jié)點(diǎn)的相似性度量值大于所述各第二相鄰節(jié)點(diǎn)中除所述第三相鄰節(jié)點(diǎn)之外的其他第二相鄰節(jié)點(diǎn)與所述數(shù)據(jù)節(jié)點(diǎn)的相似性度量值; 確定所述數(shù)據(jù)節(jié)點(diǎn)的標(biāo)簽與所述第三相鄰節(jié)點(diǎn)的標(biāo)簽相同。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述出現(xiàn)次數(shù),確定所述各第一相鄰節(jié)點(diǎn)的所述標(biāo)簽中是否存在出現(xiàn)次數(shù)相同的至少兩個(gè)標(biāo)簽之后,還包括: 若不存在,則確定所述數(shù)據(jù)節(jié)點(diǎn)的標(biāo)簽與所述各第一相鄰節(jié)點(diǎn)的標(biāo)簽中出現(xiàn)次數(shù)最多的標(biāo)簽相同。
5.根據(jù)權(quán)利要求1至4中任一項(xiàng)所述的方法,其特征在于,所述將所述待處理數(shù)據(jù)中具有同一標(biāo)簽的數(shù)據(jù)節(jié)點(diǎn)劃分到同一社區(qū)之后,還包括: 將所述待處理數(shù)據(jù)中的各個(gè)社區(qū)按照社區(qū)規(guī)模從大到小的順序進(jìn)行排序,所述社區(qū)規(guī)模為所述社區(qū)中包含的數(shù)據(jù)節(jié)點(diǎn)的個(gè)數(shù); 所述將屬于同一社區(qū)的數(shù)據(jù)節(jié)點(diǎn)存儲在同一處理主機(jī)中,包括: 根據(jù)各處理主機(jī)的預(yù)設(shè)存儲順序以及所述各個(gè)社區(qū)的排序,分別確定所述各個(gè)社區(qū)應(yīng)該存入的處理主機(jī),所述存儲順序是指所述各處理主機(jī)存儲所述各個(gè)社區(qū)的先后順序;將所述各個(gè)社區(qū)依次存入對應(yīng)的各處理主機(jī)中。
6.根據(jù)權(quán)利要求5所述的方法,其特征在于,所述根據(jù)各處理主機(jī)的預(yù)設(shè)存儲順序以及所述各個(gè)社區(qū)的排序,分別確定所述各個(gè)社區(qū)應(yīng)該存入的處理主機(jī)之后,還包括: 分別以所述各個(gè)社區(qū)中的每個(gè)社區(qū)作為待處理社區(qū),確定所述待處理社區(qū)中包含的數(shù)據(jù)節(jié)點(diǎn)分別與所述各處理主機(jī)中的每個(gè)處理主機(jī)中預(yù)先保存的數(shù)據(jù)節(jié)點(diǎn)間的匹配程度; 從所述各處理主機(jī)中確定與所述待處理社區(qū)對應(yīng)的目標(biāo)處理主機(jī),所述目標(biāo)處理主機(jī)中預(yù)先保存的數(shù)據(jù)節(jié)點(diǎn)與所述待處理社區(qū)中包含的數(shù)據(jù)節(jié)點(diǎn)的匹配程度最高; 確定所述目標(biāo)處理主機(jī)與根據(jù)所述各處理主機(jī)的預(yù)設(shè)存儲順序以及所述各個(gè)社區(qū)的排序確定的所述待處理社區(qū)應(yīng)該存入的處理主機(jī)是否相同; 若相同,則將所述待處理社區(qū)存入所述應(yīng)該存入的處理主機(jī)中。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述確定所述目標(biāo)處理主機(jī)與根據(jù)所述各處理主機(jī)的預(yù)設(shè)存儲順序以及所述各個(gè)社區(qū)的排序確定的所述待處理社區(qū)應(yīng)該存入的處理主機(jī)是否相同之后,還包括: 若不相同,則將所述待處理社區(qū)存入所述目標(biāo)處理主機(jī)中。
8.根據(jù)權(quán)利要求6或7所述的方法,其特征在于,所述確定所述待處理社區(qū)中包含的數(shù)據(jù)節(jié)點(diǎn)分別與所述各處理主機(jī)中的每個(gè)處理主機(jī)中預(yù)先保存的數(shù)據(jù)節(jié)點(diǎn)間的匹配程度,包括: 確定每個(gè)所述匹配程度為所述待處理社區(qū)中包含的數(shù)據(jù)節(jié)點(diǎn)與對應(yīng)的每個(gè)處理主機(jī)中預(yù)先保存的數(shù)據(jù)節(jié)點(diǎn)間包含的相同數(shù)據(jù)節(jié)點(diǎn)的個(gè)數(shù)。
9.一種分布式圖計(jì)算系統(tǒng)數(shù)據(jù)切分系統(tǒng),其特征在于,包括: 第一確定模塊,用于根據(jù)預(yù)設(shè)算法,確定待處理數(shù)據(jù)中的每個(gè)數(shù)據(jù)節(jié)點(diǎn)與自身的各第一相鄰節(jié)點(diǎn)間的相似性度量值; 獲取模塊,用于根據(jù)所述各第一相鄰節(jié)點(diǎn)的標(biāo)簽,獲得每個(gè)所述標(biāo)簽在所述各第一相鄰節(jié)點(diǎn)中的出現(xiàn)次數(shù),所述標(biāo)簽包括節(jié)點(diǎn)標(biāo)識ID ; 第二確定模塊,用于根據(jù)所述出現(xiàn)次數(shù),確定所述各第一相鄰節(jié)點(diǎn)的標(biāo)簽中是否存在出現(xiàn)次數(shù)相同的至少兩個(gè)標(biāo)簽; 第三確定模塊,用于若存在,則確定與所述至少兩個(gè)標(biāo)簽分別對應(yīng)的各第二相鄰節(jié)點(diǎn),并根據(jù)所述數(shù)據(jù)節(jié)點(diǎn)與所述各第二相鄰節(jié)點(diǎn)間的相似性度量值,確定所述數(shù)據(jù)節(jié)點(diǎn)的標(biāo)簽; 處理模塊,用于將所述待處理數(shù)據(jù)中具有同一標(biāo)簽的數(shù)據(jù)節(jié)點(diǎn)劃分到同一社區(qū),并將屬于同一社區(qū)的數(shù)據(jù)節(jié)點(diǎn)存儲在同一處理主機(jī)中。
10.根據(jù)權(quán)利要求9所述的系統(tǒng),其特征在于,所述第一確定模塊,具體用于: 根據(jù)公式(I)計(jì)算所述待處理數(shù)據(jù)中的數(shù)據(jù)節(jié)點(diǎn)u與所述數(shù)據(jù)節(jié)點(diǎn)u的相鄰節(jié)點(diǎn)V間的相似性度量值A(chǔ)PS (u,V):APS(", V) = Y^1 Pnin(V)G0.,.’〃),PGivj, v)),", ve V, Vi e (^(v) η S(u))( I ) 其中,V為所述數(shù)據(jù)節(jié)點(diǎn)u的各第一相鄰節(jié)點(diǎn)中的任一個(gè)數(shù)據(jù)節(jié)點(diǎn),δ (V)為數(shù)據(jù)節(jié)點(diǎn)V的各第一相鄰節(jié)點(diǎn),V為所述待處理數(shù)據(jù)中所有數(shù)據(jù)節(jié)點(diǎn)的集合,δ (u)為所述數(shù)據(jù)節(jié)點(diǎn)U的各第一相鄰節(jié)點(diǎn),η為同時(shí)屬于數(shù)據(jù)節(jié)點(diǎn)V的各第一相鄰節(jié)點(diǎn)和數(shù)據(jù)節(jié)點(diǎn)U的各第一相鄰節(jié)點(diǎn)的節(jié)點(diǎn)的個(gè)數(shù),PG (Vj,u)為數(shù)據(jù)節(jié)點(diǎn)Vj傳播到數(shù)據(jù)節(jié)點(diǎn)u的網(wǎng)頁排名PR值,根據(jù)PG(Vj, u) = PR(U)確定,PG(Vj, V)為數(shù)據(jù)節(jié)點(diǎn)V」傳播到數(shù)據(jù)節(jié)點(diǎn)v的網(wǎng)頁排名PR值,根據(jù)PG(Vj, v) = PR(V)確定,其中,PR(U)和PR(V)根據(jù)公式(2)確定:釋)=(丨—W⑶ 其中,Y為加權(quán)系數(shù),in(w)為與所述數(shù)據(jù)節(jié)點(diǎn)w的入邊對應(yīng)的相鄰節(jié)點(diǎn)集合,out(w)為與數(shù)據(jù)節(jié)點(diǎn)w的出邊對應(yīng)的相鄰節(jié)點(diǎn)集合,out (w) I為所述出邊對應(yīng)的相鄰節(jié)點(diǎn)集合中包含的節(jié)點(diǎn)個(gè)數(shù); 所述第三確定模塊,具體用于: 從所述各第二相鄰節(jié)點(diǎn)中確定出第三相鄰節(jié)點(diǎn),所述第三相鄰節(jié)點(diǎn)與所述數(shù)據(jù)節(jié)點(diǎn)的相似性度量值大于所述各第二相鄰節(jié)點(diǎn)中除所述第三相鄰節(jié)點(diǎn)之外的其他第二相鄰節(jié)點(diǎn)與所述數(shù)據(jù)節(jié)點(diǎn)的相似性度量值; 確定所述數(shù)據(jù)節(jié)點(diǎn)的標(biāo)簽與所述第三相鄰節(jié)點(diǎn)的標(biāo)簽相同; 所述第三確定模塊,還用于: 若不存在,則確定所述數(shù)據(jù)節(jié)點(diǎn)的標(biāo)簽與所述各第一相鄰節(jié)點(diǎn)的標(biāo)簽中出現(xiàn)次數(shù)最多的標(biāo)簽相同; 所述處理模塊,還用于: 將所述待處理數(shù)據(jù)中的各個(gè)社區(qū)按照社區(qū)規(guī)模從大到小的順序進(jìn)行排序,所述社區(qū)規(guī)模為所述社區(qū)中包含的數(shù)據(jù)節(jié)點(diǎn)的個(gè)數(shù); 根據(jù)各處理主機(jī)的預(yù)設(shè)存儲順序以及所述各個(gè)社區(qū)的排序,分別確定所述各個(gè)社區(qū)應(yīng)該存入的處理主機(jī),所述存儲順序是指所述各處理主機(jī)存儲所述各個(gè)社區(qū)的先后順序;將所述各個(gè)社區(qū)依次存入對應(yīng)的各處理主機(jī)中; 所述系統(tǒng)還包括第四確定模塊,用于: 分別以所述各個(gè)社區(qū)中的每個(gè)社區(qū)作為待處理社區(qū),確定所述待處理社區(qū)中包含的數(shù)據(jù)節(jié)點(diǎn)分別與所述各處理主機(jī)中的每個(gè)處理主機(jī)中預(yù)先保存的數(shù)據(jù)節(jié)點(diǎn)間的匹配程度; 從所述各處理主機(jī)中確定與所述待處理社區(qū)對應(yīng)的目標(biāo)處理主機(jī),所述目標(biāo)處理主機(jī)中預(yù)先保存的數(shù)據(jù)節(jié)點(diǎn)與所述待處理社區(qū)中包含的數(shù)據(jù)節(jié)點(diǎn)的匹配程度最高; 確定所述目標(biāo)處理主機(jī)與根據(jù)所述各處理主機(jī)的預(yù)設(shè)存儲順序以及所述各個(gè)社區(qū)的排序確定的所述待處理社區(qū)應(yīng)該存入的處理主機(jī)是否相同; 所述處理模塊,還用于: 若相同,則將所述待處理社區(qū)存入所述應(yīng)該存入的處理主機(jī)中; 若不相同,則將所述待處理社區(qū)存入所述目標(biāo)處理主機(jī)中。
【文檔編號】G06F17/30GK104281664SQ201410496089
【公開日】2015年1月14日 申請日期:2014年9月24日 優(yōu)先權(quán)日:2014年9月24日
【發(fā)明者】李博, 宋騏, 李建欣, 于偉仁 申請人:北京航空航天大學(xué)