基于Storm的數(shù)據(jù)實(shí)時(shí)處理系統(tǒng)任務(wù)調(diào)度機(jī)制研究
發(fā)布時(shí)間:2020-08-20 17:49
【摘要】:由于分散的各個(gè)天文臺(tái)源源不斷地產(chǎn)生天文觀測(cè)數(shù)據(jù),為了方便檢索,要求天文元數(shù)據(jù)的處理系統(tǒng)必須具備很高的實(shí)時(shí)性,而傳統(tǒng)的批處理大數(shù)據(jù)平臺(tái)需要將數(shù)據(jù)下載存儲(chǔ)后再處理,因此難以滿足系統(tǒng)的高實(shí)時(shí)性要求。Storm作為一個(gè)分布式流數(shù)據(jù)實(shí)時(shí)處理框架,能夠保證大流量數(shù)據(jù)處理的時(shí)效性,因此本文考慮將其應(yīng)用到天文元數(shù)據(jù)處理系統(tǒng)中,以實(shí)現(xiàn)數(shù)據(jù)流的實(shí)時(shí)接收與處理。通過分析發(fā)現(xiàn)影響Storm系統(tǒng)性能的核心問題之一是系統(tǒng)任務(wù)調(diào)度機(jī)制。目前Storm系統(tǒng)使用的默認(rèn)調(diào)度機(jī)制為簡(jiǎn)單的輪詢機(jī)制,雖然能夠?qū)崿F(xiàn)一定的負(fù)載均衡,但是針對(duì)天文元數(shù)據(jù)實(shí)時(shí)處理更復(fù)雜的任務(wù)需求,將產(chǎn)生較大的系統(tǒng)性能瓶頸。針對(duì)Storm系統(tǒng)調(diào)度問題,本文主要從兩個(gè)部分共同實(shí)現(xiàn)優(yōu)化:第一個(gè)方面是增加系統(tǒng)彈性機(jī)制以提高系統(tǒng)的資源利用;第二個(gè)部分是通過優(yōu)化任務(wù)部署來減小系統(tǒng)的通信開銷。首先,針對(duì)Storm系統(tǒng)彈性機(jī)制缺失問題,論文提出在系統(tǒng)中嵌入一個(gè)實(shí)時(shí)的自適應(yīng)彈性機(jī)制模塊,通過不斷獲取系統(tǒng)運(yùn)行的狀態(tài)信息,根據(jù)信息做出相對(duì)應(yīng)的調(diào)度決策,動(dòng)態(tài)的為每個(gè)Topology應(yīng)用配置合理的計(jì)算資源,使系統(tǒng)的資源可以得到更充分的利用;然后,針對(duì)目前任務(wù)部署不合理而造成系統(tǒng)通信開銷過大的問題,論文提出了一種基于圖劃分技術(shù)的任務(wù)部署調(diào)度優(yōu)化方法。具體做法是將運(yùn)行中的Topology計(jì)算應(yīng)用看作一張帶權(quán)重的圖,然后利用圖劃分技術(shù)來對(duì)這張圖進(jìn)行處理,得到一個(gè)合理的任務(wù)部署優(yōu)化調(diào)度方案。調(diào)度方案在保證負(fù)載均衡的條件下,可以有效地減小系統(tǒng)的通信開銷。最后將調(diào)度方案提交給系統(tǒng)實(shí)施調(diào)度,實(shí)現(xiàn)減少系統(tǒng)處理時(shí)延,提高系統(tǒng)吞吐量的目標(biāo)。論文對(duì)提出的調(diào)度優(yōu)化方案進(jìn)行了實(shí)現(xiàn)并搭建了實(shí)驗(yàn)環(huán)境,對(duì)系統(tǒng)的功能及性能進(jìn)行了全面測(cè)試。試驗(yàn)結(jié)果表明,論文設(shè)計(jì)的調(diào)度優(yōu)化方案能夠在資源利用,系統(tǒng)處理時(shí)延以及吞吐量方面實(shí)現(xiàn)性能的提升。該調(diào)度方案的研究與實(shí)現(xiàn),有效提升了Storm系統(tǒng)的性能,為天文元數(shù)據(jù)的實(shí)時(shí)處理提供了關(guān)鍵技術(shù)支撐。
【學(xué)位授予單位】:重慶郵電大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位授予年份】:2018
【分類號(hào)】:TP274;O157.5;P11
【圖文】:
圖 2.1 Storm 系統(tǒng)框架圖節(jié)點(diǎn)被稱為 Worker Node,也被稱為工作節(jié)點(diǎn),在這些工作節(jié)點(diǎn)當(dāng)中叫 Supervisor 的程序。Supervisor 可以理解為單機(jī)任務(wù)調(diào)度器,它負(fù)bus 程序發(fā)出的任務(wù)調(diào)度,然后啟動(dòng)相應(yīng)的 Worker 進(jìn)程對(duì) Nimbus 分進(jìn)行計(jì)算處理。同時(shí),它也會(huì)監(jiān)測(cè)由自身啟動(dòng)的 Worker 進(jìn)程的運(yùn)行現(xiàn)有 Worker 進(jìn)程處于非正常狀態(tài),就會(huì) Kill 掉這個(gè) Worker 進(jìn)程,給該 Worker 進(jìn)程的任務(wù)交還給 Nimbus,進(jìn)行一個(gè)重新分配。Supe著一個(gè)主線程和三個(gè)副線程,如圖 2.2 所示:
圖 2.1 Storm 系統(tǒng)框架圖節(jié)點(diǎn)被稱為 Worker Node,也被稱為工作節(jié)點(diǎn),在這些工作節(jié)點(diǎn)當(dāng)中叫 Supervisor 的程序。Supervisor 可以理解為單機(jī)任務(wù)調(diào)度器,它負(fù)bus 程序發(fā)出的任務(wù)調(diào)度,然后啟動(dòng)相應(yīng)的 Worker 進(jìn)程對(duì) Nimbus 分進(jìn)行計(jì)算處理。同時(shí),它也會(huì)監(jiān)測(cè)由自身啟動(dòng)的 Worker 進(jìn)程的運(yùn)行現(xiàn)有 Worker 進(jìn)程處于非正常狀態(tài),就會(huì) Kill 掉這個(gè) Worker 進(jìn)程,給該 Worker 進(jìn)程的任務(wù)交還給 Nimbus,進(jìn)行一個(gè)重新分配。Supe著一個(gè)主線程和三個(gè)副線程,如圖 2.2 所示:
/storm/workerbeats/<topology-id>/node-port計(jì)信息。/storm/storms/<topology-id>存儲(chǔ) Topology 計(jì)算應(yīng)用的名字、運(yùn)行狀態(tài)、并行度設(shè)置、啟動(dòng)時(shí)間等信息。在運(yùn)行過程中,這里的數(shù)據(jù)是不會(huì)變化的。/storm/assignments/<topology-id>存儲(chǔ)了Nimbus進(jìn)程為每個(gè)Topology計(jì)算應(yīng)用所分配的任務(wù)信息。主要包括 Supervisor 與主機(jī)名的映射關(guān)系、工作線程的啟動(dòng)時(shí)間等。/storm/supervisor/<supervisor-id>存儲(chǔ)了 Supervisor 所在節(jié)點(diǎn)的更新時(shí)間、主機(jī)名、supervisor-id、已經(jīng)使用的 slot 列表等運(yùn)行統(tǒng)計(jì)信息/storm/errors/<topology-id>/<component-id>/<sequential-id>記錄了運(yùn)行過程中,每個(gè)組件發(fā)生錯(cuò)誤的信息。但是每個(gè)組件只會(huì)保存最近的 10 條錯(cuò)誤信息。
本文編號(hào):2798259
【學(xué)位授予單位】:重慶郵電大學(xué)
【學(xué)位級(jí)別】:碩士
【學(xué)位授予年份】:2018
【分類號(hào)】:TP274;O157.5;P11
【圖文】:
圖 2.1 Storm 系統(tǒng)框架圖節(jié)點(diǎn)被稱為 Worker Node,也被稱為工作節(jié)點(diǎn),在這些工作節(jié)點(diǎn)當(dāng)中叫 Supervisor 的程序。Supervisor 可以理解為單機(jī)任務(wù)調(diào)度器,它負(fù)bus 程序發(fā)出的任務(wù)調(diào)度,然后啟動(dòng)相應(yīng)的 Worker 進(jìn)程對(duì) Nimbus 分進(jìn)行計(jì)算處理。同時(shí),它也會(huì)監(jiān)測(cè)由自身啟動(dòng)的 Worker 進(jìn)程的運(yùn)行現(xiàn)有 Worker 進(jìn)程處于非正常狀態(tài),就會(huì) Kill 掉這個(gè) Worker 進(jìn)程,給該 Worker 進(jìn)程的任務(wù)交還給 Nimbus,進(jìn)行一個(gè)重新分配。Supe著一個(gè)主線程和三個(gè)副線程,如圖 2.2 所示:
圖 2.1 Storm 系統(tǒng)框架圖節(jié)點(diǎn)被稱為 Worker Node,也被稱為工作節(jié)點(diǎn),在這些工作節(jié)點(diǎn)當(dāng)中叫 Supervisor 的程序。Supervisor 可以理解為單機(jī)任務(wù)調(diào)度器,它負(fù)bus 程序發(fā)出的任務(wù)調(diào)度,然后啟動(dòng)相應(yīng)的 Worker 進(jìn)程對(duì) Nimbus 分進(jìn)行計(jì)算處理。同時(shí),它也會(huì)監(jiān)測(cè)由自身啟動(dòng)的 Worker 進(jìn)程的運(yùn)行現(xiàn)有 Worker 進(jìn)程處于非正常狀態(tài),就會(huì) Kill 掉這個(gè) Worker 進(jìn)程,給該 Worker 進(jìn)程的任務(wù)交還給 Nimbus,進(jìn)行一個(gè)重新分配。Supe著一個(gè)主線程和三個(gè)副線程,如圖 2.2 所示:
/storm/workerbeats/<topology-id>/node-port計(jì)信息。/storm/storms/<topology-id>存儲(chǔ) Topology 計(jì)算應(yīng)用的名字、運(yùn)行狀態(tài)、并行度設(shè)置、啟動(dòng)時(shí)間等信息。在運(yùn)行過程中,這里的數(shù)據(jù)是不會(huì)變化的。/storm/assignments/<topology-id>存儲(chǔ)了Nimbus進(jìn)程為每個(gè)Topology計(jì)算應(yīng)用所分配的任務(wù)信息。主要包括 Supervisor 與主機(jī)名的映射關(guān)系、工作線程的啟動(dòng)時(shí)間等。/storm/supervisor/<supervisor-id>存儲(chǔ)了 Supervisor 所在節(jié)點(diǎn)的更新時(shí)間、主機(jī)名、supervisor-id、已經(jīng)使用的 slot 列表等運(yùn)行統(tǒng)計(jì)信息/storm/errors/<topology-id>/<component-id>/<sequential-id>記錄了運(yùn)行過程中,每個(gè)組件發(fā)生錯(cuò)誤的信息。但是每個(gè)組件只會(huì)保存最近的 10 條錯(cuò)誤信息。
【參考文獻(xiàn)】
相關(guān)期刊論文 前2條
1 彭宇;龐景月;劉大同;彭喜元;;大數(shù)據(jù):內(nèi)涵、技術(shù)體系與展望[J];電子測(cè)量與儀器學(xué)報(bào);2015年04期
2 崔星燦;禹曉輝;劉洋;呂朝陽;;分布式流處理技術(shù)綜述[J];計(jì)算機(jī)研究與發(fā)展;2015年02期
本文編號(hào):2798259
本文鏈接:http://sikaile.net/kejilunwen/yysx/2798259.html
最近更新
教材專著