動態(tài)自適應的流式數據處理引擎的設計與實現
發(fā)布時間:2020-08-01 11:43
【摘要】:傳統的批處理系統和流處理系統主要針對大規(guī)模數據實時處理的需求,系統的開發(fā)和部署復雜,數據處理應用的重構和使用困難。隨著應用性能管理的發(fā)展,迫切需要一種輕量級的,具備良好重構能力的流處理引擎,以應對應用性能管理所需的多源結構化日志數據的流式處理需求。論文針對應用性能管理的數據處理需求,分析了現有流處理系統在集群節(jié)點動態(tài)管理、消息持久化、消息恢復、任務并發(fā)執(zhí)行等方面存在的問題,提出了一種動態(tài)自適應的流式數據處理方法。該方法通過引入基于ZeroMQ的集群對等節(jié)點廣播策略和基于Redis的AOF持久化特性的時間窗口算法,解決了 Kafka這類傳統流式數據處理引擎,在應對應用性能管理數據分析系統時容易出現的集群節(jié)點同步不及時、消息恢復慢、集群配置過于復雜的問題,提高了節(jié)點數據處理的可靠性和集群管理的高效性。論文首先分析了應用性能管理系統的集群節(jié)點管理需求和節(jié)點故障恢復需求,設計了一個包含分布式處理引擎、流處理節(jié)點代理的動態(tài)自適應流式數據處理引擎。分布式處理引擎通過封裝ZeroMQ集群內對等節(jié)點廣播來實現集群節(jié)點的動態(tài)發(fā)現和管理,及節(jié)點間的數據消息傳遞。流處理節(jié)點代理則通過“生產者-消費者”模式封裝數據的獲取和分發(fā),從而解耦流數據處理節(jié)點,完成數據處理的動態(tài)管理。流處理節(jié)點內則通過時間窗口算法,處理節(jié)點在故障恢復過程中的數據自適應加載,完成數據處理的自適應管理。其后,論文對動態(tài)自適應流處理引擎的核心功能、開發(fā)者接口、數據結構、數據流程等進行了設計與實現,向開發(fā)者提供了一個完整的輕量級數據傳輸與處理服務。論文最后通過一個典型應用性能管理應用對該引擎進行了功能和性能測試,驗證了系統的有效性,并對輕量級流式數據處理引擎進行了總結和展望。
【學位授予單位】:北京郵電大學
【學位級別】:碩士
【學位授予年份】:2018
【分類號】:TP311.52
【圖文】:
這些分布式協調服務的優(yōu)點是能實現簡單的分布式協調過程,能在服務器進逡逑程之間相互協作;實現了消息編解碼功能,確保程序運行一致;提供了數據操作逡逑的原子性。以Zookeeper為例[8],通用的分布式客戶端-服務器結構如圖2-1所逡逑示:逡逑邐從節(jié)點邋邐逡逑邐邋^邐f?zhèn)浞輸祿䦷欤捱婂逍奶鴱V播邐¥逡逑客戶端1邋—^邐V邋y邐丨1逡逑I逡逑客戶端2邋’邐廣邋^主節(jié)點|邐邐邋-邐|1逡逑 ̄邐備份數據庫——心跳廣播邋^——請求處理器邋—逡逑客戶端3邐?逡逑邐邋廣邐從節(jié)點邋邐逡逑客戶端4邐備份數據庫^邐邋心跳廣播邐」逡逑圖2-1邋ZooKe印er分布式框架逡逑ZooKeeper集群啟動之后,等待來自客戶端的連接,客戶端連接到集群中某逡逑一個節(jié)點,可以是leader節(jié)點,也可以是follower節(jié)點,一旦連接成功,節(jié)點將逡逑向該客戶端發(fā)送確認消息,如果客戶端未收到確認消息,將嘗試連接另一個節(jié)點。逡逑6逡逑
2.2.1生產者-消費者模式逡逑Kafka的分布式節(jié)點磁盤上存儲的每一個Topic存儲消息以及消息被消費的逡逑格式和過程[12]如圖2-2:逡逑生產者逡逑寫入逡逑y逡逑I逡逑I逡逑0123456789!逡逑I逡逑I逡逑I逡逑邐邐邐邐邐邐邐,」邐1邐邐j逡逑J邋讀取逡逑消費者A邐消費者B逡逑0ffset=6邐0ffset=8逡逑圖2-2流引擎生產消費模式逡逑流數據以生產-消費的模式出現,通過發(fā)布-訂閱機制來完成數據的生產和消逡逑8逡逑
首先是數據存儲形式,采用主題(Topic)-分區(qū)(Partition)模式來表現流。逡逑下圖顯示了對這種主題分區(qū)形式的流定義的日志存儲表示,數據存儲在磁盤文件逡逑系統中,對數據的訪問則通過圖2-3的形式:逡逑9逡逑
本文編號:2777418
【學位授予單位】:北京郵電大學
【學位級別】:碩士
【學位授予年份】:2018
【分類號】:TP311.52
【圖文】:
這些分布式協調服務的優(yōu)點是能實現簡單的分布式協調過程,能在服務器進逡逑程之間相互協作;實現了消息編解碼功能,確保程序運行一致;提供了數據操作逡逑的原子性。以Zookeeper為例[8],通用的分布式客戶端-服務器結構如圖2-1所逡逑示:逡逑邐從節(jié)點邋邐逡逑邐邋^邐f?zhèn)浞輸祿䦷欤捱婂逍奶鴱V播邐¥逡逑客戶端1邋—^邐V邋y邐丨1逡逑I逡逑客戶端2邋’邐廣邋^主節(jié)點|邐邐邋-邐|1逡逑 ̄邐備份數據庫——心跳廣播邋^——請求處理器邋—逡逑客戶端3邐?逡逑邐邋廣邐從節(jié)點邋邐逡逑客戶端4邐備份數據庫^邐邋心跳廣播邐」逡逑圖2-1邋ZooKe印er分布式框架逡逑ZooKeeper集群啟動之后,等待來自客戶端的連接,客戶端連接到集群中某逡逑一個節(jié)點,可以是leader節(jié)點,也可以是follower節(jié)點,一旦連接成功,節(jié)點將逡逑向該客戶端發(fā)送確認消息,如果客戶端未收到確認消息,將嘗試連接另一個節(jié)點。逡逑6逡逑
2.2.1生產者-消費者模式逡逑Kafka的分布式節(jié)點磁盤上存儲的每一個Topic存儲消息以及消息被消費的逡逑格式和過程[12]如圖2-2:逡逑生產者逡逑寫入逡逑y逡逑I逡逑I逡逑0123456789!逡逑I逡逑I逡逑I逡逑邐邐邐邐邐邐邐,」邐1邐邐j逡逑J邋讀取逡逑消費者A邐消費者B逡逑0ffset=6邐0ffset=8逡逑圖2-2流引擎生產消費模式逡逑流數據以生產-消費的模式出現,通過發(fā)布-訂閱機制來完成數據的生產和消逡逑8逡逑
首先是數據存儲形式,采用主題(Topic)-分區(qū)(Partition)模式來表現流。逡逑下圖顯示了對這種主題分區(qū)形式的流定義的日志存儲表示,數據存儲在磁盤文件逡逑系統中,對數據的訪問則通過圖2-3的形式:逡逑9逡逑
【參考文獻】
相關期刊論文 前2條
1 唐海東;武延軍;;分布式同步系統Zookeeper的優(yōu)化[J];計算機工程;2014年04期
2 李汝光;趙俊;;基于ZooKeeper的分布式緩存的設計與實現[J];綿陽師范學院學報;2011年11期
本文編號:2777418
本文鏈接:http://sikaile.net/kejilunwen/ruanjiangongchenglunwen/2777418.html