本發(fā)明涉及社區(qū)發(fā)現(xiàn)算法,具體涉及一種基于Hadoop平臺的社區(qū)發(fā)現(xiàn)算法。
背景技術(shù):
::社區(qū)是指網(wǎng)絡(luò)中滿足同一類型的節(jié)點(diǎn)及這些節(jié)點(diǎn)之間的連接構(gòu)成的子圖。在網(wǎng)絡(luò)中自動搜尋或發(fā)現(xiàn)社區(qū)具有重要的實(shí)用價(jià)值,如:社會網(wǎng)絡(luò)中的社區(qū)代表有共同興趣或相似背景的真實(shí)社會團(tuán)體;引文網(wǎng)絡(luò)中的社區(qū)代表針對同一方向的相關(guān)論文;萬維網(wǎng)中的社區(qū)就是討論相關(guān)主題的若干網(wǎng)站;生物化學(xué)網(wǎng)絡(luò)或者電子電路網(wǎng)絡(luò)中的社區(qū)則是某一類功能單元;音樂論壇中的社區(qū)可以是喜好相近的一些用戶發(fā)起的若干主題,或者興趣取向相近的用戶組成的用戶群等等。揭示和發(fā)現(xiàn)網(wǎng)絡(luò)中的社區(qū)結(jié)構(gòu),對了解網(wǎng)絡(luò)結(jié)構(gòu)與分析網(wǎng)絡(luò)特性十分重要,有助于更加有效地理解和開發(fā)這些網(wǎng)絡(luò)。社區(qū)發(fā)現(xiàn)是網(wǎng)絡(luò)分析的一種重要方法,可以發(fā)現(xiàn)網(wǎng)絡(luò)中內(nèi)部聯(lián)系緊密的社區(qū)。隨著對網(wǎng)絡(luò)性質(zhì)的物理意義和數(shù)學(xué)特性的深入研究,大量實(shí)證研究表明,許多網(wǎng)絡(luò)是異構(gòu)的,即網(wǎng)絡(luò)不是由一大批性質(zhì)完全相同的節(jié)點(diǎn)隨機(jī)地連接在一起,而是許多類型節(jié)點(diǎn)的組合,相同類型的節(jié)點(diǎn)之間存在的連接較多,不同類型節(jié)點(diǎn)之間存在的連接相對較少。因此,社區(qū)發(fā)現(xiàn)是進(jìn)行傳播分析之前必須要做的基礎(chǔ)工作,是當(dāng)前社交網(wǎng)絡(luò)研究和應(yīng)用領(lǐng)域的前沿技術(shù)。當(dāng)前社區(qū)發(fā)現(xiàn)算法有很多,但是沒有能夠適應(yīng)分布式系統(tǒng)上運(yùn)行的社區(qū)發(fā)現(xiàn)算法,如果在分布式系統(tǒng)下能夠運(yùn)行社區(qū)發(fā)現(xiàn)算法,可以提高社區(qū)發(fā)現(xiàn)的實(shí)時(shí)性。技術(shù)實(shí)現(xiàn)要素:為解決現(xiàn)有技術(shù)存在的上述問題,本發(fā)明的目的在于提供一種基于Hadoop平臺的社區(qū)發(fā)現(xiàn)算法,顯著增強(qiáng)了算法的數(shù)據(jù)處理能力,提高運(yùn)算速度。為實(shí)現(xiàn)上述目的,本發(fā)明所采用的技術(shù)方案為:一種基于Hadoop平臺的社區(qū)發(fā)現(xiàn)算法,在hadoop平臺的MapReduce架構(gòu)下實(shí)現(xiàn),包括以下四個(gè)步驟:步驟一:讀入社會網(wǎng)絡(luò)數(shù)據(jù),根據(jù)網(wǎng)絡(luò)中成員的關(guān)系,構(gòu)建一個(gè)相互連接的無向圖G,將無向圖G中的成員用節(jié)點(diǎn)n表示,成員與成員之間的關(guān)系用邊m表示;在配置有Hadoop環(huán)境的計(jì)算集群上完成數(shù)據(jù)分片,數(shù)據(jù)作為Mapper輸入;計(jì)算得到節(jié)點(diǎn)n、以及與每個(gè)節(jié)點(diǎn)有關(guān)聯(lián)的相關(guān)節(jié)點(diǎn)個(gè)數(shù)D,確定系統(tǒng)中最大相關(guān)節(jié)點(diǎn)個(gè)數(shù)Dmax,將節(jié)點(diǎn)n、相關(guān)節(jié)點(diǎn)個(gè)數(shù)D的數(shù)據(jù)存儲在數(shù)據(jù)結(jié)構(gòu)Hashtable中;步驟二:查詢步驟一的Hashtable數(shù)據(jù),計(jì)算每兩個(gè)節(jié)點(diǎn)之間的緊密度,并將緊密度作為key、邊作為value使用Context上下文對象寫出,修改Compare方法使數(shù)據(jù)按倒敘排序;Reduce過程中的key為重寫的DoubleWritable,value集合里面只包含一條數(shù)據(jù),通過迭代,將數(shù)據(jù)使用上下文對象寫出到一個(gè)文件,并再存儲一份以邊為key、以緊密度為value的Hashtable;步驟三:以步驟二寫出的文件所在目錄為輸入目錄,分割數(shù)據(jù)行為邊和緊密度兩部分,將當(dāng)前邊以靜態(tài)字符串形式存儲在程序中;任意選擇一條邊作為第一條邊,判斷邊兩端的兩個(gè)節(jié)點(diǎn)是否在節(jié)點(diǎn)列表,若在節(jié)點(diǎn)列表中,則放入當(dāng)前節(jié)點(diǎn)集,將所有與當(dāng)前節(jié)點(diǎn)集合中節(jié)點(diǎn)緊密度最大的節(jié)點(diǎn)依次加入節(jié)點(diǎn)集,直至符合要求的節(jié)點(diǎn)被全部找出,結(jié)束添加、完成一個(gè)節(jié)點(diǎn)集;對節(jié)點(diǎn)集進(jìn)行編號,以節(jié)點(diǎn)集編號為key、節(jié)點(diǎn)為value的形式使用上下文對象Context寫出;Reduce過程以節(jié)點(diǎn)集編號作為key、節(jié)點(diǎn)為value作為輸入,將數(shù)據(jù)以(節(jié)點(diǎn),節(jié)點(diǎn)集編號)的形式存儲在數(shù)據(jù)結(jié)構(gòu)Hashtable中;步驟四:根據(jù)步驟三的數(shù)據(jù),找出未加入節(jié)點(diǎn)集的節(jié)點(diǎn),將其劃入與其有聯(lián)系的相關(guān)節(jié)點(diǎn)所在節(jié)點(diǎn)集中;在Map過程將Hashtable中的社區(qū)數(shù)據(jù)一次性寫出;在Reduce過程將Map寫出的數(shù)據(jù)以(節(jié)點(diǎn)集編號,節(jié)點(diǎn))的形式寫出在HDFS文件上。所述步驟一中:節(jié)點(diǎn)n的具體計(jì)算方法為:分片數(shù)據(jù)輸入后,首先編寫繼承Mapper和Reducer的類,在Mapper類中重寫Map方法,Map方法以數(shù)據(jù)的一行以Text類的形式作為一次輸入,使用StringTokenizer分割邊關(guān)系得到節(jié)點(diǎn)n,通過將節(jié)點(diǎn)對邊的正向和反向都輸出一遍的方式用Mapper調(diào)用節(jié)點(diǎn)上下文對象Context寫出數(shù)據(jù),將無向圖轉(zhuǎn)變?yōu)橛邢驁D;相關(guān)節(jié)點(diǎn)個(gè)數(shù)的計(jì)算方法為:Map調(diào)用上下文對象Context寫出數(shù)據(jù)后,經(jīng)Shuffle過程將節(jié)點(diǎn)排序并按照(key,value)集合的形式將數(shù)據(jù)合并,Reduce通過繼承Reducer并實(shí)現(xiàn)其Reduce方法后,以一個(gè)key、多個(gè)values值的形式將數(shù)據(jù)傳入,在一個(gè)Key的Reduce過程里面包含其所有的value值,通過迭代value值來得到與這個(gè)節(jié)點(diǎn)有關(guān)聯(lián)的所有節(jié)點(diǎn)所組成的字符串,統(tǒng)計(jì)迭代次數(shù),所述迭代次數(shù)即為該節(jié)點(diǎn)的相關(guān)節(jié)點(diǎn)個(gè)數(shù)D;迭代次數(shù)最多的節(jié)點(diǎn)即為最大相關(guān)節(jié)點(diǎn)個(gè)數(shù)Dmax。所述步驟二中:節(jié)點(diǎn)間緊密度的計(jì)算方法為:以數(shù)據(jù)目錄作為輸入目錄,將邊分割成節(jié)點(diǎn)之后,查詢步驟一的Hashtable數(shù)據(jù),得到與某個(gè)節(jié)點(diǎn)的相關(guān)節(jié)點(diǎn)個(gè)數(shù)及相關(guān)節(jié)點(diǎn)列表,然后通過兩個(gè)節(jié)點(diǎn)的相關(guān)節(jié)點(diǎn)列表和相關(guān)節(jié)點(diǎn)個(gè)數(shù)計(jì)算出這兩者之間的緊密度;將緊密度作為key、邊作為value時(shí),key的數(shù)據(jù)類型DoubleWritable為重寫了Hadoop數(shù)據(jù)類型DoubleWritable的Compare方法的類;所述迭代數(shù)據(jù)的寫出文件為HDFS文件。所述步驟三中:數(shù)據(jù)分割方法為:以步驟二寫出的文件目錄為輸入目錄,在繼承了Mapper類重寫了Map方法內(nèi)每次讀入一行,把數(shù)據(jù)分割為邊、與節(jié)點(diǎn)聯(lián)系的緊密度兩部分,將當(dāng)前邊以靜態(tài)字符串形式存儲在程序中,以便于監(jiān)控模塊的查詢;節(jié)點(diǎn)集完成后,將節(jié)點(diǎn)集按照程序的靜態(tài)變量進(jìn)行編號;Reduce過程以節(jié)點(diǎn)集編號作為key,節(jié)點(diǎn)為value作為輸入,此時(shí)的value為Map過程中同key的value集合,遍歷該節(jié)點(diǎn)的集合,將數(shù)據(jù)以節(jié)點(diǎn),節(jié)點(diǎn)集編號的形式存儲在Hashtable中。本發(fā)明的進(jìn)一步改進(jìn)在于:所述步驟一、步驟二、步驟三中,待數(shù)據(jù)計(jì)算、數(shù)據(jù)存儲結(jié)束后,將Mapper類、Reducer類、以及Job所需要的參數(shù),調(diào)用方法封裝成一個(gè)運(yùn)行類。本發(fā)明的有益效果是:本發(fā)明將社區(qū)發(fā)現(xiàn)算法應(yīng)用到hadoop平臺中,顯著提高了算法的數(shù)據(jù)處理能力,將運(yùn)算規(guī)模提高到上億次,從而大幅提高了對大規(guī)模社交網(wǎng)絡(luò)的挖掘和分析能力,實(shí)時(shí)性高。本發(fā)明方法使用hadoop平臺的MapReduce架構(gòu),基于全網(wǎng)絡(luò)進(jìn)行分析和搜索,采用從社區(qū)核心向外逐漸擴(kuò)散的挖掘方式,大大提高了社區(qū)算法的效率,準(zhǔn)確度高。本發(fā)明方法對社區(qū)的核心和邊界進(jìn)行了清晰的定義,核心是基于邊的鄰里互惠度的排序,邊界是基于社區(qū)的膨脹度變化趨勢;核心確定后,就可以將社區(qū)劃分的工作合理分配給各個(gè)Map流程,從而實(shí)現(xiàn)并行的社區(qū)發(fā)現(xiàn)流程。附圖說明圖1為實(shí)施例1使用Echart繪制的力導(dǎo)向圖;圖2為實(shí)施例2使用Echart繪制的力導(dǎo)向圖。具體實(shí)施方式下面通過具體實(shí)施例對本發(fā)明作進(jìn)一步詳細(xì)說明,但實(shí)施例不是本發(fā)明保護(hù)范圍的限制。實(shí)施例1Zachary空手道俱樂部是美國一所空手道俱樂部成員構(gòu)成的社交網(wǎng)絡(luò),是在20世紀(jì)70年代初期,WayneZarchary耗時(shí)兩年時(shí)間來觀察美國一所大學(xué)中的空手道俱樂部人員之間的關(guān)系,根據(jù)他們之間的關(guān)系所建立的網(wǎng)絡(luò)。這所俱樂部由于主管和校長對是否抬高俱樂部的收費(fèi)問題而發(fā)生了矛盾,導(dǎo)致這所俱樂部實(shí)際上分裂成了以校長為核心的和以主管為核心的兩個(gè)小俱樂部?;贖adoop平臺的社區(qū)發(fā)現(xiàn)算法,其具體計(jì)算過程為:步驟一:讀入網(wǎng)絡(luò)數(shù)據(jù),構(gòu)建Zachary空手道俱樂部的無向圖G。將無向圖G中的成員用節(jié)點(diǎn)n表示,成員與成員之間的關(guān)系用邊m表示;在配置有Hadoop環(huán)境的計(jì)算集群上完成數(shù)據(jù)分片,數(shù)據(jù)作為Mapper輸入,表1-1表示Mapper的輸入。表1-1步驟一Mapper輸入數(shù)據(jù)節(jié)點(diǎn)ID與其關(guān)聯(lián)的節(jié)點(diǎn)ID21313241424351617175768182838491931031111151161211311341411421431441761771811822012022212222624262528328242825293302430273123193213225322632293333393315331633193321332333243330333133323493410341434153416341934203421342334243427342834293430343134323433由表1-1看出,系統(tǒng)中共包含34個(gè)節(jié)點(diǎn)n,78條邊m;計(jì)算與某節(jié)點(diǎn)有關(guān)聯(lián)的相關(guān)節(jié)點(diǎn)個(gè)數(shù)D,將節(jié)點(diǎn)n、相關(guān)節(jié)點(diǎn)個(gè)數(shù)D的數(shù)據(jù)存儲在數(shù)據(jù)結(jié)構(gòu)Hashtable中,見表1-2。通過表1-2看出,系統(tǒng)中最大相關(guān)節(jié)點(diǎn)個(gè)數(shù)Dmax=10。表1-2步驟一Hashtable存儲數(shù)據(jù)節(jié)點(diǎn)ID節(jié)點(diǎn)的相關(guān)節(jié)點(diǎn)個(gè)數(shù)D31029326461459524531430484284746411329326353253203192182172162152132102272232222212121步驟二:查詢步驟一的Hashtable數(shù)據(jù),計(jì)算每兩個(gè)節(jié)點(diǎn)之間的緊密度,并將緊密度作為key、邊作為value使用Context上下文對象寫出,修改Compare方法使數(shù)據(jù)按倒敘排序,所述數(shù)據(jù)如表1-3所示;表1-3步驟二倒敘排序后的數(shù)據(jù)表緊密度邊1.0134634,330.6533822,10.4413734,10.4124773,10.4021574,20.3864714,30.3629418,40.3538913,20.33352914,40.2967658,20.284518,30.2845114,20.27470614,30.2633,90.2452947,60.2452948,10.24161814,10.24161834,300.23837434,240.22176530,240.22176531,90.1704289,30.16686333,300.16686333,310.16384633,240.159025,10.1590211,10.1570596,10.1570597,10.15532934,310.15379134,90.15241534,320.12764717,60.12764717,70.12764730,270.12764711,50.12764726,250.1129417,50.11294111,60.10411813,40.09823528,240.09823532,250.09823532,260.09823532,290.09088218,20.09088222,20.08843120,20.08486633,150.08486633,160.08486633,190.08486633,210.08486633,230.08058813,10.08058818,10.08058822,10.08058833,320.07985320,10.07985334,150.07985334,160.07985334,190.07985334,210.07985334,230.07985334,270.07920434,290.0786279,10.07862734,280.07811133,30.0110,30.0112,10.0126,240.0128,30.0128,250.0129,30.0131,20.0132,10.0134,100.0134,140.0134,20Reduce過程中的key為重寫的DoubleWritable,value集合里面只包含一條數(shù)據(jù),通過迭代,將數(shù)據(jù)使用上下文對象寫出到HDFS文件,并再存儲一份以邊為key、以邊的緊密度為value的Hashtable,如表1-4所示;表1-4步驟二Hashtable存儲數(shù)據(jù)邊緊密度34,331.013462,10.6533824,10.4413733,10.4124774,20.4021574,30.3864718,40.3629413,20.35389114,40.3335298,20.2967658,30.2845114,20.2845114,30.27470633,90.267,60.2452948,10.24529414,10.24161834,300.24161834,240.23837430,240.22176531,90.2217659,30.17042833,300.16686333,310.16686333,240.1638465,10.1590211,10.159026,10.1570597,10.15705934,310.15532934,90.15379134,320.15241517,60.12764717,70.12764730,270.12764711,50.12764726,250.1276477,50.11294111,60.11294113,40.10411828,240.09823532,250.09823532,260.09823532,290.09823518,20.09088222,20.09088220,20.08843133,150.08486633,160.08486633,190.08486633,210.08486633,230.08486613,10.08058818,10.08058822,10.08058833,320.08058820,10.07985334,150.07985334,160.07985334,190.07985334,210.07985334,230.07985334,270.07985334,290.0792049,10.07862734,280.07862733,30.07811110,30.0112,10.0126,240.0128,30.0128,250.0129,30.0131,20.0132,10.0134,100.0134,140.0134,200.01步驟三:以步驟二寫出的表四文件所在目錄為輸入目錄,分割數(shù)據(jù)行為節(jié)點(diǎn)邊和強(qiáng)度兩部分,將當(dāng)前邊以靜態(tài)字符串形式存儲在程序中;從第一條邊開始選擇一條邊,判斷邊兩端的兩個(gè)節(jié)點(diǎn)是否在節(jié)點(diǎn)列表,若在節(jié)點(diǎn)列表中,則放入當(dāng)前節(jié)點(diǎn)集,依次將所有與當(dāng)前節(jié)點(diǎn)集合中的節(jié)點(diǎn)緊密度最大的節(jié)點(diǎn)依次加入節(jié)點(diǎn)集,當(dāng)沒有符合要求的節(jié)點(diǎn)時(shí),結(jié)束添加、完成一個(gè)節(jié)點(diǎn)集;對節(jié)點(diǎn)集編號,以節(jié)點(diǎn)集編號為key、節(jié)點(diǎn)為value的形式使用上下文對象Context寫出;Reduce過程以節(jié)點(diǎn)集編號作為key、節(jié)點(diǎn)為value作為輸入,將數(shù)據(jù)以(節(jié)點(diǎn),節(jié)點(diǎn)集編號)的形式存儲在數(shù)據(jù)結(jié)構(gòu)Hashtable中,如表1-5所示;表1-5步驟三Hashtable存儲數(shù)據(jù)節(jié)點(diǎn)ID節(jié)點(diǎn)集ID340330903103002403202702902801902302101501602502601002111413181141131221181201111511011217262172步驟四:根據(jù)步驟三的數(shù)據(jù),找出未加入節(jié)點(diǎn)集的節(jié)點(diǎn),將其劃入與其有聯(lián)系的相關(guān)節(jié)點(diǎn)所在節(jié)點(diǎn)集中;在Map過程將Hashtable中的社區(qū)數(shù)據(jù)一次性寫出;在Reduce過程將Map寫出的數(shù)據(jù)以(節(jié)點(diǎn)集編號,節(jié)點(diǎn))的形式寫出在HDFS文件上,如表1-6所示。表1-6社區(qū)劃分結(jié)果表社區(qū)劃分ID節(jié)點(diǎn)ID122、18、13、14、11、12、3、2、20、10、1、5、4、826、7、17019、23、15、33、24、25、16、34、26、27、28、29、21、10、30、32、31、9經(jīng)算法劃分后,將該社交網(wǎng)絡(luò)分成了3個(gè)社區(qū)。其中,節(jié)點(diǎn)1為主管,節(jié)點(diǎn)33為校長;社區(qū)1為主管社區(qū),社區(qū)2、0為校長社區(qū)。實(shí)施例2本實(shí)施例社區(qū)是一個(gè)極端稀疏網(wǎng)絡(luò)社區(qū)。如圖2所示。基于Hadoop平臺的社區(qū)發(fā)現(xiàn)算法,其具體計(jì)算過程為:步驟一:讀入網(wǎng)絡(luò)數(shù)據(jù),構(gòu)建該社區(qū)的無向圖G。將無向圖G中的成員用節(jié)點(diǎn)n表示,成員與成員之間的關(guān)系用邊m表示;在配置有Hadoop環(huán)境的計(jì)算集群上完成數(shù)據(jù)分片,數(shù)據(jù)作為Mapper輸入,表2-1表示Mapper的輸入。表2-1步驟一Mapper輸入數(shù)據(jù)節(jié)點(diǎn)ID與其關(guān)聯(lián)的節(jié)點(diǎn)ID12142325364547565869611788910111012101310141015101617181819由表2-1看出,系統(tǒng)中共包含19個(gè)節(jié)點(diǎn)n,21條邊m;計(jì)算與某節(jié)點(diǎn)有關(guān)聯(lián)的相關(guān)節(jié)點(diǎn)個(gè)數(shù)D,將節(jié)點(diǎn)n、相關(guān)節(jié)點(diǎn)個(gè)數(shù)D的數(shù)據(jù)存儲在數(shù)據(jù)結(jié)構(gòu)Hashtable中,見表2-2。通過表2-2看出,系統(tǒng)中最大相關(guān)節(jié)點(diǎn)個(gè)數(shù)Dmax=6。表2-2步驟一Hashtable存儲數(shù)據(jù)節(jié)點(diǎn)ID節(jié)點(diǎn)的相關(guān)節(jié)點(diǎn)個(gè)數(shù)D122332435464728392106112121131141151161171182191步驟二:查詢步驟一的Hashtable數(shù)據(jù),計(jì)算每兩個(gè)節(jié)點(diǎn)之間的緊密度,并將緊密度作為key、邊作為value使用Context上下文對象寫出,修改Compare方法使數(shù)據(jù)按倒敘排序,所述數(shù)據(jù)如表2-3所示;表2-3步驟二倒敘排序后的數(shù)據(jù)表緊密度邊0.011,20.011,40.012,30.012,50.013,60.014,50.014,70.015,60.015,80.016,90.016,110.017,80.018,90.0110,110.0110,120.0110,130.0110,140.0110,150.0110,160.0117,180.0118,19Reduce過程中的key為重寫的DoubleWritable,value集合里面只包含一條數(shù)據(jù),通過迭代,將數(shù)據(jù)使用上下文對象寫出到HDFS文件,并再存儲一份以邊為key、以邊的緊密度為value的Hashtable,如表2-4所示;表2-4步驟二Hashtable存儲數(shù)據(jù)邊緊密度1,20.011,40.012,30.012,50.013,60.014,50.014,70.015,60.015,80.016,90.016,110.017,80.018,90.0110,110.0110,120.0110,130.0110,140.0110,150.0110,160.0117,180.0118,190.01步驟三:以步驟二寫出的表四文件所在目錄為輸入目錄,分割數(shù)據(jù)行為節(jié)點(diǎn)邊和強(qiáng)度兩部分,將當(dāng)前邊以靜態(tài)字符串形式存儲在程序中;從第一條邊開始選擇一條邊,判斷邊兩端的兩個(gè)節(jié)點(diǎn)是否在節(jié)點(diǎn)列表,若在節(jié)點(diǎn)列表中,則放入當(dāng)前節(jié)點(diǎn)集,依次將所有與當(dāng)前節(jié)點(diǎn)集合中的節(jié)點(diǎn)緊密度最大的節(jié)點(diǎn)依次加入節(jié)點(diǎn)集,當(dāng)沒有符合要求的節(jié)點(diǎn)時(shí),結(jié)束添加、完成一個(gè)節(jié)點(diǎn)集;對節(jié)點(diǎn)集編號,以節(jié)點(diǎn)集編號為key、節(jié)點(diǎn)為value的形式使用上下文對象Context寫出;Reduce過程以節(jié)點(diǎn)集編號作為key、節(jié)點(diǎn)為value作為輸入,將數(shù)據(jù)以(節(jié)點(diǎn),節(jié)點(diǎn)集編號)的形式存儲在數(shù)據(jù)結(jié)構(gòu)Hashtable中,如表2-5所示;表2-5步驟三Hashtable存儲數(shù)據(jù)節(jié)點(diǎn)ID節(jié)點(diǎn)集ID102030405060708090101111121131141151161172182192步驟四:根據(jù)步驟三的數(shù)據(jù),找出未加入節(jié)點(diǎn)集的節(jié)點(diǎn),將其劃入與其有聯(lián)系的相關(guān)節(jié)點(diǎn)所在節(jié)點(diǎn)集中;在Map過程將Hashtable中的社區(qū)數(shù)據(jù)一次性寫出;在Reduce過程將Map寫出的數(shù)據(jù)以(節(jié)點(diǎn)集編號,節(jié)點(diǎn))的形式寫出在HDFS文件上,如表2-6所示。表2-6社區(qū)劃分結(jié)果表社區(qū)劃分ID節(jié)點(diǎn)ID111,12,13,14,15,16217,18,1901、2、3、4、5、6、7、8、9經(jīng)算法劃分后,將該社交網(wǎng)絡(luò)分成了3個(gè)社區(qū),社區(qū)1為星狀社區(qū),社區(qū)2為線裝社區(qū),社區(qū)3為網(wǎng)狀社區(qū)。當(dāng)前第1頁1 2 3 當(dāng)前第1頁1 2 3