官术网_书友最值得收藏!

1.2 項目數據流設計

為了實現項目需求,我們需要搭建大數據分析系統,對海量數據進行分析與計算。項目需求涉及離線計算和實時計算,由于Spark是一個基于內存計算的快速通用計算系統,既擁有離線計算組件又擁有實時計算組件,因此以Spark為核心進行數據分析會更加容易,且易于維護。整個系統數據流架構的設計如圖1-2所示。

從圖1-2可以看出,本系統整體上共分為三個模塊:數據采集模塊、數據分析模塊、數據可視化模塊。數據分析模塊又分為離線分析模塊和實時分析模塊,這兩個模塊在本書中都會進行講解,并且重點講解實時分析模塊。因此,本書的講解思路及順序如下:

(1)數據采集模塊

(2)數據離線分析模塊

(3)數據實時分析模塊

(4)數據可視化模塊

圖1-2 日志分析系統數據流架構設計

讀者可按照上述順序并參考本書的章節逐步進行項目的開發,直到完成并成功運行整個項目。

圖1-2所示的日志數據流轉步驟如下:

01 在產生日志的每臺服務器上安裝Flume進行日志采集,然后把各自采集到的日志數據發送給同一個Flume服務器進行日志的合并。

02 將合并后的日志數據以副本的方式分成兩路(兩路數據相同):一路進行實時計算,另一路進行離線計算。將需要實時計算的數據發送到實時消息系統Kafka進行中轉,將需要離線計算的數據存儲到HBase分布式數據庫中。

03 使用Spark Streaming作為Kafka的消費者,按批次從Kafka中獲取數據進行實時計算,并將計算結果存儲于MySQL關系數據庫中。

04 使用Spark SQL(或Hive)查詢HBase中的日志數據進行離線計算,并將計算結果存儲于MySQL關系數據庫中。通常的做法是使用兩個關系數據庫分別存儲實時和離線的計算結果。

05 使用WebSocket實時獲取MySQL中的數據,然后通過可視化組件(ECharts等)進行實時展示。

06 當用戶在前端頁面單擊以獲取離線計算結果時,使用Java Web獲取MySQL中的結果數據,然后通過可視化組件(ECharts等)進行展示。

主站蜘蛛池模板: 宁陵县| 天祝| 白银市| 卢氏县| 林西县| 常山县| 昭通市| 扬州市| 达拉特旗| 玉田县| 永泰县| 香格里拉县| 淮南市| 玉屏| 江油市| 泗洪县| 年辖:市辖区| 蕉岭县| 和平县| 新巴尔虎左旗| 合水县| 余江县| 宁海县| 民勤县| 二手房| 平安县| 郎溪县| 和静县| 浏阳市| 仙居县| 剑河县| 湘西| 涡阳县| 康保县| 平舆县| 巴里| 明星| 青岛市| 琼海市| 民勤县| 长武县|