• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    Storm環(huán)境下基于權(quán)重的任務(wù)調(diào)度算法

    2018-05-21 00:50:07英昌甜師康利蒲勇霖
    計(jì)算機(jī)應(yīng)用 2018年3期
    關(guān)鍵詞:任務(wù)調(diào)度數(shù)據(jù)流調(diào)度

    魯 亮,于 炯,卞 琛,英昌甜,3,師康利,蒲勇霖

    (1.新疆大學(xué) 信息科學(xué)與工程學(xué)院,烏魯木齊 830046; 2.新疆大學(xué) 軟件學(xué)院,烏魯木齊 830008;3.新疆大學(xué) 電氣工程學(xué)科博士后科研流動(dòng)站,烏魯木齊 830047)

    0 引言

    隨著互聯(lián)網(wǎng)和各類智能終端的普及,數(shù)據(jù)呈現(xiàn)出井噴式發(fā)展的趨勢(shì),MapReduce等各類大數(shù)據(jù)處理框架應(yīng)運(yùn)而生[1-2]。然而,這類傳統(tǒng)的大數(shù)據(jù)批量處理框架無(wú)法滿足部分企業(yè)的實(shí)時(shí)性業(yè)務(wù)需求。Apache Storm[3-4]作為一個(gè)開(kāi)源、實(shí)時(shí)、分布式部署、容錯(cuò)且擴(kuò)展性良好的大數(shù)據(jù)流式計(jì)算系統(tǒng)[5-6],已成功解決這一問(wèn)題并引起了學(xué)術(shù)界和企業(yè)界的高度關(guān)注。在Storm系統(tǒng)中,只要數(shù)據(jù)源處于活動(dòng)狀態(tài),元組便會(huì)源源不斷地發(fā)送至各工作節(jié)點(diǎn),計(jì)算和傳輸將持續(xù)發(fā)生,無(wú)需進(jìn)行中間結(jié)果的持久化存儲(chǔ),在實(shí)時(shí)個(gè)性化推薦、實(shí)時(shí)交通大數(shù)據(jù)分析、實(shí)時(shí)臨床數(shù)據(jù)分析等領(lǐng)域具有廣闊的應(yīng)用前景[7-9]。

    Storm在進(jìn)行任務(wù)分配時(shí)采用輪詢(Round-Robin,RR)調(diào)度算法,即將用戶提交的拓?fù)渲邪拿恳粋€(gè)任務(wù)均勻分配到各工作進(jìn)程中,再將各工作進(jìn)程均勻分配到各工作節(jié)點(diǎn)上,未考慮到各任務(wù)計(jì)算開(kāi)銷的差異以及任務(wù)與任務(wù)之間不同類型的通信開(kāi)銷,這將對(duì)Storm處理的實(shí)時(shí)性產(chǎn)生較大影響。針對(duì)這一問(wèn)題,已有少量國(guó)內(nèi)外學(xué)者展開(kāi)相關(guān)研究。文獻(xiàn)[10]提出資源感知的在線調(diào)度算法R-Storm,將Storm資源分為硬約束(針對(duì)內(nèi)存)和軟約束(針對(duì)CPU和網(wǎng)絡(luò))兩類,利用任務(wù)需求的各類靜態(tài)資源和工作節(jié)點(diǎn)所能提供的靜態(tài)資源之間的關(guān)系實(shí)現(xiàn)調(diào)度,最終達(dá)到最大化資源利用率和提高集群吞吐量的效果,但該算法中各任務(wù)的資源需求完全依靠程序員人為設(shè)定而并非通過(guò)監(jiān)測(cè)獲得,不適合數(shù)據(jù)流快速變化場(chǎng)景下的在線調(diào)度。文獻(xiàn)[11]對(duì)此進(jìn)行改進(jìn),添加了資源負(fù)載監(jiān)測(cè)模塊并將監(jiān)測(cè)結(jié)果存入數(shù)據(jù)庫(kù),并使用調(diào)度生成器根據(jù)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行實(shí)時(shí)調(diào)度,但并未評(píng)估調(diào)度自身對(duì)系統(tǒng)運(yùn)行帶來(lái)的影響以及重調(diào)度后是否能夠帶來(lái)更低的系統(tǒng)延遲。文獻(xiàn)[12]提出Storm框架下流量感知的在線調(diào)度算法T-Storm,通過(guò)監(jiān)測(cè)任務(wù)負(fù)載、工作節(jié)點(diǎn)負(fù)載以及任務(wù)與任務(wù)之間的數(shù)據(jù)傳輸負(fù)載,將通信開(kāi)銷大的任務(wù)動(dòng)態(tài)分配至空閑資源較多的節(jié)點(diǎn)上。然而,該算法并無(wú)法保證通信開(kāi)銷大的一對(duì)任務(wù)一定分配到同一個(gè)節(jié)點(diǎn)中,且一個(gè)拓?fù)湫枨蟮墓?jié)點(diǎn)數(shù)量依賴于用戶設(shè)定。此外,文獻(xiàn)[13]提出一種帶權(quán)圖的k劃分算法,文獻(xiàn)[14-16]提出流式計(jì)算框架下實(shí)時(shí)高效的資源調(diào)度算法和優(yōu)化框架。以上研究解決了流式計(jì)算環(huán)境下的任務(wù)優(yōu)化調(diào)度問(wèn)題,但無(wú)法直接移植于Storm平臺(tái)。文獻(xiàn)[17]提出并實(shí)現(xiàn)了一種服務(wù)質(zhì)量感知的Storm分布式調(diào)度器,其在網(wǎng)絡(luò)時(shí)延和可靠性等方面均優(yōu)于Storm默認(rèn)調(diào)度算法的執(zhí)行結(jié)果,但這與本文集中式數(shù)據(jù)中心的研究背景不符。文獻(xiàn)[18]將拓?fù)錈徇叺母拍钜隨torm平臺(tái),其主要思想是將熱邊關(guān)聯(lián)的源任務(wù)和目標(biāo)任務(wù)調(diào)度到同一工作節(jié)點(diǎn)執(zhí)行,以達(dá)到減少網(wǎng)絡(luò)通信開(kāi)銷的效果。然而該算法未充分考慮拓?fù)鋬?nèi)部通信的全局性,并未將非熱邊的調(diào)度優(yōu)化考慮在內(nèi)。文獻(xiàn)[19]為了分別降低進(jìn)程間通信開(kāi)銷和節(jié)點(diǎn)間通信開(kāi)銷,在充分考慮Storm拓?fù)渲懈魅蝿?wù)通信情況的基礎(chǔ)上提出一種兩階段調(diào)度算法,但該算法并未考慮到各任務(wù)自身計(jì)算開(kāi)銷的差異性。文獻(xiàn)[20]提出Storm環(huán)境下離線和在線的兩種自適應(yīng)調(diào)度算法,其中離線調(diào)度算法用于拓?fù)溥\(yùn)行前的拓?fù)浣Y(jié)構(gòu)分析,而在線調(diào)度算法用于拓?fù)溥\(yùn)行中各節(jié)點(diǎn)的實(shí)時(shí)負(fù)載監(jiān)測(cè)和任務(wù)分配的動(dòng)態(tài)調(diào)整,其中在線調(diào)度算法效果更優(yōu)。這種自適應(yīng)調(diào)度算法解決了部分Storm環(huán)境中的通信開(kāi)銷問(wèn)題,但執(zhí)行時(shí)僅逐對(duì)考慮相互通信的任務(wù),未將當(dāng)前任務(wù)與其直接通信的所有任務(wù)全部考慮進(jìn)來(lái),這對(duì)于較為復(fù)雜的拓?fù)涠陨腥狈θ中?,容易陷入局部最?yōu),且當(dāng)所有任務(wù)間的數(shù)據(jù)傳輸速率一致時(shí),該算法無(wú)法工作。

    為了改進(jìn)Storm默認(rèn)調(diào)度算法、克服已有相關(guān)研究的不足,本文提出一種Storm環(huán)境下基于權(quán)重的任務(wù)調(diào)度算法(Task Scheduling Algorithm based on Weight in Storm,TSAW-Storm)。該算法根據(jù)實(shí)時(shí)監(jiān)測(cè)到的負(fù)載數(shù)據(jù),為拓?fù)渲邪娜蝿?wù)和數(shù)據(jù)流分別賦予不同的點(diǎn)權(quán)和邊權(quán),并根據(jù)本文提出的負(fù)載均衡模型和最優(yōu)通信模型的要求,將任務(wù)調(diào)度到合適的工作節(jié)點(diǎn)內(nèi)。實(shí)驗(yàn)結(jié)果表明,相對(duì)于Storm默認(rèn)調(diào)度算法和文獻(xiàn)[20]的在線調(diào)度算法,TSAW-Storm在Storm集群系統(tǒng)延遲、通信開(kāi)銷和負(fù)載均衡方面均有所改進(jìn)。

    1 Storm作業(yè)模型

    在Storm中,一個(gè)流式作業(yè)稱為一個(gè)拓?fù)?,表示為一個(gè)有向無(wú)環(huán)圖,由組件和數(shù)據(jù)流共同構(gòu)成。組件分為Spout和Bolt兩種:其中Spout為數(shù)據(jù)源編程單元,用于為拓?fù)溥\(yùn)行提供數(shù)據(jù);Bolt為數(shù)據(jù)處理編程單元,用于實(shí)現(xiàn)拓?fù)渲械奶幚磉壿?。?shù)據(jù)流是由無(wú)限的元組組成的序列,是Storm中對(duì)傳遞的數(shù)據(jù)進(jìn)行的抽象,可通過(guò)不同的流組模式實(shí)現(xiàn)組件之間的數(shù)據(jù)流傳輸。如圖1所示,ca和cb為數(shù)據(jù)源編程單元Spout,其余組件為數(shù)據(jù)處理編程單元Bolt,所有箭線為數(shù)據(jù)流;特別地,組件cf和cg為數(shù)據(jù)終點(diǎn),通常用于將最終數(shù)據(jù)展示至終端或持久化至數(shù)據(jù)庫(kù)。

    圖1 拓?fù)溥壿嬆P?Fig. 1 Logical model of a topology

    為提高拓?fù)鋱?zhí)行的并行度,每個(gè)組件均可同時(shí)運(yùn)行多個(gè)實(shí)例,稱之為任務(wù)。任務(wù)是各組件最終執(zhí)行的代碼單元。設(shè)tij表示組件ci運(yùn)行的第j個(gè)實(shí)例,sij,kl表示任務(wù)tij向任務(wù)tkl發(fā)送的數(shù)據(jù)流。數(shù)據(jù)流通過(guò)描述拓?fù)渲袛?shù)據(jù)的流向,將上游任務(wù)和下游任務(wù)關(guān)聯(lián)起來(lái),由此提出如下關(guān)聯(lián)任務(wù)的概念。

    定義1 關(guān)聯(lián)任務(wù)。對(duì)于任意任務(wù)tgh、tij與tkl,若存在任務(wù)tgh向任務(wù)tij發(fā)送的數(shù)據(jù)流sgh,ij與任務(wù)tij向任務(wù)tkl發(fā)送的數(shù)據(jù)流sij,kl,則任務(wù)tgh與tkl統(tǒng)稱為任務(wù)tij的關(guān)聯(lián)任務(wù)。

    圖2即為圖1的一種實(shí)例模型。特別地,當(dāng)組件ci的實(shí)例數(shù)量為1時(shí),定義ti1=ti??梢钥吹絚d的實(shí)例數(shù)量為3,cf的實(shí)例數(shù)量為2,其余組件的實(shí)例數(shù)量為1。以任務(wù)td1為例,其上游任務(wù)ta與tb以及下游任務(wù)tf1與tf2均稱為任務(wù)td1的關(guān)聯(lián)任務(wù)。

    圖2 拓?fù)鋵?shí)例模型 Fig. 2 Instance model of a topology

    在Storm集群中,資源池由一系列工作節(jié)點(diǎn)構(gòu)成,定義該集合為N={n1,n2,…,n|N|}。每個(gè)工作節(jié)點(diǎn)內(nèi)配置有若干個(gè)槽,每個(gè)槽只能容納一個(gè)工作進(jìn)程。文獻(xiàn)[12]通過(guò)Storm吞吐量測(cè)試[21]表明,對(duì)于單個(gè)拓?fù)涠?,若在一個(gè)工作節(jié)點(diǎn)內(nèi)分配多個(gè)工作進(jìn)程(即占用多個(gè)槽),將會(huì)增加進(jìn)程間通信開(kāi)銷進(jìn)而導(dǎo)致運(yùn)行效率的下降。因此,本文僅在一個(gè)工作節(jié)點(diǎn)內(nèi)分配一個(gè)工作進(jìn)程,此時(shí)Storm默認(rèn)的輪詢調(diào)度算法可簡(jiǎn)化為一個(gè)拓?fù)渲邪乃腥蝿?wù)在各工作節(jié)點(diǎn)上的均勻分配,任務(wù)與工作節(jié)點(diǎn)間的對(duì)應(yīng)關(guān)系可定義如下。

    定義2 任務(wù)分配法則。若任務(wù)tij分配到了工作節(jié)點(diǎn)nk上,則記f(tij)=nk或f-1(nk)=tij;若任務(wù)集合Tnk={t11,t12,…,tij,…}分配到了工作節(jié)點(diǎn)nk上,則記f(Tnk)=nk或f-1(nk)=Tnk,其中f即為任務(wù)或任務(wù)集合在工作節(jié)點(diǎn)上的分配法則。如圖3為圖2的拓?fù)溥\(yùn)行于包含有3個(gè)工作節(jié)點(diǎn)的Storm集群中的任務(wù)分配模型,若以工作節(jié)點(diǎn)n1及運(yùn)行在該工作節(jié)點(diǎn)上的任務(wù)集合為例,可表示為:f({td1,tc,tf1})=n1,f-1(n1)={td1,tc,tf1}。

    圖3 任務(wù)分配模型 Fig. 3 Model for task assignment

    由圖3可知,Storm系統(tǒng)中的任務(wù)之間存在兩種通信模式,分別是類似于任務(wù)td1與tf2之間的節(jié)點(diǎn)間通信以及類似于任務(wù)td1與tf1之間的節(jié)點(diǎn)內(nèi)通信。其中節(jié)點(diǎn)間通信受制于當(dāng)前環(huán)境下的網(wǎng)絡(luò)帶寬和帶寬利用率大小,開(kāi)銷往往很大;而節(jié)點(diǎn)內(nèi)通信與網(wǎng)絡(luò)無(wú)關(guān),由于一個(gè)任務(wù)運(yùn)行于一個(gè)工作線程內(nèi),因此其通信類型僅為進(jìn)程內(nèi)的線程級(jí)通信,開(kāi)銷很小并可忽略不計(jì)[14]。然而Storm默認(rèn)輪詢的任務(wù)調(diào)度算法并未兼顧到這兩種通信模式的差異性,從而導(dǎo)致較大的節(jié)點(diǎn)間通信開(kāi)銷。此外,由于各組件自身業(yè)務(wù)邏輯的不同,CPU占用率必然存在差異;即使是同一個(gè)組件中各個(gè)業(yè)務(wù)邏輯相同的任務(wù),也將由于部分流組模式(如Field Grouping)的限制,并不會(huì)將其接收到的所有數(shù)據(jù)流均分到各實(shí)例中,故各任務(wù)的計(jì)算開(kāi)銷依然存在差異,輪詢的任務(wù)分配方式無(wú)法保證集群中各工作節(jié)點(diǎn)的負(fù)載均衡。為了更好地評(píng)估任務(wù)的計(jì)算開(kāi)銷和任務(wù)間傳輸?shù)臄?shù)據(jù)流大小,提出如下帶權(quán)拓?fù)涞母拍睢?/p>

    定義3 帶權(quán)拓?fù)?Weighted Topology, WT)。設(shè)任務(wù)tij占用的CPU資源大小為wtij,任務(wù)tij與tkl之間傳輸?shù)臄?shù)據(jù)流大小為wsij,kl,則圖2的拓?fù)鋵?shí)例模型中各任務(wù)和任務(wù)間的數(shù)據(jù)流可分別使用wtij和wsij,kl構(gòu)成拓?fù)涞狞c(diǎn)權(quán)和邊權(quán),其值可通過(guò)后文提出的負(fù)載監(jiān)視模塊進(jìn)行實(shí)時(shí)獲取。這樣的拓?fù)鋵?shí)例模型稱作帶權(quán)拓?fù)洹?/p>

    2 問(wèn)題建模與分析

    本節(jié)在帶權(quán)拓?fù)涞幕A(chǔ)之上建立負(fù)載均衡模型與最優(yōu)通信模型。其中負(fù)載均衡模型建立了各工作節(jié)點(diǎn)理想負(fù)載與實(shí)際負(fù)載間差異大小的度量指標(biāo),可為調(diào)度算法運(yùn)行時(shí)的終止條件和運(yùn)行后的負(fù)載均衡效果評(píng)估提供理論依據(jù);最優(yōu)通信模型則證明了節(jié)點(diǎn)間數(shù)據(jù)流傳輸代價(jià)與節(jié)點(diǎn)內(nèi)數(shù)據(jù)流傳輸代價(jià)此消彼長(zhǎng)的轉(zhuǎn)化關(guān)系,為最小化通信開(kāi)銷的任務(wù)遷移過(guò)程提供了決策原則。

    2.1 負(fù)載均衡模型

    設(shè)某一帶權(quán)拓?fù)渲邪娜蝿?wù)集合為T,nx為工作節(jié)點(diǎn)集合N中任意一個(gè)工作節(jié)點(diǎn),工作節(jié)點(diǎn)nk上分配的任務(wù)集合為f-1(nk),工作節(jié)點(diǎn)nl(k≠l)上分配的任務(wù)集合為f-1(nl),則必然有:

    (1)

    且:

    f-1(nk)∩f-1(nl)=?;k≠l

    (2)

    記Wnx為工作節(jié)點(diǎn)nx的CPU負(fù)載,其值為分配給工作節(jié)點(diǎn)nx上的所有任務(wù)需要占用的CPU資源總量,即:

    (3)

    記W為Storm集群的CPU負(fù)載總和,即集群中各工作節(jié)點(diǎn)的CPU負(fù)載總量。在同構(gòu)環(huán)境下,各工作節(jié)點(diǎn)的CPU負(fù)載隨任務(wù)分配模型的變化而此消彼長(zhǎng),但W始終不變,其計(jì)算方法為:

    (4)

    若將集群中的CPU負(fù)載總和均勻分布到各工作節(jié)點(diǎn)上,則每個(gè)工作節(jié)點(diǎn)需容納的CPU負(fù)載為:

    (5)

    式(5)表示在理想狀態(tài)下達(dá)到負(fù)載均衡后各工作節(jié)點(diǎn)的CPU負(fù)載情況。事實(shí)上,集群中各工作節(jié)點(diǎn)不可能達(dá)到完全的負(fù)載均衡狀態(tài),故使用式(6)標(biāo)準(zhǔn)差來(lái)衡量各工作節(jié)點(diǎn)的實(shí)際負(fù)載與理想負(fù)載的偏離程度。標(biāo)準(zhǔn)差越小則表示各工作節(jié)點(diǎn)間的負(fù)載差異越小,負(fù)載越為均衡。

    (6)

    2.2 最優(yōu)通信模型

    如第1章所述,Storm系統(tǒng)中任務(wù)之間的通信模式可分為節(jié)點(diǎn)間通信和節(jié)點(diǎn)內(nèi)通信,其中節(jié)點(diǎn)間的通信開(kāi)銷遠(yuǎn)大于節(jié)點(diǎn)內(nèi)的通信開(kāi)銷。因此,若尋求Storm系統(tǒng)中通信模式的優(yōu)化途徑,需令節(jié)點(diǎn)間通信開(kāi)銷達(dá)到最小,即盡可能減少工作節(jié)點(diǎn)間傳輸?shù)臄?shù)據(jù)流總和,可表示為:

    (7)

    定理1 最優(yōu)通信開(kāi)銷原則。最小化節(jié)點(diǎn)間傳輸?shù)臄?shù)據(jù)流大小等價(jià)于最大化節(jié)點(diǎn)內(nèi)傳輸?shù)臄?shù)據(jù)流大小,即式(7)等價(jià)于:

    (8)

    證明 由第1章Storm作業(yè)模型可知,拓?fù)湟坏┨峤坏郊?,拓?fù)鋵?shí)例模型即固定下來(lái),其包含的任務(wù)總數(shù)和數(shù)據(jù)流總數(shù)不可改變。因此在不發(fā)生擁塞的情況下,總數(shù)據(jù)流大小為一定值C,即:

    (9)

    證畢。

    由定理1可知,在進(jìn)行Storm系統(tǒng)任務(wù)調(diào)度時(shí),為了達(dá)到最優(yōu)通信模型的要求,應(yīng)盡可能地把通信頻繁的任務(wù)調(diào)度到同一個(gè)工作節(jié)點(diǎn)上,以最大限度地降低節(jié)點(diǎn)間通信開(kāi)銷。

    3 基于權(quán)重的任務(wù)調(diào)度算法

    為了達(dá)到上述負(fù)載均衡模型和最優(yōu)通信模型的要求,本章提出Storm環(huán)境下基于權(quán)重的任務(wù)調(diào)度算法(TSAW-Storm),并進(jìn)行算法評(píng)估與部署。

    3.1 邊權(quán)增益

    TSAW-Storm旨在盡可能均衡分配各工作節(jié)點(diǎn)負(fù)載的前提下,盡量減少節(jié)點(diǎn)間傳輸?shù)臄?shù)據(jù)流總和。而由最優(yōu)通信模型可知,當(dāng)任務(wù)分配法則發(fā)生變化時(shí),節(jié)點(diǎn)間數(shù)據(jù)流與節(jié)點(diǎn)內(nèi)數(shù)據(jù)流將相互轉(zhuǎn)化。為了量化這一過(guò)程,提出如下邊權(quán)增益的概念。

    定義4 邊權(quán)增益。對(duì)于任務(wù)tij,若存在任務(wù)分配法則f(tij)=np,設(shè)Ttij,np為與任務(wù)tij關(guān)聯(lián)且位于工作節(jié)點(diǎn)np上的任務(wù)集合,Ttij,nq為與任務(wù)tij關(guān)聯(lián)且位于工作節(jié)點(diǎn)nq上的任務(wù)集合,且p≠q,若將任務(wù)tij由工作節(jié)點(diǎn)np遷移至工作節(jié)點(diǎn)nq,則邊權(quán)增益可表示為:

    (10)

    以圖3為例,對(duì)于任務(wù)td3而言,位于該任務(wù)所在工作節(jié)點(diǎn)n3上的關(guān)聯(lián)任務(wù)集合為Ttd3,n3={ta},位于工作節(jié)點(diǎn)n2上的關(guān)聯(lián)任務(wù)集合為Ttd3,n2={tb,tf2},若將任務(wù)td3由工作節(jié)點(diǎn)n3遷移至工作節(jié)點(diǎn)n2,則數(shù)據(jù)流sb,d3和sd3,f2將由節(jié)點(diǎn)間數(shù)據(jù)流轉(zhuǎn)化為節(jié)點(diǎn)內(nèi)數(shù)據(jù)流,而數(shù)據(jù)流sa,d3將由節(jié)點(diǎn)內(nèi)數(shù)據(jù)流轉(zhuǎn)化為節(jié)點(diǎn)間數(shù)據(jù)流,其邊權(quán)增益的計(jì)算方法為:

    Gtd3=wsb,d3+wsd3,f2-wsa,d3

    (11)

    可見(jiàn),邊權(quán)增益反映了任務(wù)遷移前后節(jié)點(diǎn)間數(shù)據(jù)流的差值。邊權(quán)增益越大,則意味著將更多的節(jié)點(diǎn)間數(shù)據(jù)流轉(zhuǎn)化為了節(jié)點(diǎn)內(nèi)數(shù)據(jù)流,這符合2.2節(jié)中最優(yōu)通信模型的要求,是后續(xù)算法的設(shè)計(jì)目標(biāo)之一。

    3.2 算法描述

    計(jì)算邊權(quán)增益的前提是獲取帶權(quán)拓?fù)涞年P(guān)聯(lián)任務(wù)及其對(duì)應(yīng)邊權(quán);而為了在獲取最大化邊權(quán)增益的同時(shí)不違背負(fù)載均衡模型的約束,帶權(quán)拓?fù)涞狞c(diǎn)權(quán)及各工作節(jié)點(diǎn)的CPU負(fù)載值同樣不可或缺。因此在TSAW-Storm的設(shè)計(jì)過(guò)程中,需在用戶提交拓?fù)浜笫紫葓?zhí)行Storm默認(rèn)調(diào)度算法,并當(dāng)拓?fù)溥\(yùn)行穩(wěn)定后完成上述數(shù)據(jù)的采集和存儲(chǔ)。當(dāng)工作節(jié)點(diǎn)的CPU負(fù)載持續(xù)不均,即集群中所有工作節(jié)點(diǎn)的最大CPU負(fù)載與最小CPU負(fù)載之差在時(shí)間間隔τ內(nèi)持續(xù)大于閾值ε時(shí),則觸發(fā)算法1進(jìn)行任務(wù)的重新調(diào)度。具體步驟如下:

    算法1 TSAW-Storm。

    2)對(duì)于?nx∈N′,如果nx中存在拓?fù)溥\(yùn)行所需要的數(shù)據(jù)源且n|N|中分配的任務(wù)包含有Spout實(shí)例,或nx中不存在數(shù)據(jù)源但n|N|中分配的任務(wù)不包含有Bolt實(shí)例,則隨機(jī)將工作節(jié)點(diǎn)n|N|中的一個(gè)Spout實(shí)例遷移至工作節(jié)點(diǎn)nx;否則隨機(jī)將工作節(jié)點(diǎn)n|N|中的一個(gè)Bolt實(shí)例遷移至工作節(jié)點(diǎn)nx。設(shè)從工作節(jié)點(diǎn)n|N|中遷出的任務(wù)為tij,則有Tnx←{tij},Tn|N|←Tn|N|-{tij},同時(shí)根據(jù)式(3)更新工作節(jié)點(diǎn)CPU負(fù)載Wn|N|和Wnx。

    3)獲取與Tnx中各任務(wù)關(guān)聯(lián)且位于工作節(jié)點(diǎn)n|N|上的任務(wù)集合,記為Tnx,n|N|。

    4)將Tnx,n|N|中邊權(quán)增益最大的任務(wù)tkl遷移至工作節(jié)點(diǎn)nx,此時(shí)Tnx←Tnx∪{tkl},Tn|N|←Tn|N|-{tkl},同時(shí)根據(jù)式(3)更新工作節(jié)點(diǎn)CPU負(fù)載Wn|N|和Wnx。

    6)重復(fù)第2)~5)步,逐步構(gòu)建N′中各工作節(jié)點(diǎn)上分配的任務(wù)集合。

    7)執(zhí)行任務(wù)分配,即對(duì)于x∈1,2,…,|N|,實(shí)施f-1(nx)←Tnx。

    3.3 算法解釋與算法評(píng)估

    在算法1的執(zhí)行過(guò)程中,第1)步獲取算法后續(xù)計(jì)算所需數(shù)據(jù),并進(jìn)行各項(xiàng)初始化操作。第2)步完成當(dāng)前工作節(jié)點(diǎn)上的第一個(gè)任務(wù)分配,這是進(jìn)行邊權(quán)增益計(jì)算的前提。在第一個(gè)任務(wù)的選擇過(guò)程中,如果待遷入任務(wù)的工作節(jié)點(diǎn)上存儲(chǔ)有數(shù)據(jù)源,則將拓?fù)渲械臄?shù)據(jù)源編程單元Spout分配到該工作節(jié)點(diǎn)上,目的是盡量避免Spout將遠(yuǎn)程數(shù)據(jù)源讀入拓?fù)鋾r(shí)帶來(lái)的節(jié)點(diǎn)間通信開(kāi)銷,提高任務(wù)本地化執(zhí)行的概率,進(jìn)而提高Storm系統(tǒng)的運(yùn)行效率。然而,將Spout中包含的所有任務(wù)均分配到數(shù)據(jù)源所在工作節(jié)點(diǎn)上的做法是不可取的,原因有以下兩點(diǎn):其一,拓?fù)渲蠸pout的各個(gè)任務(wù)彼此之間并無(wú)關(guān)聯(lián),若將其分配到同一個(gè)工作節(jié)點(diǎn)上,勢(shì)必導(dǎo)致更小的節(jié)點(diǎn)內(nèi)數(shù)據(jù)流,與最優(yōu)通信模型的要求不符;其二,Spout中的每一個(gè)任務(wù)均需讀取其下游Bolt運(yùn)行所需的所有數(shù)據(jù),輸出的數(shù)據(jù)流總量必然很大,若各任務(wù)的分布過(guò)于集中,勢(shì)必給其所在工作節(jié)點(diǎn)與其下游Bolt所在工作節(jié)點(diǎn)之間帶來(lái)過(guò)多的節(jié)點(diǎn)間數(shù)據(jù)流,進(jìn)而導(dǎo)致網(wǎng)絡(luò)擁塞,效果適得其反。為了避免上述情況的發(fā)生,第2)步僅為存在數(shù)據(jù)源的每個(gè)工作節(jié)點(diǎn)初始化分配一個(gè)Spout實(shí)例。第3)~6)步嚴(yán)格遵循負(fù)載均衡模型和最優(yōu)通信模型的要求,根據(jù)最大化邊權(quán)增益原則,逐步選擇當(dāng)前情況下最合適的任務(wù)從工作節(jié)點(diǎn)n|N|上遷出,并及時(shí)更新任務(wù)遷移后相關(guān)工作節(jié)點(diǎn)CPU負(fù)載的預(yù)測(cè)值,最終確定所有工作節(jié)點(diǎn)上的任務(wù)分配法則。這一過(guò)程存在遍歷關(guān)聯(lián)任務(wù)、計(jì)算最大邊權(quán)增益等需要較大時(shí)間開(kāi)銷的重復(fù)性工作,時(shí)間復(fù)雜度為O(|S|·|N|)(S為帶權(quán)拓?fù)浒臄?shù)據(jù)流集合);然而以上步驟實(shí)質(zhì)上并未改變?nèi)蝿?wù)分配模型,拓?fù)湟廊徽_\(yùn)行,用戶的實(shí)時(shí)性作業(yè)需求并未受到影響。直到步驟7)時(shí)才執(zhí)行具體的任務(wù)分配,此時(shí)需重新分配拓?fù)渲懈魅蝿?wù)在各工作節(jié)點(diǎn)中的映射關(guān)系,時(shí)間開(kāi)銷為O(|T|);在這一時(shí)刻,拓?fù)鋱?zhí)行會(huì)不可避免地存在短暫的中斷,延遲將有所增加,具體情況將在第4章實(shí)驗(yàn)中進(jìn)行評(píng)估。

    3.4 算法實(shí)現(xiàn)與部署

    為實(shí)現(xiàn)并部署算法1,需使用Storm為開(kāi)發(fā)人員提供的可插拔自定義任務(wù)調(diào)度器,即實(shí)現(xiàn)接口org.apache.storm.scheduler.IScheduler中的方法public void schedule(Topologies topologies, Cluster cluster)。改進(jìn)后的Storm架構(gòu)如圖4所示。需要說(shuō)明的是,一個(gè)完整的Storm分布式系統(tǒng)由運(yùn)行進(jìn)程N(yùn)imbus的主控節(jié)點(diǎn)、運(yùn)行進(jìn)程Supervisor的工作節(jié)點(diǎn)、運(yùn)行進(jìn)程UI的控制臺(tái)節(jié)點(diǎn)以及運(yùn)行進(jìn)程ZooKeeper的協(xié)調(diào)節(jié)點(diǎn)共同構(gòu)成,而圖4并未修改控制臺(tái)節(jié)點(diǎn)和協(xié)調(diào)節(jié)點(diǎn)的工作機(jī)制,故將其省略,僅保留新增模塊以及與新增模塊相關(guān)聯(lián)的部分,其中新增加的四個(gè)模塊如下:

    1)負(fù)載監(jiān)視模塊。負(fù)責(zé)在一定的時(shí)間窗口內(nèi),收集各任務(wù)占用的CPU負(fù)載信息及各任務(wù)之間的數(shù)據(jù)流大小分別作為帶權(quán)拓?fù)涞狞c(diǎn)權(quán)和邊權(quán)。由于Storm中的一個(gè)任務(wù)運(yùn)行于一個(gè)工作線程中,因此為了獲取任務(wù)執(zhí)行過(guò)程中占用的CPU資源大小以及各對(duì)任務(wù)在單位時(shí)間傳輸?shù)脑M數(shù)量,需實(shí)時(shí)追蹤各任務(wù)對(duì)應(yīng)的線程ID及其相關(guān)聯(lián)的所有線程。其中各線程的CPU資源占用大小可通過(guò)ThreadMXBean類的getThreadCpuTime(long id)方法獲取到其占用的CPU時(shí)間,并與其所處工作節(jié)點(diǎn)的CPU主頻相乘求得;各對(duì)線程間傳輸?shù)臄?shù)據(jù)流大小需使用計(jì)數(shù)器變量統(tǒng)計(jì)各線程接收到的上游線程發(fā)送的元組數(shù)量,并與時(shí)間窗口容量相除獲得數(shù)據(jù)流傳輸速率。具體實(shí)現(xiàn)需添加在組件中各Spout的open()和nextTuple()方法以及各Bolt的prepare()和execute()方法中。

    2)MySQL數(shù)據(jù)庫(kù)。負(fù)責(zé)存儲(chǔ)歷次任務(wù)分配信息以及負(fù)載監(jiān)視模塊傳來(lái)的負(fù)載信息和數(shù)據(jù)流大小,并實(shí)時(shí)更新。

    3)任務(wù)調(diào)度模塊。負(fù)責(zé)讀取數(shù)據(jù)庫(kù)中的信息,并在負(fù)載持續(xù)不均時(shí)觸發(fā)算法1以及時(shí)作出任務(wù)調(diào)度決策。

    4)自定義調(diào)度器。覆蓋主控節(jié)點(diǎn)中Storm默認(rèn)輪詢的調(diào)度算法,負(fù)責(zé)讀取任務(wù)調(diào)度模塊生成的調(diào)度決策并執(zhí)行任務(wù)調(diào)度。

    圖4 改進(jìn)的Storm系統(tǒng)架構(gòu) Fig. 4 Improved architecture of Storm

    4 實(shí)驗(yàn)與分析

    4.1 實(shí)驗(yàn)環(huán)境與分析

    實(shí)驗(yàn)環(huán)境采用相同硬件配置的PC搭建一個(gè)包含有12個(gè)節(jié)點(diǎn)的Storm集群,其中共同運(yùn)行進(jìn)程N(yùn)imbus、進(jìn)程UI和數(shù)據(jù)庫(kù)服務(wù)MySQL的節(jié)點(diǎn)1個(gè),運(yùn)行進(jìn)程ZooKeeper的協(xié)調(diào)節(jié)點(diǎn)3個(gè),其余8個(gè)為運(yùn)行進(jìn)程Supervisor的工作節(jié)點(diǎn)。表1列出了各節(jié)點(diǎn)具體的軟硬件配置。

    表1 Storm集群軟硬件配置Tab. 1 Hardware and software configuration of Storm cluster

    實(shí)驗(yàn)基于Intel公司Zhang[22]發(fā)布在GitHub上的基準(zhǔn)測(cè)試storm-benchmark-master,本文選取其中CPU敏感型(CPU-Sensitive)的WordCount構(gòu)建拓?fù)?,?shù)據(jù)源為其自身提供的原版英國(guó)歷史小說(shuō)《雙城記》,格式為txt。原著中各單詞出現(xiàn)的頻率不盡相同,因此在實(shí)際生產(chǎn)環(huán)境中具有一定的代表性,若此時(shí)使用Storm默認(rèn)輪詢的調(diào)度算法,極易在計(jì)數(shù)過(guò)程中發(fā)生各工作節(jié)點(diǎn)CPU負(fù)載不均的情況,進(jìn)而觸發(fā)TSAW-Storm,便于評(píng)估算法的執(zhí)行效果。表2列出了WordCount運(yùn)行時(shí)的各項(xiàng)參數(shù)配置及其相關(guān)說(shuō)明。需要進(jìn)一步解釋的是,表2中工作進(jìn)程個(gè)數(shù)設(shè)置為8,意味著8個(gè)工作節(jié)點(diǎn)中各分配1個(gè)工作進(jìn)程,這樣便消除了同一節(jié)點(diǎn)內(nèi)工作進(jìn)程間的通信開(kāi)銷,與文中任務(wù)分配模型的描述相符;Acker用來(lái)跟蹤元組的處理結(jié)果,其值默認(rèn)設(shè)置與工作進(jìn)程個(gè)數(shù)相同;Spout緩存隊(duì)列長(zhǎng)度可對(duì)Spout的元組發(fā)射速率進(jìn)行控制,并進(jìn)而決定Storm系統(tǒng)的吞吐量,通過(guò)多次實(shí)驗(yàn)后設(shè)置該集群配置下的合適值為50;時(shí)間間隔tau和閾值epsilon即為3.2節(jié)中敘述的τ與ε,表示若集群中所有工作節(jié)點(diǎn)的最大CPU負(fù)載與最小CPU負(fù)載之差在每80 s時(shí)間間隔內(nèi)持續(xù)超過(guò)20%時(shí),觸發(fā)TSAW-Storm,該值可根據(jù)Storm默認(rèn)調(diào)度算法的運(yùn)行結(jié)果進(jìn)行人為調(diào)整。

    表2 WordCount參數(shù)配置Tab. 2 Parameter configuration of WordCount

    為驗(yàn)證TSAW-Storm的有效性,文中除了與Storm默認(rèn)調(diào)度算法進(jìn)行對(duì)比之外,還部署了文獻(xiàn)[20]的Storm自適應(yīng)在線調(diào)度算法(online scheduler)。該算法在運(yùn)行后取得了較好的調(diào)度效果,其核心思想是實(shí)時(shí)監(jiān)測(cè)各工作節(jié)點(diǎn)和各任務(wù)的CPU負(fù)載情況以及各對(duì)任務(wù)之間的數(shù)據(jù)流大小,當(dāng)存在CPU負(fù)載持續(xù)超出閾值的工作節(jié)點(diǎn)時(shí)觸發(fā)任務(wù)重分配機(jī)制,即首先按照遞減的順序排列拓?fù)渲懈鲗?duì)任務(wù)之間的數(shù)據(jù)流大小,然后將任務(wù)逐對(duì)調(diào)度至那些令其重分配后產(chǎn)生最低CPU負(fù)載的工作進(jìn)程和工作節(jié)點(diǎn)中。表3列出了采用在線調(diào)度算法進(jìn)行對(duì)比實(shí)驗(yàn)時(shí)的各項(xiàng)參數(shù)配置。需要說(shuō)明的是,為了與TSAW-Storm在同等CPU負(fù)載條件下觸發(fā)任務(wù)調(diào)度,各項(xiàng)參數(shù)均通過(guò)多次實(shí)驗(yàn)進(jìn)行微調(diào)并最終確定了理想值,其中參數(shù)reschedule.timeout為在線調(diào)度算法的觸發(fā)周期,參數(shù)capacity為在線調(diào)度算法中CPU的使用率上限,這兩項(xiàng)參數(shù)分別與本文算法中的τ與ε存在對(duì)應(yīng)關(guān)系。

    表3 在線調(diào)度算法參數(shù)設(shè)置Tab. 3 Parameter configuration of online scheduler

    4.2 實(shí)驗(yàn)結(jié)果與分析

    本節(jié)通過(guò)實(shí)驗(yàn)評(píng)估TSAW-Storm在系統(tǒng)延遲、通信開(kāi)銷和負(fù)載均衡三個(gè)方面的表現(xiàn)。為便于數(shù)據(jù)統(tǒng)計(jì),以下各項(xiàng)測(cè)試均在基準(zhǔn)測(cè)試的配置文件中設(shè)置metrics.poll為5 000,metrics.time為300 000,其單位為ms,即每組實(shí)驗(yàn)每5 s進(jìn)行一次采樣,總時(shí)長(zhǎng)為5 min。

    4.2.1 系統(tǒng)延遲測(cè)試

    延遲表明一個(gè)元組從Spout發(fā)射到最終被成功處理的時(shí)間消耗,反映了拓?fù)鋱?zhí)行一次的響應(yīng)時(shí)間,刻畫了系統(tǒng)的運(yùn)行效率。圖5統(tǒng)計(jì)了WordCount在Storm默認(rèn)調(diào)度算法(圖例中Default)、在線調(diào)度算法(圖例中Online)與基于權(quán)重的任務(wù)調(diào)度算法(圖例中TSAW-Storm)下的系統(tǒng)延遲。

    圖5 三種任務(wù)調(diào)度算法下的系統(tǒng)延遲對(duì)比 Fig. 5 Comparison of latency among three task scheduling algorithms

    如圖5所示,從實(shí)驗(yàn)開(kāi)始到第一個(gè)峰值結(jié)束時(shí)間段表示拓?fù)涮峤粫r(shí)的初次任務(wù)分配,此時(shí)的任務(wù)分配均遵循Storm默認(rèn)調(diào)度算法。其中0~25 s的零延遲階段表示任務(wù)分配的計(jì)算與同步過(guò)程,由于此時(shí)存在未被成功調(diào)度的任務(wù),拓?fù)鋵?shí)例模型并不完整,故無(wú)法形成一條完整的數(shù)據(jù)流;同時(shí),Spout中的任務(wù)往往首先完成分配并開(kāi)始發(fā)射數(shù)據(jù),在其下游Bolt中的任務(wù)未被成功調(diào)度的情況下,Spout緩存隊(duì)列中的元組因無(wú)法及時(shí)得到處理而導(dǎo)致系統(tǒng)延遲隨著運(yùn)行時(shí)間的推進(jìn)而不斷增加,進(jìn)而出現(xiàn)30~35 s的極高峰值。第一個(gè)峰值過(guò)后,系統(tǒng)延遲逐漸趨于收斂,在集群中各工作節(jié)點(diǎn)不發(fā)生意外的情況下,默認(rèn)調(diào)度算法將不再實(shí)施任務(wù)調(diào)度,系統(tǒng)延遲的保持在11.2 ms左右;而此時(shí)在線調(diào)度算法與TSAW-Storm開(kāi)始收集集群中各工作節(jié)點(diǎn)以及工作節(jié)點(diǎn)上各任務(wù)占用的CPU負(fù)載信息和各任務(wù)之間的數(shù)據(jù)流大小,為各任務(wù)未來(lái)的優(yōu)化配置提供決策依據(jù)。

    隨著運(yùn)行時(shí)間的推移,第90 s時(shí)在線調(diào)度算法觸發(fā),此時(shí)所有任務(wù)在各工作節(jié)點(diǎn)上重新分配,系統(tǒng)暫停一切數(shù)據(jù)流傳輸,故系統(tǒng)延遲在90~100 s時(shí)間間隔內(nèi)無(wú)法觀測(cè);第105~110 s時(shí)系統(tǒng)延遲達(dá)到極高峰,隨后迅速下降,整個(gè)任務(wù)重調(diào)度過(guò)程相當(dāng)于拓?fù)涮峤粫r(shí)的初始化任務(wù)分配,執(zhí)行開(kāi)銷較大。在線調(diào)度算法觸發(fā)的原因是此時(shí)集群中已經(jīng)存在CPU負(fù)載在80 s內(nèi)超過(guò)70%的工作節(jié)點(diǎn),而之所以圖5中第90 s才出現(xiàn)系統(tǒng)延遲的極端變化,其原因有以下幾點(diǎn):1)主控節(jié)點(diǎn)的重調(diào)度指令分發(fā)到各工作節(jié)點(diǎn)需要消耗一定的時(shí)間;2)調(diào)度發(fā)生時(shí),Spout雖然不再發(fā)射數(shù)據(jù),但整個(gè)拓?fù)渲腥源嬖谏倭课幢煌耆幚淼臄?shù)據(jù)流,Acker機(jī)制仍在進(jìn)行系統(tǒng)延遲的統(tǒng)計(jì)工作;3)采樣周期為一定值,統(tǒng)計(jì)誤差不可避免。由圖5可知,在線調(diào)度算法運(yùn)行時(shí)對(duì)系統(tǒng)的影響范圍在第90~115 s,最大延遲為91.9 ms;系統(tǒng)運(yùn)行穩(wěn)定后,延遲平均值約為8.50 ms,相對(duì)于Storm默認(rèn)調(diào)度算法降低約24.1%。

    TSAW-Storm的觸發(fā)和執(zhí)行過(guò)程與在線調(diào)度算法類似。第90 s時(shí)TSAW-Storm觸發(fā),原因是在80 s的觀測(cè)周期內(nèi)存在最大CPU負(fù)載與最小CPU負(fù)載之差持續(xù)大于20%的工作節(jié)點(diǎn)。與在線調(diào)度算法不同的是,TSAW-Storm觸發(fā)后的系統(tǒng)延遲在90~95 s時(shí)間間隔內(nèi)無(wú)法觀測(cè),僅為在線調(diào)度算法的一半左右,且隨后發(fā)生的延遲最高峰值為27.5 ms,僅為在線調(diào)度算法最大延遲的29.9%,可見(jiàn)TSAW-Storm對(duì)Storm系統(tǒng)的正常運(yùn)行并未造成較大的影響。TSAW-Storm運(yùn)行結(jié)束后,系統(tǒng)運(yùn)行迅速趨于穩(wěn)定,延遲平均值穩(wěn)定在約7.84 ms,相對(duì)于在線調(diào)度算法降低約7.76%,相對(duì)于Storm默認(rèn)調(diào)度算法降低約30.0%。TSAW-Storm觸發(fā)時(shí)之所以對(duì)系統(tǒng)整體影響較小,是因?yàn)樵撍惴ㄊ紫扔芍骺毓?jié)點(diǎn)計(jì)算更優(yōu)的任務(wù)分配方案,這一過(guò)程并未改變?nèi)蝿?wù)分配模型,拓?fù)湟廊徽_\(yùn)行;而后再根據(jù)計(jì)算結(jié)果一次性執(zhí)行任務(wù)分配,故影響系統(tǒng)正常運(yùn)行的時(shí)間很短, Spout緩存隊(duì)列中的元組等待處理的時(shí)間也較短,不會(huì)導(dǎo)致類似在線調(diào)度算法產(chǎn)生的突發(fā)延遲。而TSAW-Storm之所以在收斂后能夠形成較低的系統(tǒng)延遲,是因?yàn)樵撍惴ú煌谠诰€調(diào)度算法中逐對(duì)任務(wù)調(diào)度的方法,它針對(duì)帶權(quán)拓?fù)渲械拿恳粋€(gè)任務(wù),均充分考慮了與其相關(guān)聯(lián)的所有數(shù)據(jù)流,其調(diào)度更具全局性。此外,TSAW-Storm提高了任務(wù)本地化執(zhí)行的概率,消除了一部分Spout中的任務(wù)讀取遠(yuǎn)程數(shù)據(jù)源時(shí)的網(wǎng)絡(luò)開(kāi)銷,這是導(dǎo)致系統(tǒng)延遲降低的又一個(gè)重要原因。

    4.2.2 通信開(kāi)銷測(cè)試

    本節(jié)討論基準(zhǔn)測(cè)試WordCount在Storm默認(rèn)調(diào)度算法、在線調(diào)度算法與TSAW-Storm下的工作節(jié)點(diǎn)間通信開(kāi)銷。圖6為采用三種不同調(diào)度算法時(shí)工作節(jié)點(diǎn)間單位時(shí)間的元組傳輸總量。

    圖6 三種任務(wù)調(diào)度算法下的節(jié)點(diǎn)間數(shù)據(jù)流大小對(duì)比 Fig. 6 Comparison of inter-node tuple rate among three task scheduling algorithms

    與圖5中的系統(tǒng)延遲類似,圖6中節(jié)點(diǎn)間數(shù)據(jù)流大小的統(tǒng)計(jì)結(jié)果亦可清晰反映在線調(diào)度算法與TSAW-Storm的觸發(fā)情況??梢钥闯觯瑹o(wú)論是采用Storm默認(rèn)調(diào)度算法的初始化任務(wù)分配,還是在線調(diào)度算法與TSAW-Storm觸發(fā)后的優(yōu)化調(diào)度,節(jié)點(diǎn)間數(shù)據(jù)流大小均將經(jīng)歷一個(gè)從0迅速上升到正常狀態(tài)的過(guò)程,并不存在類似圖5中的峰值情況。這是因?yàn)楸?中對(duì)WordCount的Spout緩存隊(duì)列長(zhǎng)度作了合理限制,當(dāng)未被成功處理的元組達(dá)到緩存隊(duì)列的上限時(shí),Spout將暫停發(fā)射數(shù)據(jù)流,因此并不會(huì)發(fā)生因元組大量累積而突發(fā)傳輸?shù)那闆r。由圖6可知,Storm默認(rèn)調(diào)度算法執(zhí)行且系統(tǒng)運(yùn)行趨于穩(wěn)定后(50~300 s),節(jié)點(diǎn)間數(shù)據(jù)流大小的平均值約為92 446 tuple/s;而當(dāng)在線調(diào)度算法和TSAW-Storm觸發(fā)且系統(tǒng)穩(wěn)定運(yùn)行后(分別為125~300 s和115~300 s),節(jié)點(diǎn)間數(shù)據(jù)流大小的平均值約分別為70 335 tuple/s和62 026 tuple/s,相比Storm默認(rèn)調(diào)度算法分別降低了23.9%和32.9%,其中TSAW-Storm相比在線調(diào)度算法執(zhí)行后的節(jié)點(diǎn)間數(shù)據(jù)流大小下降了11.8%??梢?jiàn),TSAW-Storm在降低節(jié)點(diǎn)間通信開(kāi)銷方面具有更為明顯的效果,其原因是TSAW-Storm中最大化邊權(quán)增益和Spout任務(wù)本地化的思想能夠最大范圍地考慮到整個(gè)帶權(quán)拓?fù)涞娜蝿?wù)間通信情況,從而將更多的節(jié)點(diǎn)間數(shù)據(jù)流轉(zhuǎn)化為節(jié)點(diǎn)內(nèi)數(shù)據(jù)流。而之所以TSAW-Storm在4.2.1節(jié)中降低的系統(tǒng)延遲不如降低的節(jié)點(diǎn)間數(shù)據(jù)流大小效果明顯,是因?yàn)樵诟黝怱torm基準(zhǔn)測(cè)試中,WordCount屬于CPU敏感型拓?fù)鋄22],節(jié)點(diǎn)間數(shù)據(jù)流的減小僅可作為該類拓?fù)湫阅軆?yōu)化的方向之一,未來(lái)將針對(duì)拓?fù)涞淖陨硖匦蕴剿鞲嗫赡艿膬?yōu)化方向。

    4.2.3 負(fù)載均衡測(cè)試

    本節(jié)討論基準(zhǔn)測(cè)試WordCount在Storm默認(rèn)調(diào)度算法、在線調(diào)度算法與TSAW-Storm下分別運(yùn)行時(shí)集群的負(fù)載均衡情況。由于Storm默認(rèn)調(diào)度算法采用輪詢的方式分配任務(wù),因此各工作節(jié)點(diǎn)上初始化分配的任務(wù)數(shù)量相同。然而WordCount數(shù)據(jù)源中各單詞出現(xiàn)的頻率存在很大差異,當(dāng)SplitBolt采用Field Grouping方式進(jìn)行數(shù)據(jù)流分發(fā)時(shí),各CountBolt中的任務(wù)需要處理的數(shù)據(jù)流大小差異很大,單純采用輪詢方式進(jìn)行任務(wù)分配極易導(dǎo)致各工作節(jié)點(diǎn)的負(fù)載不均。在線調(diào)度算法與TSAW-Storm在任務(wù)重調(diào)度過(guò)程中充分考慮到不同任務(wù)負(fù)載的差異性,從而克服了默認(rèn)調(diào)度算法在負(fù)載均衡方面的不足。表4為采用這三類任務(wù)調(diào)度算法執(zhí)行任務(wù)分配后各工作節(jié)點(diǎn)的CPU負(fù)載均值。

    由于在線調(diào)度算法和TSAW-Storm觸發(fā)前均使用Storm默認(rèn)調(diào)度算法執(zhí)行任務(wù)分配,因此可將表4中的Storm默認(rèn)調(diào)度算法(Default)執(zhí)行后的CPU負(fù)載看成是在線調(diào)度算法(Online)和TSAW-Storm觸發(fā)前各工作節(jié)點(diǎn)的資源占用情況。由表4可知,Storm默認(rèn)調(diào)度算法執(zhí)行后,各工作節(jié)點(diǎn)的負(fù)載不均現(xiàn)象較為嚴(yán)重,標(biāo)準(zhǔn)差高達(dá)12.66%,其中6號(hào)工作節(jié)點(diǎn)的CPU負(fù)載最高,7號(hào)工作節(jié)點(diǎn)的CPU負(fù)載最低,二者差值為33.4%。因最大CPU負(fù)載超出表3中設(shè)置的CPU使用率上限(capacity=70%),且最大CPU負(fù)載與最小CPU負(fù)載之差也超出了表2中設(shè)置的閾值(epsilon=20%),故在線調(diào)度算法和TSAW-Storm同時(shí)觸發(fā),這與圖5中系統(tǒng)延遲以及圖6中節(jié)點(diǎn)間數(shù)據(jù)流大小的統(tǒng)計(jì)結(jié)果也是相吻合的。在線調(diào)度算法和TSAW-Storm執(zhí)行后,集群中各工作節(jié)點(diǎn)的CPU負(fù)載均低于70%且負(fù)載基本均衡,不必再次觸發(fā)任務(wù)調(diào)度;標(biāo)準(zhǔn)差分別為3.47%和3.26%,僅為Storm默認(rèn)調(diào)度算法的27.4%和25.8%??梢?jiàn)兩種任務(wù)調(diào)度算法均能達(dá)到負(fù)載均衡的效果,且TSAW-Storm效果略優(yōu),其執(zhí)行后的CPU負(fù)載標(biāo)準(zhǔn)差相比在線調(diào)度算法降低了5.93%。這是因?yàn)樵谙虺詈笠粋€(gè)工作節(jié)點(diǎn)之外的其他工作節(jié)點(diǎn)逐步遷入任務(wù)的過(guò)程中,每個(gè)工作節(jié)點(diǎn)實(shí)際容納的負(fù)載大小均不能超過(guò)其理想情況下的CPU負(fù)載,這比在線調(diào)度算法中每次尋找具有最低CPU負(fù)載的工作節(jié)點(diǎn)的做法在負(fù)載均衡方面更便于控制。然而通過(guò)表4可以發(fā)現(xiàn),使用TSAW-Storm執(zhí)行任務(wù)調(diào)度后,8號(hào)工作節(jié)點(diǎn)的CPU負(fù)載將略低于其他7個(gè)工作節(jié)點(diǎn),這是由于該調(diào)度算法的工作機(jī)制導(dǎo)致的:在算法1的初始化過(guò)程中,帶權(quán)拓?fù)渲械乃腥蝿?wù)都被擬分配至8號(hào)工作節(jié)點(diǎn),而后再結(jié)合Spout任務(wù)本地化和最大化邊權(quán)增益的思想,將8號(hào)工作節(jié)點(diǎn)中的任務(wù)逐一分析并遷移至其他7個(gè)節(jié)點(diǎn),直到各工作節(jié)點(diǎn)中分配的負(fù)載大小均在剛好大于其理想情況下的CPU負(fù)載為止。這種做法雖然不易導(dǎo)致節(jié)點(diǎn)過(guò)載,且能夠較好地保證1~7號(hào)節(jié)點(diǎn)的負(fù)載均衡,但可能導(dǎo)致位于8號(hào)工作節(jié)點(diǎn)上的任務(wù)被過(guò)多地遷出,進(jìn)而發(fā)生該工作節(jié)點(diǎn)的CPU負(fù)載略低于其他工作節(jié)點(diǎn)的情況。若需解決這一問(wèn)題,可在TSAW-Storm執(zhí)行結(jié)束后,在滿足最優(yōu)通信模型的前提下進(jìn)行少量任務(wù)交換,這將在未來(lái)繼續(xù)開(kāi)展研究。

    表4 三種任務(wù)調(diào)度算法下的CPU負(fù)載對(duì)比Tab. 4 Comparison of CPU load among three task scheduling algorithms

    5 結(jié)語(yǔ)

    Storm默認(rèn)輪詢的任務(wù)調(diào)度算法并未考慮到各任務(wù)計(jì)算開(kāi)銷的差異以及任務(wù)之間不同類型的通信模式,在負(fù)載均衡和節(jié)點(diǎn)間通信開(kāi)銷方面仍存在較大的優(yōu)化空間。針對(duì)這一問(wèn)題,本文將各任務(wù)占用的CPU資源大小作為拓?fù)涞狞c(diǎn)權(quán),任務(wù)間的數(shù)據(jù)流大小作為拓?fù)涞倪厵?quán),提出帶權(quán)拓?fù)涞母拍?;并在此基礎(chǔ)上建立負(fù)載均衡模型和最優(yōu)通信模型,進(jìn)而提出Storm環(huán)境下基于權(quán)重的任務(wù)調(diào)度算法(TSAW-Storm)。該算法利用最大化邊權(quán)增益的思想逐步構(gòu)建起各工作節(jié)點(diǎn)中承載的任務(wù)集合,在保證集群負(fù)載均衡的同時(shí),盡可能將節(jié)點(diǎn)間數(shù)據(jù)流轉(zhuǎn)化為節(jié)點(diǎn)內(nèi)數(shù)據(jù)流,從而減小網(wǎng)絡(luò)開(kāi)銷,提高Storm系統(tǒng)的運(yùn)行效率。實(shí)驗(yàn)通過(guò)基準(zhǔn)測(cè)試WordCount從系統(tǒng)延遲、通信開(kāi)銷以及負(fù)載均衡三個(gè)方面論證了本文調(diào)度算法的有效性。

    下一步研究工作主要集中在以下幾個(gè)方面:1)本文實(shí)驗(yàn)開(kāi)展的背景為同構(gòu)集群環(huán)境,下一步研究中將探索拓?fù)錂?quán)值與CPU性能和網(wǎng)絡(luò)帶寬的關(guān)系,將TSAW-Storm移植至異構(gòu)Storm集群環(huán)境下;2)根據(jù)TSAW-Storm調(diào)度后的任務(wù)分配結(jié)果進(jìn)一步嘗試優(yōu)化,如采用任務(wù)交換等方法,解決某一工作節(jié)點(diǎn)負(fù)載較低的問(wèn)題;3)從拓?fù)渥陨淼慕Y(jié)構(gòu)特征出發(fā),將TSAW-Storm進(jìn)一步推廣至更為復(fù)雜的Storm商業(yè)應(yīng)用領(lǐng)域,使其適用于更為豐富的業(yè)務(wù)場(chǎng)景。

    參考文獻(xiàn)(References)

    [1] 孟小峰,慈祥.大數(shù)據(jù)管理:概念、技術(shù)與挑戰(zhàn)[J].計(jì)算機(jī)研究與發(fā)展,2013,50(1):146-169. (MENG X F, CI X. Big data management: concepts, techniques and challenges [J]. Journal of Computer Research and Development, 2013, 50(1): 146-169.)

    [2] CHEN C L P, ZHANG C Y. Data-intensive applications, challenges, techniques and technologies: a survey on big data [J]. Information Sciences, 2014, 275(11): 314-347.

    [3] TOSHNIWAL A, TANEJA S, SHUKLA A, et al. Storm @Twitter [C]// Proceedings of the 2014 ACM SIGMOD International Conference on Management of Data. New York: ACM, 2014: 147-156.

    [4] Apache. Apache Storm [EB/OL]. (2017-08-01) [2017-08-10]. http://storm.apache.org.

    [5] 孫大為,張廣艷,鄭緯民.大數(shù)據(jù)流式計(jì)算:關(guān)鍵技術(shù)及系統(tǒng)實(shí)例[J].軟件學(xué)報(bào),2014,25(4):839-862. (SUN D W, ZHANG G Y, ZHENG W M. Big data stream computing: technologies and instances [J]. Journal of Software, 2014, 25(4): 839-862.)

    [6] RANJAN R. Streaming big data processing in datacenter clouds [J]. IEEE Cloud Computing, 2014, 1(1): 78-83.

    [7] 王銘坤,袁少光,朱永利,等.基于Storm的海量數(shù)據(jù)實(shí)時(shí)聚類[J].計(jì)算機(jī)應(yīng)用,2014,34(11):3078-3081. (WANG M K, YUAN S G, ZHU Y L, et al. Real-time clustering for massive data using Storm [J]. Journal of Computer Applications,2014,34(11):3078-3081.)

    [8] 喬通,趙卓峰,丁維龍.面向套牌甄別的流式計(jì)算系統(tǒng)[J].計(jì)算機(jī)應(yīng)用,2017,37(1):153-158. (QIAO T, ZHAO Z F, DING W L. Stream computing system for monitoring copy plate vehicles [J]. Journal of Computer Applications, 2017, 37(1): 153-158.)

    [9] TA V D, LIU C M, NKABINDE G W. Big data stream computing in healthcare real-time analytics [C]// Proceedings of 2016 IEEE International Conference on Cloud Computing and Big Data Analysis. Piscataway, NJ: IEEE, 2016:37-42.

    [10] PENG B Y, HOSSEINI M, HONG Z H, et al. R-Storm: resource-aware scheduling in Storm [C]// Proceedings of the 16th Annual Middleware Conference. New York: ACM, 2015: 149-161.

    [11] 劉月超,于炯,魯亮.Storm環(huán)境下一種改進(jìn)的任務(wù)調(diào)度策略[J].新疆大學(xué)學(xué)報(bào)(自然科學(xué)版),2017,34(1):90-95. (LIU Y C, YU J, LU L. An improved task schedule strategy in Storm environment [J]. Journal of Xinjiang University (Natural Science Edition), 2017, 34(1): 90-95.)

    [12] XU J L, CHEN Z H, TANG J, et al. T-Storm: traffic-aware online scheduling in Storm [C]// Proceedings of the 34th IEEE International Conference on Distributed Computing Systems. Piscataway, NJ: IEEE, 2014: 535-544.

    [13] 鄭麗麗,武繼剛,陳勇,等.帶權(quán)圖的均衡k劃分[J].計(jì)算機(jī)研究與發(fā)展,2015,52(3):769-776. (ZHENG L L, WU J G, CHEN Y, et al. Balancedk-way partitioning for weighted graphs [J]. Journal of Computer Research and Development, 2015, 52(3): 769-776.)

    [14] SUN D W, ZHANG G Y, YANG S L, et al. Re-Stream: real-time and energy-efficient resource scheduling in big data stream computing environments [J]. Information Sciences, 2015, 319: 92-112.

    [15] GHADERI J, SHAKKOTTAI S, SRIKANT R. Scheduling storms and streams in the cloud [J]. ACM SIGMETRICS Performance Evaluation Review, 2015, 43(1): 439-440.

    [16] LIU Y, SHI X, JIN H. Runtime-aware adaptive scheduling in stream processing [J]. Concurrency and Computation: Practice and Experience, 2016, 28(14): 3830-3843.

    [17] CARDELLINI V, GRASSI V, LO PRESTI F, et al. Distributed QoS-aware scheduling in Storm [C]// Proceedings of the 9th ACM International Conference on Distributed Event-Based Systems. New York: ACM, 2015: 344-347.

    [18] 熊安萍,王賢穩(wěn),鄒洋.基于Storm拓?fù)浣Y(jié)構(gòu)熱邊的調(diào)度算法[J].計(jì)算機(jī)工程,2017,43(1):37-42.(XIONG A P, WANG X W, ZOU Y. Scheduling algorithm based on Storm topology hot-edge [J]. Computer Engineering, 2017, 43(1):37-42.)

    [19] ESKANDARI L, HUANG Z, EYERS D. P-Scheduler: adaptive hierarchical scheduling in Apache Storm [C]// Proceedings of the Australasian Computer Science Week Multiconference. New York: ACM, 2016: Article No. 26.

    [20] ANIELLO L, BALDONI R, QUERZONI L. Adaptive online scheduling in Storm [C]// Proceedings of the 7th ACM International Conference on Distributed Event-Based Systems. New York: ACM, 2013: 207-218.

    [21] MARZ N. Public stormprocessor/storm-benchmark [EB/OL]. (2012- 08- 20) [2017- 08- 10]. https://github.com/stormprocessor/storm-Benchmark.

    [22] ZHANG M. Intel-hadoop/storm-benchmark forked from manuzhang/storm-benchmark [EB/OL]. (2015- 11- 02) [2017- 08- 10]. https://github.com/intel-hadoop/storm-benchmark.

    This work is partially supported by the National Natural Science Foundation of China (61462079, 61562086), the Natural Science Foundation of Xinjiang Uygur Autonomous Region of China (2017D01A20), the Educational Research Program of Xinjiang Uygur Autonomous Region of China (XJEDU2016S106), the Graduate Research and Innovation Project of Xinjiang Uygur Autonomous Region of China (XJGRI2016028).

    LULiang, born in 1990, Ph. D. candidate. His research interests include distributed computing, in-memory computing.

    YUJiong, born in 1964, Ph. D., professor. His research interests include grid computing, distributed computing.

    BIANChen, born in 1981, Ph. D., associate professor. His research interests include distributed computing, in-memory computing.

    YINGChangtian, born in 1989, Ph. D.. Her research interests include in-memory computing, green storage.

    SHIKangli, born in 1990, M. S. candidate. Her research interests include distributed computing, in-memory computing.

    PUYonglin, born in 1991, M. S. candidate. His research interests include in-memory computing, green computing.

    猜你喜歡
    任務(wù)調(diào)度數(shù)據(jù)流調(diào)度
    汽車維修數(shù)據(jù)流基礎(chǔ)(下)
    《調(diào)度集中系統(tǒng)(CTC)/列車調(diào)度指揮系統(tǒng)(TDCS)維護(hù)手冊(cè)》正式出版
    一種基于負(fù)載均衡的Kubernetes調(diào)度改進(jìn)算法
    虛擬機(jī)實(shí)時(shí)遷移調(diào)度算法
    基于改進(jìn)NSGA-Ⅱ算法的協(xié)同制造任務(wù)調(diào)度研究
    基于時(shí)間負(fù)載均衡蟻群算法的云任務(wù)調(diào)度優(yōu)化
    一種提高TCP與UDP數(shù)據(jù)流公平性的擁塞控制機(jī)制
    云計(jì)算環(huán)境中任務(wù)調(diào)度策略
    基于數(shù)據(jù)流聚類的多目標(biāo)跟蹤算法
    云計(jì)算中基于進(jìn)化算法的任務(wù)調(diào)度策略
    av天堂久久9| 国产av码专区亚洲av| 精品久久久久久电影网| 免费观看a级毛片全部| 久久久久久久久久人人人人人人| 免费大片黄手机在线观看| 一级毛片黄色毛片免费观看视频| 视频在线观看一区二区三区| 久久精品久久久久久噜噜老黄| 97超视频在线观看视频| 国产精品一区二区在线不卡| 精品久久久精品久久久| 一级黄片播放器| 超碰97精品在线观看| 亚洲第一av免费看| 国产欧美亚洲国产| 一级,二级,三级黄色视频| 少妇人妻久久综合中文| 国产片内射在线| 激情五月婷婷亚洲| 丰满迷人的少妇在线观看| 日本爱情动作片www.在线观看| 国产熟女午夜一区二区三区 | 久久久久久久精品精品| 午夜福利网站1000一区二区三区| 成人毛片a级毛片在线播放| 亚洲经典国产精华液单| 欧美日韩一区二区视频在线观看视频在线| 久久精品国产自在天天线| 丰满乱子伦码专区| 国产老妇伦熟女老妇高清| 国产欧美日韩一区二区三区在线 | 久久精品国产自在天天线| 久久午夜综合久久蜜桃| 中文字幕精品免费在线观看视频 | 特大巨黑吊av在线直播| 欧美变态另类bdsm刘玥| 99视频精品全部免费 在线| 永久免费av网站大全| 大话2 男鬼变身卡| 成年美女黄网站色视频大全免费 | 一二三四中文在线观看免费高清| 熟女人妻精品中文字幕| 黑人巨大精品欧美一区二区蜜桃 | 九九爱精品视频在线观看| 日韩亚洲欧美综合| 最近手机中文字幕大全| 国产成人精品在线电影| 在线播放无遮挡| 精品一品国产午夜福利视频| av线在线观看网站| 亚洲久久久国产精品| 91久久精品电影网| 亚洲国产av影院在线观看| 天美传媒精品一区二区| 最近的中文字幕免费完整| 少妇精品久久久久久久| 亚洲中文av在线| 中文欧美无线码| 97超视频在线观看视频| 久久韩国三级中文字幕| 成人二区视频| 欧美老熟妇乱子伦牲交| 在线天堂最新版资源| 日韩不卡一区二区三区视频在线| 亚洲综合色网址| www.色视频.com| 各种免费的搞黄视频| 一级二级三级毛片免费看| 国产精品国产三级专区第一集| 欧美xxxx性猛交bbbb| 亚洲av不卡在线观看| 久热这里只有精品99| 国产av一区二区精品久久| 亚洲av二区三区四区| 汤姆久久久久久久影院中文字幕| 精品99又大又爽又粗少妇毛片| av线在线观看网站| 伊人久久精品亚洲午夜| 91国产中文字幕| 国产男人的电影天堂91| 亚洲情色 制服丝袜| 一本大道久久a久久精品| 国产精品99久久99久久久不卡 | 亚洲美女搞黄在线观看| 99久国产av精品国产电影| 欧美成人精品欧美一级黄| 久久久久久人妻| 另类亚洲欧美激情| 精品熟女少妇av免费看| av免费在线看不卡| 搡老乐熟女国产| 日日摸夜夜添夜夜爱| 欧美3d第一页| 日韩欧美一区视频在线观看| 亚洲,欧美,日韩| 精品熟女少妇av免费看| 婷婷色麻豆天堂久久| 99国产精品免费福利视频| 日日爽夜夜爽网站| 美女内射精品一级片tv| 欧美日韩av久久| 晚上一个人看的免费电影| 免费人成在线观看视频色| 国产成人一区二区在线| 九草在线视频观看| 制服丝袜香蕉在线| 精品国产一区二区久久| 最近最新中文字幕免费大全7| 九色成人免费人妻av| 国产精品久久久久久精品电影小说| 新久久久久国产一级毛片| 99re6热这里在线精品视频| 国产成人精品久久久久久| 精品国产乱码久久久久久小说| 男女国产视频网站| 亚洲欧美中文字幕日韩二区| 黑人巨大精品欧美一区二区蜜桃 | 国产片内射在线| 日本黄色日本黄色录像| 美女大奶头黄色视频| 中国三级夫妇交换| 亚洲精品乱久久久久久| 日日爽夜夜爽网站| 丰满饥渴人妻一区二区三| 秋霞伦理黄片| 日本免费在线观看一区| 哪个播放器可以免费观看大片| 免费播放大片免费观看视频在线观看| 在线观看美女被高潮喷水网站| 曰老女人黄片| 国产日韩欧美在线精品| 免费av不卡在线播放| 亚洲美女黄色视频免费看| 免费不卡的大黄色大毛片视频在线观看| 五月玫瑰六月丁香| 欧美日韩在线观看h| 婷婷色综合www| 老司机亚洲免费影院| 精品少妇内射三级| av女优亚洲男人天堂| 久久久久国产精品人妻一区二区| 亚洲成人一二三区av| 中文字幕久久专区| 久久久国产精品麻豆| 大话2 男鬼变身卡| 亚洲av国产av综合av卡| 久久久亚洲精品成人影院| 日本与韩国留学比较| 这个男人来自地球电影免费观看 | 寂寞人妻少妇视频99o| 婷婷色综合大香蕉| 欧美性感艳星| 久久久久精品性色| 亚洲精品乱码久久久v下载方式| tube8黄色片| 老司机亚洲免费影院| 丝瓜视频免费看黄片| 久久狼人影院| 国产探花极品一区二区| 一区二区日韩欧美中文字幕 | 天天操日日干夜夜撸| 国产国语露脸激情在线看| av一本久久久久| 18禁在线播放成人免费| 妹子高潮喷水视频| 日韩,欧美,国产一区二区三区| 亚洲天堂av无毛| 久久97久久精品| 高清毛片免费看| 亚洲成人av在线免费| 十分钟在线观看高清视频www| av国产久精品久网站免费入址| 嘟嘟电影网在线观看| 日韩成人伦理影院| 欧美精品一区二区免费开放| 97在线视频观看| 草草在线视频免费看| 免费播放大片免费观看视频在线观看| 久久人人爽人人爽人人片va| 成人毛片60女人毛片免费| 中文精品一卡2卡3卡4更新| 插阴视频在线观看视频| 久久99热6这里只有精品| 久久久国产欧美日韩av| 日韩熟女老妇一区二区性免费视频| 欧美精品一区二区大全| 黑人猛操日本美女一级片| 妹子高潮喷水视频| 五月开心婷婷网| 美女主播在线视频| 亚洲成人手机| 欧美97在线视频| 两个人的视频大全免费| 日韩精品有码人妻一区| 男女免费视频国产| 免费黄频网站在线观看国产| 国产精品不卡视频一区二区| 久久精品人人爽人人爽视色| 国产熟女午夜一区二区三区 | 日本欧美国产在线视频| 亚洲美女搞黄在线观看| 久久精品国产亚洲av涩爱| 波野结衣二区三区在线| 久久久亚洲精品成人影院| 在线观看三级黄色| 日韩av免费高清视频| 国产精品99久久久久久久久| 国产成人精品在线电影| 久久精品国产自在天天线| 成人国语在线视频| 青青草视频在线视频观看| 99热6这里只有精品| 精品亚洲成a人片在线观看| 欧美激情国产日韩精品一区| 日本-黄色视频高清免费观看| 免费人妻精品一区二区三区视频| 99热网站在线观看| 免费观看性生交大片5| av电影中文网址| 丝瓜视频免费看黄片| 欧美激情 高清一区二区三区| 亚洲激情五月婷婷啪啪| 99九九线精品视频在线观看视频| 少妇人妻精品综合一区二区| 少妇被粗大的猛进出69影院 | 日韩 亚洲 欧美在线| 国产成人a∨麻豆精品| 欧美亚洲日本最大视频资源| 久久青草综合色| 成人无遮挡网站| 特大巨黑吊av在线直播| 国产伦理片在线播放av一区| 国产有黄有色有爽视频| 少妇被粗大猛烈的视频| 亚洲欧洲日产国产| 成人无遮挡网站| 亚洲国产成人一精品久久久| 一级毛片我不卡| 欧美性感艳星| 久久精品久久久久久久性| 欧美老熟妇乱子伦牲交| 免费高清在线观看视频在线观看| 久久 成人 亚洲| tube8黄色片| 欧美日韩成人在线一区二区| 免费观看无遮挡的男女| 少妇精品久久久久久久| 亚洲精品日韩在线中文字幕| 色视频在线一区二区三区| 纯流量卡能插随身wifi吗| 伦理电影大哥的女人| 久久99精品国语久久久| 亚洲高清免费不卡视频| 久久狼人影院| 91久久精品电影网| 精品少妇久久久久久888优播| 免费黄频网站在线观看国产| 母亲3免费完整高清在线观看 | 黄色视频在线播放观看不卡| 亚洲精品久久成人aⅴ小说 | 69精品国产乱码久久久| 黄片播放在线免费| 蜜桃国产av成人99| 国产成人精品福利久久| 日韩伦理黄色片| 国产一区有黄有色的免费视频| 久久热精品热| 午夜视频国产福利| 久久精品国产鲁丝片午夜精品| 国产不卡av网站在线观看| 国产女主播在线喷水免费视频网站| 国产精品99久久99久久久不卡 | 国产色婷婷99| 久久婷婷青草| 99热全是精品| 乱人伦中国视频| 久久精品国产a三级三级三级| 自线自在国产av| 在线观看免费日韩欧美大片 | 国产免费一区二区三区四区乱码| 欧美 日韩 精品 国产| 午夜免费男女啪啪视频观看| 国产免费一级a男人的天堂| 69精品国产乱码久久久| 久久影院123| 国产精品蜜桃在线观看| 日韩熟女老妇一区二区性免费视频| 久久久国产欧美日韩av| 国产有黄有色有爽视频| 大片电影免费在线观看免费| 一二三四中文在线观看免费高清| 制服人妻中文乱码| av线在线观看网站| 人成视频在线观看免费观看| 大码成人一级视频| 国产精品一区www在线观看| 国产av一区二区精品久久| 亚洲欧洲国产日韩| 精品卡一卡二卡四卡免费| 高清毛片免费看| 伦理电影大哥的女人| 亚洲伊人久久精品综合| 国精品久久久久久国模美| 国产亚洲一区二区精品| 夜夜看夜夜爽夜夜摸| 国产视频首页在线观看| 国产亚洲一区二区精品| 中文字幕人妻丝袜制服| 黄色怎么调成土黄色| 一个人免费看片子| 国产精品国产三级专区第一集| 婷婷色综合www| 国产毛片在线视频| 五月伊人婷婷丁香| 欧美 亚洲 国产 日韩一| a级片在线免费高清观看视频| 亚洲怡红院男人天堂| 麻豆乱淫一区二区| 看十八女毛片水多多多| 最近最新中文字幕免费大全7| 美女cb高潮喷水在线观看| 国产亚洲av片在线观看秒播厂| a级毛色黄片| 国产 精品1| av在线老鸭窝| a级毛片在线看网站| 黄色怎么调成土黄色| 又黄又爽又刺激的免费视频.| 亚洲一区二区三区欧美精品| 黑人欧美特级aaaaaa片| 午夜福利视频在线观看免费| 国产成人精品无人区| 国产高清有码在线观看视频| 久久久久久久国产电影| 国产精品久久久久久久电影| 九色成人免费人妻av| 午夜福利影视在线免费观看| 欧美成人午夜免费资源| 亚洲精品aⅴ在线观看| 人人澡人人妻人| 久久精品国产鲁丝片午夜精品| 欧美精品人与动牲交sv欧美| 啦啦啦视频在线资源免费观看| 又黄又爽又刺激的免费视频.| 国产精品无大码| 日韩欧美精品免费久久| 看免费成人av毛片| 久久久久久久精品精品| 欧美人与善性xxx| 国产精品女同一区二区软件| 久久亚洲国产成人精品v| 国产视频首页在线观看| 热99久久久久精品小说推荐| 亚洲欧洲日产国产| av专区在线播放| 一级a做视频免费观看| 丝袜喷水一区| 各种免费的搞黄视频| 亚洲精品一区蜜桃| 精品久久久久久电影网| 国产无遮挡羞羞视频在线观看| 99精国产麻豆久久婷婷| 亚洲欧美日韩卡通动漫| 免费看不卡的av| 日本vs欧美在线观看视频| 亚洲精品第二区| 国产熟女欧美一区二区| 一级二级三级毛片免费看| 乱码一卡2卡4卡精品| 免费观看av网站的网址| 久久人人爽人人爽人人片va| 少妇丰满av| 亚洲怡红院男人天堂| 插阴视频在线观看视频| 色5月婷婷丁香| 免费播放大片免费观看视频在线观看| 一二三四中文在线观看免费高清| 午夜免费男女啪啪视频观看| 爱豆传媒免费全集在线观看| 妹子高潮喷水视频| 午夜福利在线观看免费完整高清在| 少妇的逼好多水| 蜜桃久久精品国产亚洲av| 久久女婷五月综合色啪小说| 亚洲精品乱久久久久久| 免费黄色在线免费观看| 亚洲经典国产精华液单| 男女国产视频网站| 国产色爽女视频免费观看| 日本午夜av视频| 精品人妻熟女av久视频| 日本-黄色视频高清免费观看| 久久午夜福利片| 伊人久久精品亚洲午夜| 亚洲内射少妇av| 久久精品国产亚洲av天美| 人人妻人人澡人人看| 亚洲美女搞黄在线观看| 99热网站在线观看| 国产精品麻豆人妻色哟哟久久| 欧美精品国产亚洲| 中文字幕久久专区| 国产精品欧美亚洲77777| av视频免费观看在线观看| 亚洲精品国产色婷婷电影| 国产成人午夜福利电影在线观看| 欧美性感艳星| 国产在线视频一区二区| 久久韩国三级中文字幕| 人体艺术视频欧美日本| 一本一本综合久久| 亚洲精品aⅴ在线观看| 51国产日韩欧美| 只有这里有精品99| 免费看av在线观看网站| 日韩中字成人| 内地一区二区视频在线| 日韩制服骚丝袜av| 国产高清三级在线| 九色成人免费人妻av| 18+在线观看网站| 黄片播放在线免费| 国产精品一区二区三区四区免费观看| 国产免费一区二区三区四区乱码| 精品熟女少妇av免费看| 黄色视频在线播放观看不卡| 蜜臀久久99精品久久宅男| 欧美3d第一页| 人人妻人人澡人人看| 精品亚洲成国产av| 高清av免费在线| 国产精品人妻久久久久久| 91精品一卡2卡3卡4卡| 国产成人av激情在线播放 | 久久精品国产自在天天线| 国产在线一区二区三区精| 亚州av有码| 精品人妻在线不人妻| 18禁在线播放成人免费| av有码第一页| 亚洲欧美清纯卡通| 国产永久视频网站| 妹子高潮喷水视频| 少妇人妻 视频| 国产一区有黄有色的免费视频| 男女边吃奶边做爰视频| a级片在线免费高清观看视频| 国产高清有码在线观看视频| 国产av精品麻豆| 亚洲国产色片| freevideosex欧美| 女的被弄到高潮叫床怎么办| av免费在线看不卡| 丝袜喷水一区| 一级片'在线观看视频| 一级毛片aaaaaa免费看小| 免费久久久久久久精品成人欧美视频 | 亚洲色图 男人天堂 中文字幕 | 日韩 亚洲 欧美在线| 超色免费av| 丰满饥渴人妻一区二区三| 嫩草影院入口| 成人亚洲欧美一区二区av| 亚洲欧美清纯卡通| av网站免费在线观看视频| 亚洲精品第二区| 只有这里有精品99| 亚洲不卡免费看| 日韩三级伦理在线观看| 在线播放无遮挡| 久久国产亚洲av麻豆专区| 国产熟女欧美一区二区| 午夜激情福利司机影院| 亚洲欧洲国产日韩| 一级毛片aaaaaa免费看小| 综合色丁香网| 你懂的网址亚洲精品在线观看| 欧美精品亚洲一区二区| 男人操女人黄网站| 午夜福利视频在线观看免费| av天堂久久9| 国产白丝娇喘喷水9色精品| 亚洲四区av| 欧美日韩成人在线一区二区| 伊人久久国产一区二区| 欧美国产精品一级二级三级| 欧美日本中文国产一区发布| av不卡在线播放| 一区二区三区精品91| 成年av动漫网址| 中文精品一卡2卡3卡4更新| 久久av网站| 欧美日韩国产mv在线观看视频| 国产精品 国内视频| 亚洲av不卡在线观看| 精品久久蜜臀av无| 91精品三级在线观看| 日韩免费高清中文字幕av| 男女啪啪激烈高潮av片| 蜜桃久久精品国产亚洲av| 国产亚洲欧美精品永久| 欧美日本中文国产一区发布| 在现免费观看毛片| 日本色播在线视频| 国产成人精品一,二区| 美女xxoo啪啪120秒动态图| 久久久久久久久久人人人人人人| 午夜激情福利司机影院| 菩萨蛮人人尽说江南好唐韦庄| 午夜免费观看性视频| xxxhd国产人妻xxx| 亚洲av日韩在线播放| 亚洲av综合色区一区| 97超视频在线观看视频| 欧美+日韩+精品| 一区二区三区乱码不卡18| 国产黄色免费在线视频| 日日啪夜夜爽| 成人18禁高潮啪啪吃奶动态图 | 日本av手机在线免费观看| 狠狠婷婷综合久久久久久88av| 久久99热6这里只有精品| 日日撸夜夜添| 国产伦理片在线播放av一区| 少妇人妻久久综合中文| 赤兔流量卡办理| 大片免费播放器 马上看| 久久久亚洲精品成人影院| 久久久久久人妻| 多毛熟女@视频| 成人免费观看视频高清| 狂野欧美激情性bbbbbb| 日韩不卡一区二区三区视频在线| 两个人免费观看高清视频| 在线观看美女被高潮喷水网站| 中文字幕人妻丝袜制服| 成人二区视频| 又粗又硬又长又爽又黄的视频| 高清视频免费观看一区二区| 亚洲av免费高清在线观看| 哪个播放器可以免费观看大片| 黄色欧美视频在线观看| 亚洲,一卡二卡三卡| 满18在线观看网站| 国产69精品久久久久777片| 日韩三级伦理在线观看| 欧美日本中文国产一区发布| 精品一区二区三区视频在线| 又大又黄又爽视频免费| 久久毛片免费看一区二区三区| 精品国产国语对白av| 免费高清在线观看视频在线观看| 免费黄频网站在线观看国产| 日本av手机在线免费观看| 两个人的视频大全免费| 久久久久久人妻| 国产亚洲最大av| 久久国产精品大桥未久av| 国产精品国产三级国产专区5o| 国产精品国产三级国产av玫瑰| 久久久久久久久久成人| 免费日韩欧美在线观看| 最新中文字幕久久久久| 久久久精品免费免费高清| 美女福利国产在线| 18在线观看网站| 丝袜喷水一区| 亚洲色图综合在线观看| 高清午夜精品一区二区三区| 欧美日韩av久久| 国产午夜精品久久久久久一区二区三区| 亚洲国产欧美日韩在线播放| 国产精品秋霞免费鲁丝片| 18禁在线无遮挡免费观看视频| 久久国产精品男人的天堂亚洲 | 日本色播在线视频| 99久久精品国产国产毛片| 免费黄频网站在线观看国产| 五月玫瑰六月丁香| 秋霞伦理黄片| 国产日韩一区二区三区精品不卡 | 国产精品久久久久久久电影| 国产精品久久久久久精品电影小说| 这个男人来自地球电影免费观看 | 精品少妇黑人巨大在线播放| 精品少妇内射三级| 亚洲国产精品一区二区三区在线| 亚洲五月色婷婷综合| 亚洲色图 男人天堂 中文字幕 | 少妇熟女欧美另类| 国产熟女午夜一区二区三区 | 久久久久久久久大av| 在线观看免费视频网站a站| 青青草视频在线视频观看| 波野结衣二区三区在线| 久久久久网色| 街头女战士在线观看网站| 99久久人妻综合| 色哟哟·www| 欧美人与善性xxx| 一区二区三区免费毛片| 国产精品 国内视频| 丁香六月天网| 高清不卡的av网站| 超色免费av| 日韩精品免费视频一区二区三区 | 少妇人妻精品综合一区二区| 一本—道久久a久久精品蜜桃钙片| www.av在线官网国产| 国产日韩欧美视频二区| 一级片'在线观看视频| 国产av精品麻豆| 久久久久久久大尺度免费视频| 搡老乐熟女国产|