多數(shù)據(jù)流協(xié)同處理技術(shù)的研究與實(shí)現(xiàn)
發(fā)布時(shí)間:2021-03-27 22:36
目前主流的流處理框架采用的都是分布式子任務(wù)獨(dú)立計(jì)算的設(shè)計(jì)模式,分布式子任務(wù)在處理過程中彼此不發(fā)生信息交互,無法獲取其他子任務(wù)的信息要素,分布式子任務(wù)間難以進(jìn)行協(xié)同處理。同時(shí),在一些流處理場景中存在具有時(shí)序性特征的數(shù)據(jù),這類數(shù)據(jù)在進(jìn)行后續(xù)的分析處理前必須完成時(shí)序同步的操作。一方面,為解決流處理框架在分布式子任務(wù)難以進(jìn)行協(xié)同計(jì)算的問題,本文基于Apache Storm的流處理框架引入?yún)f(xié)同處理的模式,構(gòu)建起分布式子任務(wù)間協(xié)同計(jì)算的能力。首先基于Storm實(shí)現(xiàn)跨分布式子任務(wù)間的實(shí)時(shí)消息傳遞,用于為協(xié)同計(jì)算算子分發(fā)、數(shù)據(jù)同步提供技術(shù)支撐,然后進(jìn)行了分布式子任務(wù)協(xié)同計(jì)算的建模工作,并對(duì)模型中的各個(gè)模塊進(jìn)行了設(shè)計(jì)和實(shí)現(xiàn),從而支持用戶通過指定算子類型、配置算子內(nèi)容實(shí)現(xiàn)跨子任務(wù)的協(xié)同計(jì)算。另一方面,針對(duì)多數(shù)據(jù)流的時(shí)序同步問題,本文設(shè)計(jì)了主從式結(jié)構(gòu)的時(shí)序同步模塊。該模塊通過Akka并發(fā)處理框架進(jìn)行實(shí)現(xiàn),并基于Akka框架的Actor模型實(shí)現(xiàn)了模塊中各類角色的消息交互,以及設(shè)計(jì)了模塊中交互的消息類型和數(shù)據(jù)結(jié)構(gòu),確定了模塊中主控節(jié)點(diǎn)和工作節(jié)點(diǎn)各自處理相應(yīng)消息的流程;谏鲜龅难芯抗ぷ,本文設(shè)計(jì)和實(shí)現(xiàn)了面向多數(shù)...
【文章來源】:中國電子科技集團(tuán)公司電子科學(xué)研究院北京市
【文章頁數(shù)】:67 頁
【學(xué)位級(jí)別】:碩士
【部分圖文】:
圖2.131;〇1111拓?fù)涫纠龍D[3()]??(2)組件(Component):由Spout和Bolt兩部分組成
Bolt4??Bolt?2?,?/??^=7??〔Spout?B)?J?Bolt?3?'??圖2.131;〇1111拓?fù)涫纠龍D[3()]??(2)組件(Component):由Spout和Bolt兩部分組成。??(3)?Spout:它是外部數(shù)據(jù)接入至Storm平臺(tái)的源頭,描述了數(shù)據(jù)是接入到??Storm集群的具體邏輯,通常Spout可以從日志、關(guān)系型或非關(guān)系型數(shù)據(jù)庫、消??息隊(duì)列、分布式文件系統(tǒng)(HDFS)等數(shù)據(jù)來源進(jìn)行數(shù)據(jù)的讀取,然后按照相應(yīng)??的邏輯流入系統(tǒng)拓?fù)渲小??(4)?Bolt:包含拓?fù)渲袑?duì)數(shù)據(jù)進(jìn)行處理的具體邏輯,是拓?fù)渲袌?zhí)行流計(jì)算??的組件單元,通常開發(fā)人員可根據(jù)實(shí)際業(yè)務(wù)需求進(jìn)行如條件過濾、數(shù)據(jù)聚合等操??作的編程開發(fā)。??上述術(shù)語主要是Apache?Storm中對(duì)一^^流處理過程中靜態(tài)事物的表達(dá),當(dāng)??完成一個(gè)拓?fù)涞臉?gòu)建并進(jìn)行拓?fù)涞奶峤缓,?dòng)態(tài)的組件(概念)將會(huì)具體體現(xiàn)出??來
間進(jìn)行消息的交互,但是Storm內(nèi)部并不存在Topology之間的通信機(jī)制,開發(fā)??人員需要自己進(jìn)行實(shí)現(xiàn)。??如圖2.3所示為Worker內(nèi)部接收、處理和傳輸消息的流程示意圖。??I?」?Executors??I??Executors??p?工作線程k?發(fā)送線程?k?M?Executors??|?mm?(^—?—^?Q:?\?傳輸區(qū)??圖2.3?Worker內(nèi)部消息收發(fā)流程圖[34]??對(duì)于每個(gè)Worker來說,都會(huì)存在相應(yīng)的一個(gè)接收線程監(jiān)聽相應(yīng)的端口,該??端口通常為Storm的配置項(xiàng)supervisor.slots.ports所定義的端口之一,該接收線程??主要功能為接收來自于網(wǎng)絡(luò)中的消息并將消息傳輸至該Worker內(nèi)部的Executor??的接收隊(duì)列中去,接收線程中的緩沖區(qū)的大小可通過配置文件Storm.yaml中的??配置項(xiàng)topology.receiver.buffer.size進(jìn)行設(shè)置。相應(yīng)地,每個(gè)Worker內(nèi)部同時(shí)存??在一個(gè)單獨(dú)的發(fā)送線程,它的功能為從傳輸隊(duì)列中拉取消息,并通過網(wǎng)絡(luò)將消息??發(fā)送至集群中的其他Workei?。其中傳輸隊(duì)列的大小可通過配置文件Storm.yaml??中的配置項(xiàng)topology.transfer.buffer.size進(jìn)行設(shè)置。在圖中可以看出,每個(gè)工作進(jìn)??程(Worker)中可能包含一個(gè)或者多個(gè)工作線程(Executor),用戶都可以通過代??碼進(jìn)行相應(yīng)的設(shè)置。在上圖中包含了?Executor內(nèi)部的運(yùn)行模型
【參考文獻(xiàn)】:
期刊論文
[1]面向電力大數(shù)據(jù)的多數(shù)據(jù)流實(shí)時(shí)處理技術(shù)研究[J]. 孟慶強(qiáng),胡牧,孫立華,鄭浩泉. 計(jì)算機(jī)與數(shù)字工程. 2018(05)
[2]分布式流處理技術(shù)綜述[J]. 崔星燦,禹曉輝,劉洋,呂朝陽. 計(jì)算機(jī)研究與發(fā)展. 2015(02)
[3]面向大數(shù)據(jù)的分布式流處理技術(shù)綜述[J]. 張鵬,李鵬霄,任彥,林海倫,楊嶸,鄭超. 計(jì)算機(jī)研究與發(fā)展. 2014(S2)
[4]大數(shù)據(jù)流式計(jì)算:關(guān)鍵技術(shù)及系統(tǒng)實(shí)例[J]. 孫大為,張廣艷,鄭緯民. 軟件學(xué)報(bào). 2014(04)
[5]基于云計(jì)算的分布式數(shù)據(jù)協(xié)同處理機(jī)制研究[J]. 李文虎. 湘潭大學(xué)自然科學(xué)學(xué)報(bào). 2013(04)
[6]云計(jì)算環(huán)境下海量分布式數(shù)據(jù)處理協(xié)同機(jī)制的研究[J]. 戴炳榮,宋俊典,錢俊玲. 計(jì)算機(jī)應(yīng)用與軟件. 2013(01)
本文編號(hào):3104357
【文章來源】:中國電子科技集團(tuán)公司電子科學(xué)研究院北京市
【文章頁數(shù)】:67 頁
【學(xué)位級(jí)別】:碩士
【部分圖文】:
圖2.131;〇1111拓?fù)涫纠龍D[3()]??(2)組件(Component):由Spout和Bolt兩部分組成
Bolt4??Bolt?2?,?/??^=7??〔Spout?B)?J?Bolt?3?'??圖2.131;〇1111拓?fù)涫纠龍D[3()]??(2)組件(Component):由Spout和Bolt兩部分組成。??(3)?Spout:它是外部數(shù)據(jù)接入至Storm平臺(tái)的源頭,描述了數(shù)據(jù)是接入到??Storm集群的具體邏輯,通常Spout可以從日志、關(guān)系型或非關(guān)系型數(shù)據(jù)庫、消??息隊(duì)列、分布式文件系統(tǒng)(HDFS)等數(shù)據(jù)來源進(jìn)行數(shù)據(jù)的讀取,然后按照相應(yīng)??的邏輯流入系統(tǒng)拓?fù)渲小??(4)?Bolt:包含拓?fù)渲袑?duì)數(shù)據(jù)進(jìn)行處理的具體邏輯,是拓?fù)渲袌?zhí)行流計(jì)算??的組件單元,通常開發(fā)人員可根據(jù)實(shí)際業(yè)務(wù)需求進(jìn)行如條件過濾、數(shù)據(jù)聚合等操??作的編程開發(fā)。??上述術(shù)語主要是Apache?Storm中對(duì)一^^流處理過程中靜態(tài)事物的表達(dá),當(dāng)??完成一個(gè)拓?fù)涞臉?gòu)建并進(jìn)行拓?fù)涞奶峤缓,?dòng)態(tài)的組件(概念)將會(huì)具體體現(xiàn)出??來
間進(jìn)行消息的交互,但是Storm內(nèi)部并不存在Topology之間的通信機(jī)制,開發(fā)??人員需要自己進(jìn)行實(shí)現(xiàn)。??如圖2.3所示為Worker內(nèi)部接收、處理和傳輸消息的流程示意圖。??I?」?Executors??I??Executors??p?工作線程k?發(fā)送線程?k?M?Executors??|?mm?(^—?—^?Q:?\?傳輸區(qū)??圖2.3?Worker內(nèi)部消息收發(fā)流程圖[34]??對(duì)于每個(gè)Worker來說,都會(huì)存在相應(yīng)的一個(gè)接收線程監(jiān)聽相應(yīng)的端口,該??端口通常為Storm的配置項(xiàng)supervisor.slots.ports所定義的端口之一,該接收線程??主要功能為接收來自于網(wǎng)絡(luò)中的消息并將消息傳輸至該Worker內(nèi)部的Executor??的接收隊(duì)列中去,接收線程中的緩沖區(qū)的大小可通過配置文件Storm.yaml中的??配置項(xiàng)topology.receiver.buffer.size進(jìn)行設(shè)置。相應(yīng)地,每個(gè)Worker內(nèi)部同時(shí)存??在一個(gè)單獨(dú)的發(fā)送線程,它的功能為從傳輸隊(duì)列中拉取消息,并通過網(wǎng)絡(luò)將消息??發(fā)送至集群中的其他Workei?。其中傳輸隊(duì)列的大小可通過配置文件Storm.yaml??中的配置項(xiàng)topology.transfer.buffer.size進(jìn)行設(shè)置。在圖中可以看出,每個(gè)工作進(jìn)??程(Worker)中可能包含一個(gè)或者多個(gè)工作線程(Executor),用戶都可以通過代??碼進(jìn)行相應(yīng)的設(shè)置。在上圖中包含了?Executor內(nèi)部的運(yùn)行模型
【參考文獻(xiàn)】:
期刊論文
[1]面向電力大數(shù)據(jù)的多數(shù)據(jù)流實(shí)時(shí)處理技術(shù)研究[J]. 孟慶強(qiáng),胡牧,孫立華,鄭浩泉. 計(jì)算機(jī)與數(shù)字工程. 2018(05)
[2]分布式流處理技術(shù)綜述[J]. 崔星燦,禹曉輝,劉洋,呂朝陽. 計(jì)算機(jī)研究與發(fā)展. 2015(02)
[3]面向大數(shù)據(jù)的分布式流處理技術(shù)綜述[J]. 張鵬,李鵬霄,任彥,林海倫,楊嶸,鄭超. 計(jì)算機(jī)研究與發(fā)展. 2014(S2)
[4]大數(shù)據(jù)流式計(jì)算:關(guān)鍵技術(shù)及系統(tǒng)實(shí)例[J]. 孫大為,張廣艷,鄭緯民. 軟件學(xué)報(bào). 2014(04)
[5]基于云計(jì)算的分布式數(shù)據(jù)協(xié)同處理機(jī)制研究[J]. 李文虎. 湘潭大學(xué)自然科學(xué)學(xué)報(bào). 2013(04)
[6]云計(jì)算環(huán)境下海量分布式數(shù)據(jù)處理協(xié)同機(jī)制的研究[J]. 戴炳榮,宋俊典,錢俊玲. 計(jì)算機(jī)應(yīng)用與軟件. 2013(01)
本文編號(hào):3104357
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/3104357.html
最近更新
教材專著