本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,特別涉及一種分布式大數(shù)據(jù)處理方法。
背景技術(shù):
大數(shù)據(jù)是指需要新處理模式才能具有更強(qiáng)的決策力、洞察力和流程優(yōu)化能力的海量、高增長率和多樣化的信息資產(chǎn)。在維克托·邁爾-舍恩伯格及肯尼斯·庫克耶編寫的《大數(shù)據(jù)時(shí)代》書中,大數(shù)據(jù)處理是指不用隨機(jī)分析法、統(tǒng)計(jì)方法,而是采用所有數(shù)據(jù)同時(shí)進(jìn)行分析處理。這樣大數(shù)據(jù)分析工作如果采用分布式計(jì)算架構(gòu)將會(huì)比單臺計(jì)算機(jī)花費(fèi)時(shí)間短。它的特色是利用云存儲(chǔ)技術(shù)、分布式數(shù)據(jù)庫、分布式處理,在海量數(shù)據(jù)中挖掘出有價(jià)值的信息。從海量數(shù)據(jù)中“提煉”出有價(jià)值的信息,這對數(shù)據(jù)處理能力和網(wǎng)絡(luò)架構(gòu)而言也是巨大的挑戰(zhàn)。
目前對大數(shù)據(jù)的處理有時(shí)戳分布式算法和DFS最小生成樹分布式算法兩種處理方式。對于前者,對于一個(gè)全序?qū)κ录,系統(tǒng)中的事件為接受消息后,取較大者作為新時(shí)戳。節(jié)點(diǎn)共有m個(gè),節(jié)點(diǎn)的啟動(dòng)時(shí)間為t,則算法的消息復(fù)雜度為O(mn2),時(shí)間復(fù)雜度為O(t+L)。在最壞情況下,每個(gè)節(jié)點(diǎn)順序依次操作,總復(fù)雜度至多是:O(m*mn2)+O(t+L)。該算法的問題是不同事件可能有相同時(shí)戳(并發(fā)事件),雖然可以選擇節(jié)點(diǎn)地址作為時(shí)戳的低位,但是不能通過事件的時(shí)戳判定兩事件之間是否是因果相關(guān)。而基于DFS生成樹分布算法可以判斷兩個(gè)事件之間的因果關(guān)系。
DFS生成樹分布算法,基于DFS生成樹分布算法的思想是每個(gè)節(jié)點(diǎn)均可自發(fā)喚醒,構(gòu)造一棵以自己為根的DFS生成樹。若兩棵DFS樹試圖鏈接同一節(jié)點(diǎn)時(shí),該節(jié)點(diǎn)將加入根的id較大的DFS樹。對于一個(gè)具有m條邊和n個(gè)節(jié)點(diǎn)的網(wǎng)絡(luò),自發(fā)啟動(dòng)的節(jié)點(diǎn)共有p個(gè),其中id值最大者的啟動(dòng)時(shí)間為t,則算法的消息復(fù)雜度為O(pn2),時(shí)間復(fù)雜度為O(t+m)。最壞情況下,每個(gè)節(jié)點(diǎn)均試圖以自己為根構(gòu)造一棵DFS樹,總復(fù)雜度至多是O(pn2)+O(m*n)。以上兩種梳理方法均存在數(shù)據(jù)處理效率不高的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種分布式大數(shù)據(jù)處理方法,用以解決現(xiàn)有技術(shù)中存在的問題。
一種分布式大數(shù)據(jù)處理方法,所述方法包括:
超立方體數(shù)據(jù)模型中具有n個(gè)節(jié)點(diǎn),在該數(shù)據(jù)模型中隨機(jī)選擇一個(gè)節(jié)點(diǎn)作為中心元,然后將該中心元廣播到其他節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)中的數(shù)據(jù)與該中心元的數(shù)據(jù)進(jìn)行比較,其中數(shù)據(jù)量大于所述中心元的數(shù)據(jù)的節(jié)點(diǎn)組成第一子超立方體,數(shù)據(jù)量小于或等于所述中心元的數(shù)據(jù)的節(jié)點(diǎn)組成第二子超立方體;
所述第一子超立方體與所述第二子超立方體之間互聯(lián)的兩個(gè)節(jié)點(diǎn)之間形成通信鏈路,將所述第一子超立方體和第二子超立方體之間沿第q條通信鏈路互聯(lián)的節(jié)點(diǎn)彼此互換數(shù)據(jù),則節(jié)點(diǎn)標(biāo)號的第i位為0的節(jié)點(diǎn)組成的i-1維子超立方體包含的數(shù)據(jù)都大于所述中心元中的數(shù)據(jù),節(jié)點(diǎn)標(biāo)號的第i位為1的節(jié)點(diǎn)組成的i-1維子超立方體包含剩余的數(shù)據(jù);
對每個(gè)子超立方體中的數(shù)據(jù)進(jìn)行數(shù)據(jù)處理;
對以上方法執(zhí)行d次迭代,獲得最終數(shù)據(jù)處理結(jié)果。
優(yōu)選地,所述數(shù)據(jù)處理為串行快速排序或數(shù)據(jù)查詢。
本發(fā)明的有益效果在于:隨著規(guī)模n的變化,超立方體模型分布式算法的時(shí)間復(fù)雜度明顯低于時(shí)戳分布式算法和DFS最小生成樹分布式算法的時(shí)間復(fù)雜度。當(dāng)n>k時(shí),超立方體模型分布式算法的效率明顯高于時(shí)戳分布式算法和DFS最小生成樹分布式算法的效率。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的一種分布式大數(shù)據(jù)處理方法的步驟流程圖;
圖2為超立方體的立體結(jié)構(gòu)圖;
圖3為圖2中超立方體的平面網(wǎng)狀結(jié)構(gòu)圖;
圖4為時(shí)間復(fù)雜度的變化趨勢示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
在介紹本發(fā)明的技術(shù)方案前,首先對使用到的技術(shù)術(shù)語進(jìn)行解釋:
節(jié)點(diǎn):節(jié)點(diǎn)是指互聯(lián)的處理服務(wù)器,連接后形成一個(gè)超立體結(jié)構(gòu),根據(jù)問題的大小該超立體結(jié)構(gòu)可以擴(kuò)展至不同維度。
數(shù)據(jù):數(shù)據(jù)是指需要分布式處理的數(shù)據(jù),可能是大批量需要排序、查找的數(shù)據(jù)。
數(shù)組:由于每個(gè)節(jié)點(diǎn)都有一個(gè)唯一的標(biāo)號,這些標(biāo)號形成一個(gè)數(shù)組。
參照圖1,本發(fā)明實(shí)施例提供了一種分布式大數(shù)據(jù)處理方法,該方法包括:
步驟100,對于一個(gè)具有m條邊和n個(gè)節(jié)點(diǎn)的超立方體數(shù)據(jù)模型,如圖2所示,其中自發(fā)啟動(dòng)的節(jié)點(diǎn)有p個(gè),在該數(shù)據(jù)模型中隨機(jī)選擇一個(gè)節(jié)點(diǎn)作為中心元,然后將該中心元廣播到其他節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)中的數(shù)據(jù)與該中心元的數(shù)據(jù)進(jìn)行比較,其中數(shù)據(jù)量大于所述中心元的數(shù)據(jù)的節(jié)點(diǎn)組成第一子超立方體,數(shù)據(jù)量小于或等于所述中心元的數(shù)據(jù)的節(jié)點(diǎn)組成第二超立方體,這樣就把一個(gè)超立方體分解成了大小兩個(gè)子超立方體;
步驟110,所述第一子超立方體與所述第二子超立方體之間互聯(lián)的兩個(gè)節(jié)點(diǎn)之間形成通信鏈路,將所述第一子超立方體和第二子超立方體之間沿第q條通信鏈路互聯(lián)的節(jié)點(diǎn)彼此互換數(shù)據(jù),則節(jié)點(diǎn)標(biāo)號的第i位為0的節(jié)點(diǎn)組成的i-1維子超立方體包含的數(shù)據(jù)都大于所述中心元中的數(shù)據(jù),節(jié)點(diǎn)標(biāo)號的第i位為1的節(jié)點(diǎn)組成的i-1維子超立方體包含剩余的數(shù)據(jù),每個(gè)節(jié)點(diǎn)的節(jié)點(diǎn)標(biāo)號如圖3所示;
步驟120,對每個(gè)子超立方體中的數(shù)據(jù)進(jìn)行數(shù)據(jù)處理,在本實(shí)施例中,所述數(shù)據(jù)處理包括串行快速排序或數(shù)據(jù)查詢等;
步驟130,對以上步驟100~120執(zhí)行d次迭代,即前一次的處理結(jié)果作為后一次處理的數(shù)據(jù)基礎(chǔ),獲得最終數(shù)據(jù)處理結(jié)果。
在以上處理方法中,如果第一次選擇的中心元恰好是最小或最大元素,那么,在第一次分解后,所有的元素都將集中到一個(gè)i-1維子超立方體中,而另一個(gè)i-1維子超立方體為空。在后續(xù)的工作中,最多只有一半節(jié)點(diǎn)繼續(xù)工作,而另一半則空閑。理想情況是每次分解處理都有大小為n/p的子數(shù)組。
假設(shè),在d次分解的每一次分解中,節(jié)點(diǎn)P1中存儲(chǔ)的子數(shù)組的大小都增加k倍,其中1≤k≤2。于是,d次分解中所花費(fèi)的總時(shí)間為
當(dāng)k>1,總的時(shí)間為O((kd-1)n/p)。由于p=2d,上式可以化簡為O((plog2k-1)n/p)。
當(dāng)k=2,則P1分解所用的時(shí)間為O(n-n/p),d次分解后,P1上的子數(shù)組大小為2dn/p。
當(dāng)k=1.1,則分解所用的時(shí)間為O((p0.138-1)n/p),本地排序的子數(shù)組大小為n/p0.138。
當(dāng)k=1,則分解所用的時(shí)間為O((nlog2p)/p),本地排序的子數(shù)組大小為n/p,為理想情況。由此可見,k越大算法的性能越差,d次分解總的時(shí)間變化趨勢如圖4所示。
隨著規(guī)模n的變化,超立方體模型分布式算法的時(shí)間復(fù)雜度明顯低于時(shí)戳分布式算法和DFS最小生成樹分布式算法的時(shí)間復(fù)雜度。當(dāng)n>k時(shí),超立方體模型分布式算法的效率明顯高于時(shí)戳分布式算法和DFS最小生成樹分布式算法的效率。超立方體模型分布式算法的加速比在某個(gè)點(diǎn)m之前,加速比明顯低于時(shí)戳分布式算法和DFS最小生成樹分布式算法的加速比,但是當(dāng)n大于k時(shí),加速比低于其余兩種算法。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明的實(shí)施例可提供為方法、系統(tǒng)、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實(shí)施例的方法、設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合??商峁┻@些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備上,使得在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
盡管已描述了本發(fā)明的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對這些實(shí)施例作出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明范圍的所有變更和修改。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。