国产成人欧美日韩综合-久久久久无码国产精品不卡-h双腿涨灌捆绑play慎入-啊灬用力灬啊灬啊灬啊灬a片男男-性疼痛tube小坳交hd-国产精品免费大片-日本亚洲成高清一区二区三区-草莓视频在线观看污污-浴室激情hd-欧美午夜理伦三级在线观看激情伦理-91蝌蚪在线,国产黄色大片在线观看一区二区,午夜精品久久久内射近拍高清,特级做a爱片久久久久久

18600329666

咨詢技術專家

掃一掃
與技術專家在線溝通

Menu
分布式海量日志存儲分析解決方案

1       分布式日志存儲系統概述

日志存儲分析系統是在xx平臺下,針對業務系統產生的日志記錄進行存儲和分析,數據主要來源是軌跡日志,系統任務執行記錄,其他環節產生的運行日志數據等。系統對上述數據進行集中統一收集,并存儲在分布式關系型持久化存儲中(此過程根據業務需求對數據進行ETL轉化,實現數據的一致性和集中式管理),在集中管理的基礎上進行數據整合分析,一方面對外提供日志檢索與分析API服務,另一方面設計系統關鍵環節指標配置任務,通過對關鍵環節的日志分析輸出系統預警消息。

2       技術路線

系統存儲和分析的日志數據從ElasticSearch中讀取到Kafka中。Kafka的消費者在偵聽到數據消息進入后,以流方式獲取數據寫入到HBase中。存儲在HBase中的數據則是為日志數據的檢索與分析提供服務。Web前端通過調用后端API檢索HBase中的數據,并進行透視表的可視化展現,展現后的數據支持CSV導出功能。
Hbase數據庫
HBase是一個分布式的、面向列的開源數據庫,該技術來源于 Fay Chang 所撰寫的Google論文“Bigtable:一個結構化數據的分布式存儲系統”。就像Bigtable利用了Google文件系統(File System)所提供的分布式數據存儲一樣,HBase在Hadoop之上提供了類似于Bigtable的能力。HBase是Apache的Hadoop項目的子項目。HBase不同于一般的關系數據庫,它是一個適合于非結構化數據存儲的數據庫。另一個不同的是HBase基于列的而不是基于行的模式。
kafa消息隊列
Kafka是由Apache軟件基金會開發的一個開源流處理平臺,由Scala和Java編寫。Kafka是一種高吞吐量的分布式發布訂閱消息系統,它可以處理消費者在網站中的所有動作流數據。 這種動作(網頁瀏覽,搜索和其他用戶的行動)是在現代網絡上的許多社會功能的一個關鍵因素。 這些數據通常是由于吞吐量的要求而通過處理日志和日志聚合來解決。 對于像Hadoop一樣的日志數據和離線分析系統,但又要求實時處理的限制,這是一個可行的解決方案。Kafka的目的是通過Hadoop的并行加載機制來統一線上和離線的消息處理,也是為了通過集群來提供實時的消息。
系統架構圖
分布式日志存儲
  • LogData Collector
通過Spark Streaming訂閱Kafka的Topic,收集業務需要的日志數據,然后寫入到HBase中。HBase搭建在HDFS的集群中。
  • LogData Searching
這是一個Spring Boot服務,通過@RestController暴露API接口給前端。其內部則集成Spark,利用Spark SQL查詢HBase數據庫。
  • Web UI前端
負責調用LogData Searching服務,并將數據呈現到UI上,并在前端實現顯示數據的導出。

1Hbase日志存儲機制優化策略

Hbase本身索引查詢系統存在一定的缺陷,為了完成系統性能目標任務,實現海量日志存儲和海量日志數據分析查詢,最終實現集中,統一,一致性,高效管理,對Hbase做如下策略優化
rowKey的優化
rowKey在這里絕對不能像傳統的RDBMS處理主鍵那樣,簡單地用UUID或自增ID來處理。HBase的rowKey是基于字典排序的,具體來說是基于key的ASCII碼來排序,我們的思路是要往rowKey中加入我們想要查詢的條件因子,通過多個因子相互組合,來一步步確定查找范圍。如時間是應該加到rowKey里的一個查詢因子,一個開始時間跟一個截止時間就形成了一個時間段范圍,就能固定一個結果集范圍。
rowkey里加入的查詢因子越多,查詢范圍定位的精確度越高。但查詢因子其實是從眾多日志中抽象而來(比如host,level,timestamp等),這要求每條日志記錄中共性的東西,系統日志大致劃分為下列兩大類型
(1)定格式的業務系統/框架日志(飛機飛行估計日志,任務運行日志等)
(2)不定格式的技術系統/組件/框架日志(比如nginx、redis、等中間件產生的格式化日志)
既定格式的日志采用

非既定個是日志采用

優化篩選器
在通過rowKey的范圍確定對結果集的掃描范圍之后,下一步就是通過內置的filter來進行更精確的篩選,HBase默認提供多種filter供使用者針對rowKey、column-family、qualifier等進行篩選。當然如果rowKey的篩選條件取值跨度比較大,還會產生接近類似于全表掃描的影響。因此需要對篩選條件做一定限制,比如:
(1)查詢時間區間的跨度只能限制在一定的范圍
(2)分頁給出查詢結果