大數(shù)據(jù)平臺日志存儲分析系統(tǒng)是在大數(shù)據(jù)平臺下,針對業(yè)務系統(tǒng)產(chǎn)生的日志記錄進行存儲和分析。日志數(shù)據(jù)來自ElasticSearch存儲的日志歷史數(shù)據(jù),并將需要存儲和分析的日志數(shù)據(jù)從ElasticSearch中讀取到Kafka中。Kafka的消費者在偵聽到數(shù)據(jù)消息進入后,以流方式獲取數(shù)據(jù)寫入到HBase中。存儲在HBase中的數(shù)據(jù)則是為日志數(shù)據(jù)的檢索與分析提供服務。Web前端通過調(diào)用后端API檢索HBase中的數(shù)據(jù),并進行透視表的可視化展現(xiàn),展現(xiàn)后的數(shù)據(jù)支持CSV導出功能。
本解決方案包括的系統(tǒng)功能為:
●讀取Kafka消息,存儲到HBase
●檢索HBase數(shù)據(jù),提供API
●顯示內(nèi)容的CSV導出
技術方案
確定該技術方案的前置條件包括:
●推送到Kafka的消息已經(jīng)準備就緒
●HBase的數(shù)據(jù)結構已經(jīng)確定
●日志檢索條件固定
●后端API已經(jīng)確定,Web前端會調(diào)用該API
●Web前端開發(fā)已經(jīng)就緒
技術架構
整個技術架構如下圖所示:
系統(tǒng)分為三個模塊:
●LogData Collector:通過Spark Streaming訂閱Kafka的Topic,收集業(yè)務需要的日志數(shù)據(jù),然后寫入到HBase中。HBase搭建在HDFS的集群中。
●LogData Searching:這是一個Spring Boot服務,通過@RestController暴露API接口給前端。其內(nèi)部則集成Spark,利用Spark SQL查詢HBase數(shù)據(jù)庫。
●Web UI前端:負責調(diào)用LogData Searching服務,并將數(shù)據(jù)呈現(xiàn)到UI上,并在前端實現(xiàn)顯示數(shù)據(jù)的導出。
說明:導出功能可能有一個變化,倘若前端是分頁顯示,而導出的數(shù)據(jù)是符合檢索條件的全量數(shù)據(jù),則需要在導出時調(diào)用LogData Searching服務,獲得導出所需的數(shù)據(jù),而非前端已經(jīng)顯示的數(shù)據(jù)。