色婷五一,精品亚洲欧美一区二区三区日产 ,精选国产AV剧情,无码丰满少妇2在线观看

18600329666

咨詢技術(shù)專家

掃一掃
與技術(shù)專家在線溝通

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

1       分布式日志存儲系統(tǒng)概述

日志存儲分析系統(tǒng)是在xx平臺下,針對業(yè)務(wù)系統(tǒng)產(chǎn)生的日志記錄進行存儲和分析,數(shù)據(jù)主要來源是軌跡日志,系統(tǒng)任務(wù)執(zhí)行記錄,其他環(huán)節(jié)產(chǎn)生的運行日志數(shù)據(jù)等。系統(tǒng)對上述數(shù)據(jù)進行集中統(tǒng)一收集,并存儲在分布式關(guān)系型持久化存儲中(此過程根據(jù)業(yè)務(wù)需求對數(shù)據(jù)進行ETL轉(zhuǎn)化,實現(xiàn)數(shù)據(jù)的一致性和集中式管理),在集中管理的基礎(chǔ)上進行數(shù)據(jù)整合分析,一方面對外提供日志檢索與分析API服務(wù),另一方面設(shè)計系統(tǒng)關(guān)鍵環(huán)節(jié)指標(biāo)配置任務(wù),通過對關(guān)鍵環(huán)節(jié)的日志分析輸出系統(tǒng)預(yù)警消息。

2       技術(shù)路線

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

1Hbase日志存儲機制優(yōu)化策略

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

非既定個是日志采用

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