資源描述:
《基于聚類(lèi)的動(dòng)態(tài)負(fù)載均衡在數(shù)據(jù)采集上的應(yīng)用》由會(huì)員上傳分享,免費(fèi)在線(xiàn)閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、基于聚類(lèi)的動(dòng)態(tài)負(fù)載均衡在數(shù)據(jù)采集上的應(yīng)用摘要:為了構(gòu)建一個(gè)基于微博的社會(huì)網(wǎng)絡(luò),需要提供大量的微博數(shù)據(jù)源,那么如何才能實(shí)時(shí)高效的獲取微博信息是構(gòu)建微博社會(huì)網(wǎng)絡(luò)面臨的重大挑戰(zhàn)。本文提出了一種基于聚類(lèi)的動(dòng)態(tài)負(fù)載均衡數(shù)據(jù)采集方法,將聚類(lèi)算法與動(dòng)態(tài)負(fù)載均衡結(jié)合是一次新的嘗試,測(cè)試表明,能夠滿(mǎn)足對(duì)微博數(shù)據(jù)采集的需求。關(guān)鍵詞:微博;聚類(lèi);負(fù)載均衡;一致hash算法applicationofclustering-baseddynamicloadbalancinginthedatacollectionliudezh
2、i(facultyofcomputer,guangdonguniversityoftechnology,guangzhou510006,china)abstract:tobuildsocialnetworksbasedonmicroblog,weneedtoprovidelargemicrobloggingdatasource,howeverhowtoefficientaccesstothemicroblogginginformationistobuildsocialnetworksofthema
3、jorchallengesfacing.thispaperpresentsdynamicloadbalancingmethodofdatacollectionbasedonclustering,combinedwithclusteringanddynamicloadbalancingisanewattempt,thetestsshowthatitcanmeetthedemandformicrobloggingdatacollection.keywords:microblog;clustering;
4、loadbalance;consistencyhashalgorithm一、引言隨著web2.0技術(shù)的快速發(fā)展,微博的出現(xiàn),使人們進(jìn)入了網(wǎng)絡(luò)全民媒體的生活方式[1]。面對(duì)大規(guī)模規(guī)模的數(shù)據(jù),如何將任務(wù)均衡的分布在每臺(tái)爬蟲(chóng)機(jī)上,是一個(gè)具有挑戰(zhàn)性的問(wèn)題。本文提出基于聚類(lèi)的動(dòng)態(tài)負(fù)載均衡的方法,將負(fù)載率過(guò)高的處理機(jī)進(jìn)行任務(wù)轉(zhuǎn)移,達(dá)到動(dòng)態(tài)負(fù)載均衡的目的。二、動(dòng)態(tài)負(fù)載均衡模型采集系統(tǒng)的邏輯架構(gòu)結(jié)構(gòu)如圖1所示,任務(wù)管理節(jié)點(diǎn)將任務(wù)分配到任務(wù)數(shù)據(jù)節(jié)點(diǎn)上,然后由管理節(jié)點(diǎn)將任務(wù)結(jié)果的相關(guān)信息通知客戶(hù)端,客戶(hù)端再?gòu)南鄳?yīng)的任
5、務(wù)節(jié)點(diǎn)中提取結(jié)果。圖1系統(tǒng)結(jié)構(gòu)圖(一)處理機(jī)聚類(lèi)將處理機(jī)的權(quán)重定義為一組向量,公式如下:其中:l(c)_m為cpu利用率的閥值,l(m)_m為內(nèi)存利用率的閥值,l(d)_m為磁盤(pán)i/o量的閥值,l(p)_m為運(yùn)行態(tài)進(jìn)程數(shù)量的閥值。根據(jù)權(quán)值向量,將具有同類(lèi)性能的處理機(jī)劃分為同一個(gè)類(lèi)別。結(jié)合本系統(tǒng)的特點(diǎn),采用啟發(fā)式聚類(lèi)算法比較適合。(二)動(dòng)態(tài)反饋調(diào)整處理機(jī)的負(fù)載率r(i)定義如下:其中l(wèi)(ci)、l(mi)、l(di)、l(pi)分別為處理機(jī)i當(dāng)前cpu的利用率,內(nèi)存的利用率,磁盤(pán)i/o量,運(yùn)行態(tài)進(jìn)程
6、數(shù)量。在該系統(tǒng)中采用一種局部?jī)?yōu)先的原則,即優(yōu)先對(duì)類(lèi)的內(nèi)部處理機(jī)進(jìn)行動(dòng)態(tài)負(fù)載調(diào)整。三、算法描述(一)聚類(lèi)算法處理機(jī)聚類(lèi)采用經(jīng)典的k-means[5]算法,分成k個(gè)類(lèi)別,并將類(lèi)別信息保存在任務(wù)管理節(jié)點(diǎn)上。為了方便算法描述,進(jìn)行如下定義:定義1(處理機(jī)之間的距離)設(shè)處理機(jī)中集合中的pi和pj的權(quán)重分別為w(pi)和w(pj),則pi和pj的距離為定義2(處理機(jī)到類(lèi)的距離)設(shè)處理機(jī)類(lèi)為c,聚類(lèi)的中心點(diǎn)為pi,pi∈c則設(shè)備pj到類(lèi)c的距離等于pj到pi的距離。得到類(lèi)別集合后,將任務(wù)按照w(cj)的比例分配
7、到各個(gè)類(lèi)別中,類(lèi)內(nèi)部采用一致hash布局機(jī)制。(二)負(fù)載調(diào)整對(duì)于每個(gè)類(lèi)dm的處理機(jī)而言,每隔時(shí)間t動(dòng)態(tài)獲取負(fù)載信息,設(shè)h為負(fù)載率最高的處理機(jī),l為負(fù)載率最低的處理機(jī)。設(shè)處理節(jié)點(diǎn)的虛擬機(jī)節(jié)點(diǎn)為vp1,…,vpm,ravg為類(lèi)中處理機(jī)所有虛節(jié)點(diǎn)的平均負(fù)載率。具體的偽代碼如下:(1)while(rh-rl≥r_in)(2)sort(vh,vl);//將虛節(jié)點(diǎn)按照負(fù)載率的大小進(jìn)行降序排序(3)δnum=min{(ravg–rz),(rh–ravg)};//需要轉(zhuǎn)移的數(shù)量(4)δnum=0;(5)while
8、((δnumrl)(6)int_transmit(vhi,vlj);//類(lèi)內(nèi)部負(fù)載轉(zhuǎn)移(7)i++,j--;(8)δnum+=vhi;(9)r_update(h,l);//將h和l的負(fù)載率更新(10)endwhile(11)r_update(dm);//將dm類(lèi)中的負(fù)載率更新(12)if(ravg≥r_out)then//啟動(dòng)類(lèi)間負(fù)載轉(zhuǎn)移算法。(13)out_transmit(h);//類(lèi)間負(fù)載轉(zhuǎn)移。(14)endif(15)getr_max_min(d,h,l);//更新h、l(