中國移動運營分析實時監控平臺|項目需求實現

中國移動運營分析實時監控平臺|項目需求實現

1.項目背景

中國移動公司旗下擁有很多的子機構,基本可以按照省份劃分. 而各省份旗下的充值機構也非常的多.

目前要想獲取整個平臺的充值情況,需要先以省為單元,進行省份旗下的機構統計,然後由下往上一層一層的統計彙總,過程太過繁瑣,且統計週期太長. 且充值過程中會涉及到中國移動信息系統內部各個子系統之間的接口調用, 接口故障監控也成為了重點監控的內容之一.

為此建設一個能夠實時監控全國的充值情況的平臺, 掌控全網的實時充值, 各接口調用情況意義重大.


2.技術選型:

Apache Spark

Spark Streaming 是核心 Spark API 的一個擴展,它並不會像 Storm 那樣一次一個地處理數據流,而是在處理前按時間間隔預先將其切分為一段一段的批處理作業。Spark 針對持續性數據流的抽象稱為 DStream(DiscretizedStream),一個 DStream 是一個微批處理(micro-batching)的 RDD(彈性分佈式數據集);而 RDD 則是一種分佈式數據集,能夠以兩種方式並行運作, 分別是任意函數和滑動窗口數據的轉換。


3.項目架構

中國移動運營分析實時監控平臺|項目需求實現

4.項目數據量

數據量每天大概 2000 到 3000 萬筆的下單量, 每條數據大概在 0.5KB 左右,下單量數據大概在 15GB 左右.

最後充值成功的大概 500 到 1000 萬,平時充值成功的大概五六百萬筆.

月初和月末量比較大


5.目需求實現

1.業務概況(顯示總訂單量、訂單成功量、總金額、花費時間)

2.業務詳細概述(每小時的充值訂單量、每小時的充值成功訂單量)

3.業務質量(每個省份的充值成功訂單量)

4.實時統計每分鐘的充值金額和訂單量

整體步驟:

提取數據庫中存儲的偏移量–>廣播省份映射關係–>獲取kafka的數據–>數據處理(JSON對象解析,省份、時間、結果、費用)

–>計算業務概況(顯示總訂單量、訂單成功量、總金額、花費時間)–>業務概述(每小時的充值總訂單量,每小時的成功訂單量)

—>業務質量(每個省份的成功訂單量)—>實時統計每分鐘的充值金額和訂單量

中國移動運營分析實時監控平臺|項目需求實現

項目需求實現:

1)用flume收集數據,放入到kafka,下面是詳細配置。

中國移動運營分析實時監控平臺|項目需求實現

2)用SparkStreaming去消費kafka裡面的數據前,做一些Kafka參數的配置以及放入Redis數據庫所需要的配置。

(1)在IDEA中配置kafka和Redis相關參數,方便獲取kafka裡面的數據並且存儲到redis裡面

中國移動運營分析實時監控平臺|項目需求實現

(2)方便計算訂單完成所需要的時間,封裝了一個類

中國移動運營分析實時監控平臺|項目需求實現

(3)做一個Redis池去操作Redis中的數據

中國移動運營分析實時監控平臺|項目需求實現

(4)每次放入Redis前需要判斷偏移量,防止數據重複以及消耗資源

中國移動運營分析實時監控平臺|項目需求實現

(5)設置自己的kafka、mysql(存儲偏移量)、redis的配置

中國移動運營分析實時監控平臺|項目需求實現

3)做好一系列配置之後就開始SparkStreaming數據處理的核心

先說明一下日誌文件中字段的含義

中國移動運營分析實時監控平臺|項目需求實現

中國移動運營分析實時監控平臺|項目需求實現

(1)下面是SparkStreaming核心代碼

中國移動運營分析實時監控平臺|項目需求實現

(2)將封裝好的方法調用

中國移動運營分析實時監控平臺|項目需求實現

pom文件

4.0.0

中國移動運營分析實時監控平臺|項目需求實現


分享到:


相關文章: