用于Storm流計算框架的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機領(lǐng)域,具體地,涉及一種用于Storm流計算框架的方法和裝置。
【背景技術(shù)】
[0002]Storm是一個分布式的實時計算系統(tǒng),可以方便地在一個計算機集群中編寫與擴展復(fù)雜的實時計算。Storm流計算框架具有靈活的處理流程構(gòu)建、高效的分布式并行以及透明容錯等特點,能夠有效地提高實時流處理應(yīng)用的開發(fā)效率,成為產(chǎn)業(yè)界快速構(gòu)建實時流計算應(yīng)用的首選。
[0003]Storm中應(yīng)用對數(shù)據(jù)流的處理邏輯被定義在拓?fù)?Topology)中,每一個拓?fù)溆啥鄠€組件組成,這些組件包括輸入源組件(Spout)和處理組件(Bolt)。輸入源組件從輸入源讀取數(shù)據(jù)并向拓?fù)淅锩姘l(fā)出消息(tuple),而處理組件將來自輸入源組件的消息進(jìn)行處理(例如,過濾、聚合、查詢數(shù)據(jù)庫等操作),產(chǎn)生并輸出新的消息。
[0004]在Storm流的分布式計算框架的相關(guān)技術(shù)中,處理組件的處理并發(fā)線程數(shù)通常是通過硬編碼來設(shè)置的。這樣,寫入代碼提交以后配置給各個處理組件的處理并發(fā)線程數(shù)是固定的。在實際運行中,可能有的處理并發(fā)線程非常繁忙,而有的處理并發(fā)線程非常空閑,出現(xiàn)集群資源不能夠有效利用的情況。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的是提供一種能夠有效利用集群資源的用于Storm流計算框架的方法和裝置。
[0006]為了實現(xiàn)上述目的,本發(fā)明提供一種用于Storm流計算框架的方法,所述Storm流計算框架包括多個處理組件,所述多個處理組件設(shè)置有多個處理并發(fā)線程,所述方法包括:分別統(tǒng)計所述多個處理組件中的每個處理組件在多個時間段中的每個時間段內(nèi)的工作量,得到工作量歷史規(guī)律;以及根據(jù)所述工作量歷史規(guī)律來調(diào)整所述每個時間段內(nèi)所述多個處理并發(fā)線程在所述多個處理組件之間的數(shù)量配比,使得在所述每個時間段內(nèi),所述多個處理并發(fā)線程中的任意兩個處理并發(fā)線程的工作量的比率處于預(yù)定的閾值范圍內(nèi)。
[0007]優(yōu)選地,所述工作量包括接收的消息數(shù)量和/或處理消息所花費的時間。
[0008]優(yōu)選地,所述多個處理組件包括第一處理組件和第二處理組件,所述根據(jù)所述工作量歷史規(guī)律來調(diào)整所述每個時間段內(nèi)所述多個處理并發(fā)線程在所述多個處理組件之間的數(shù)量配比的步驟包括:根據(jù)所述每個時間段內(nèi)第一平均工作量與第二平均工作量的比率來調(diào)整對應(yīng)的時間段內(nèi)所述多個處理并發(fā)線程在所述第一處理組件與所述第二處理組件之間的數(shù)量配比,其中,所述第一平均工作量為所述第一處理組件中的處理并發(fā)線程的平均工作量,所述第二平均工作量為所述第二處理組件中的處理并發(fā)線程的平均工作量。
[0009]優(yōu)選地,所述根據(jù)所述每個時間段內(nèi)第一平均工作量與第二平均工作量的比率來調(diào)整對應(yīng)的時間段內(nèi)所述多個處理并發(fā)線程在所述第一處理組件與所述第二處理組件之間的數(shù)量配比的步驟包括:在所述多個時間段中的一個時間段內(nèi)所述第一平均工作量與所述第二平均工作量的比率大于預(yù)定的比率閾值的情況下,在所述第一處理組件中增加預(yù)定數(shù)量的處理并發(fā)線程,并在所述第二處理組件中減少所述預(yù)定數(shù)量的處理并發(fā)線程。
[0010]優(yōu)選地,所述多個處理組件包括第一處理組件和第二處理組件,所述根據(jù)所述工作量歷史規(guī)律來調(diào)整所述每個時間段內(nèi)所述多個處理并發(fā)線程在所述多個處理組件之間的數(shù)量配比的步驟包括:根據(jù)所述每個時間段內(nèi)所述第一處理組件的工作量與所述第二處理組件的工作量的比率來調(diào)整對應(yīng)的時間段內(nèi)所述多個處理并發(fā)線程在所述第一處理組件與所述第二處理組件之間的數(shù)量配比。
[0011]優(yōu)選地,所述根據(jù)所述每個時間段內(nèi)所述第一處理組件的工作量與所述第二處理組件的工作量的比率來調(diào)整對應(yīng)的時間段內(nèi)所述多個處理并發(fā)線程在所述第一處理組件與所述第二處理組件之間的數(shù)量配比的步驟包括:在所述多個時間段中的一個時間段內(nèi)工作量比率與處理并發(fā)線程數(shù)比率的比率大于預(yù)定的比率閾值的情況下,在所述第一處理組件中增加預(yù)定數(shù)量的處理并發(fā)線程,并在所述第二處理組件中減少所述預(yù)定數(shù)量的處理并發(fā)線程,其中,所述工作量比率為所述第一處理組件的工作量與所述第二處理組件的工作量的比率,所述處理并發(fā)線程數(shù)比率為所述第一處理組件的處理并發(fā)線程數(shù)與所述第二處理組件的處理并發(fā)線程數(shù)的比率。
[0012]優(yōu)選地,所述多個處理組件設(shè)置在多個服務(wù)器上,所述方法還包括:統(tǒng)計所述多個服務(wù)器中的每個服務(wù)器的資源使用率;以及將所增加的處理并發(fā)線程設(shè)置在所述多個服務(wù)器中資源使用率最低的服務(wù)器中。
[0013]優(yōu)選地,所述Storm流計算框架還包括輸入源組件,所述輸入源組件設(shè)置有多個輸入源并發(fā)線程,所述多個輸入源并發(fā)線程中的每個輸入源并發(fā)線程分別讀取相應(yīng)的數(shù)據(jù)并將所讀取的數(shù)據(jù)進(jìn)行發(fā)送,所述方法還包括:分別確定所述多個輸入源并發(fā)線程中的每個輸入源并發(fā)線程所讀取的數(shù)據(jù)所在的服務(wù)器;以及分別將所述每個輸入源并發(fā)線程設(shè)置在各自所讀取的數(shù)據(jù)所在的服務(wù)器中。
[0014]本發(fā)明還提供一種用于Storm流計算框架的裝置,所述Storm流計算框架包括多個處理組件,所述多個處理組件設(shè)置有多個處理并發(fā)線程,所述裝置包括:工作量統(tǒng)計模塊,用于分別統(tǒng)計所述多個處理組件中的每個處理組件在多個時間段中的每個時間段內(nèi)的工作量,得到工作量歷史規(guī)律;以及調(diào)整模塊,用于根據(jù)所述工作量歷史規(guī)律來調(diào)整所述每個時間段內(nèi)所述多個處理并發(fā)線程在所述多個處理組件之間的數(shù)量配比,使得在所述每個時間段內(nèi),所述多個處理并發(fā)線程中的任意兩個處理并發(fā)線程的工作量的比率處于預(yù)定的閾值范圍內(nèi)。
[0015]通過上述技術(shù)方案,能夠基于統(tǒng)計的工作量歷史規(guī)律,動態(tài)地調(diào)整多個處理組件之間的處理并發(fā)線程的數(shù)量配比,以使處理組件的處理并發(fā)線程以更優(yōu)的拓?fù)溥M(jìn)行分布,從而能夠充分地利用集群的計算資源,提高了執(zhí)行效率。
[0016]本發(fā)明的其他特征和優(yōu)點將在隨后的【具體實施方式】部分予以詳細(xì)說明。
【附圖說明】
[0017]附圖是用來提供對本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與下面的【具體實施方式】一起用于解釋本發(fā)明,但并不構(gòu)成對本發(fā)明的限制。在附圖中:
[0018]圖1是一示例性實施方式提供的用于Storm流計算框架的方法的流程圖;
[0019]圖2是一示例性實施方式提供的處理組件的工作量歷史規(guī)律的曲線圖;
[0020]圖3是另一示例性實施方式提供的用于Storm流計算框架的方法的流程圖;
[0021]圖4是又一示例性實施方式提供的用于Storm流計算框架的方法的流程圖;
[0022]圖5是又一示例性實施方式提供的用于Storm流計算框架的方法的流程圖;
[0023]圖6是又一示例性實施方式提供的用于Storm流計算框架的方法的流程圖;
[0024]圖7是又一示例性實施方式提供的用于Storm流計算框架的方法的流程圖;
[0025]圖8是又一示例性實施方式提供的用于Storm流計算框架的方法的流程圖;
[0026]圖9是一示例性實施方式提供的用于Storm流計算框架的裝置的結(jié)構(gòu)框圖;
[0027]圖10是另一示例性實施方式提供的用于Storm流計算框架的裝置的結(jié)構(gòu)框圖;
[0028]圖11是又一示例性實施方式提供的用于Storm流計算框架的裝置的結(jié)構(gòu)框圖;
[0029]圖12是又一示例性實施方式提供的用于Storm流計算框架的裝置的結(jié)構(gòu)框圖;
[0030]圖13是又一示例性實施方式提供的用于Storm流計算框架的裝置的結(jié)構(gòu)框圖;
[0031]圖14是又一示例性實施方式提供的用于Storm流計算框架的裝置的結(jié)構(gòu)框圖;以及
[0032]圖15是又一示例性實施方式提供的用于Storm流計算框架的裝置的結(jié)構(gòu)框圖。
【具體實施方式】
[0033]以下結(jié)合附圖對本發(fā)明的【具體實施方式】進(jìn)行詳細(xì)說明。應(yīng)當(dāng)理解的是,此處所描述的【具體實施方式】僅用于說明和解釋本發(fā)明,并不用于限制本發(fā)明。
[0034]在相關(guān)技術(shù)中,St