- 企業級大數據項目實戰:用戶搜索行為分析系統從0到1
- 張偉洋
- 725字
- 2024-12-28 12:20:40
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等)進行展示。
- 我們都是數據控:用大數據改變商業、生活和思維方式
- 數據挖掘原理與實踐
- Test-Driven Development with Mockito
- R數據科學實戰:工具詳解與案例分析(鮮讀版)
- WS-BPEL 2.0 Beginner's Guide
- 數據驅動設計:A/B測試提升用戶體驗
- Sybase數據庫在UNIX、Windows上的實施和管理
- LabVIEW 完全自學手冊
- 淘寶、天貓電商數據分析與挖掘實戰(第2版)
- SAS金融數據挖掘與建模:系統方法與案例解析
- 貫通SQL Server 2008數據庫系統開發
- Oracle 11g數據庫管理員指南
- Delphi High Performance
- Arquillian Testing Guide
- Artificial Intelligence for Big Data