• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      日志綜合管理平臺基于Storm框架的實(shí)現(xiàn)

      2017-05-02 07:28李團(tuán)結(jié)從新法李光明
      中國新通信 2017年6期
      關(guān)鍵詞:聚類日志分布式

      李團(tuán)結(jié)+從新法+李光明

      【摘要】 日志對于每個系統(tǒng)來說都是不可或缺的一部分,而現(xiàn)階段對日志的處理效率卻不盡如人意。實(shí)時性日志考驗(yàn)的是大數(shù)據(jù)處理框架的實(shí)時計(jì)算能力,基于Storm 并借助開源框架 Kafka,設(shè)計(jì)了一個實(shí)時數(shù)據(jù)收集與處理的系統(tǒng),將數(shù)據(jù)轉(zhuǎn)為流的形式,對收集來的數(shù)據(jù)直接在內(nèi)存以流的形式進(jìn)行計(jì)算,輸出有價值的信息保存到Redis。最后對系統(tǒng)進(jìn)行性能測試以及計(jì)算能力的測試。實(shí)驗(yàn)結(jié)果表明,該系統(tǒng)可擴(kuò)展性良好,且并行計(jì)算能力穩(wěn)定,適合大量實(shí)時數(shù)據(jù)處理。

      【關(guān)鍵字】 Storm Kafka Redis

      一、引言

      大數(shù)據(jù)時代,與互聯(lián)網(wǎng)行業(yè)息息相關(guān)的諸多領(lǐng)域中用戶數(shù)量和其產(chǎn)生的數(shù)據(jù)在不斷地累加,為之提供支撐的服務(wù)器端存放的日志信息量也隨之劇增,如何準(zhǔn)確及時的篩選海量日志中的關(guān)鍵信息成為了亟待解決的問題。眾所周知,Hadoop架構(gòu)可以使用戶可以在不了解分布式底層細(xì)節(jié)的情況下,開發(fā)分布式程序。充分利用集群的威力進(jìn)行高速運(yùn)算和存儲,但是對于實(shí)時性極強(qiáng)的流式數(shù)據(jù),顯然流處理框架Strom更適合,并且處理效率客觀。

      二、Storm計(jì)算框架

      Storm是由BackType開發(fā)并被Twitter于2011 年開源的分布式實(shí)時計(jì)算系統(tǒng)[1],能夠很容易可靠地處理無界持續(xù)的流數(shù)據(jù),進(jìn)行實(shí)時計(jì)算 [2]。

      任務(wù)拓?fù)涫荢torm的邏輯單元,一個實(shí)時的應(yīng)用打包為拓?fù)浜蟀l(fā)送,拓?fù)涫怯蒘pout和Bolt組成,其二者的關(guān)系如圖1所示。Spout節(jié)點(diǎn)從數(shù)據(jù)源中源源不斷的消費(fèi)數(shù)據(jù)并把數(shù)據(jù)發(fā)送到后面的Bolt節(jié)點(diǎn),而Topology是將Spout和Bolt組合在一起完成一項(xiàng)具體的計(jì)算任務(wù)。Topology一旦提交就會一直執(zhí)行。

      Storm主從架構(gòu)圖包含一個主節(jié)點(diǎn)Nimbus和多個從節(jié)點(diǎn)Supervisor,Zookeeper完成兩者之間的協(xié)調(diào)。每個 Worker都執(zhí)行且只執(zhí)行任務(wù)拓?fù)渲械囊粋€子集, 在每個Worker 內(nèi)部,會有多個 Executor,每個 Executor對應(yīng)一個任務(wù),負(fù)責(zé)具體數(shù)據(jù)的計(jì)算,即用戶所實(shí)現(xiàn)的 Spout /Bolt 實(shí)例。

      三、日志綜合管理平臺基于Storm的實(shí)現(xiàn)方案

      3.1開發(fā)環(huán)境及采用的測試數(shù)據(jù)集

      硬件環(huán)境包括Storm集群,Kakfa集群,Zookeeper集群,Storm包括1個Nimbus和4個Supervisor;Kafka集群包括5個節(jié)點(diǎn);Zookeeper集群也包括5個節(jié)點(diǎn),集體配置如表1所示。

      軟件環(huán)境:jdk-1.7.0_79、logstash-2.3.4、elasticsearch-2.3.4、storm-0.9.5、kafka_2.9.1-0.8.2.0

      zookeeper-3.3.5、python-2.7.12。

      操作系統(tǒng):Linux version 3.10.0-327.el7.x86_64

      數(shù)據(jù)集:用戶話單日志信息(約2 billon/day)。

      3.2平臺架構(gòu)及處理流程

      日志綜合處理平臺主要由三層組成,包括:數(shù)據(jù)采集層、數(shù)據(jù)分析及存儲層以及數(shù)據(jù)展示層。可以實(shí)現(xiàn)對日志從采集到分析處理的全過程并在頁面監(jiān)控平臺顯示。

      本實(shí)驗(yàn)方案使用 Kafka為消息中間件傳遞消息。Kafka是一種高吞吐量的分布式發(fā)布訂閱消息系統(tǒng),其依賴Zookeeper保存每組消費(fèi)者消費(fèi)的相應(yīng)Topic的偏移量。

      SpoutA接收待初始化的數(shù)據(jù),并將其發(fā)K-means&DBSCANBolt 通過數(shù)據(jù)簇形態(tài)識別以初始化微簇;SpoutB從Kafka中接收初始化后待處理的流數(shù)據(jù),將其發(fā)送至LocalBolt進(jìn)行局部微聚類;SpoutC用作處理時間戳,每單位時間向LocalBolt發(fā)送一次信息,當(dāng)接收到時間戳消息,將局部微聚類更新結(jié)果存放到Redis做實(shí)時局部微聚類更新結(jié)果的保存,并合并原有的增量信息發(fā)送到GlobalBolt;SpoutD通過消息中間件 Kafka接收用戶發(fā)送的查詢參數(shù)。

      K-means&DBSCANBolt接收 SpoutA傳輸?shù)拇跏蓟瘮?shù)據(jù)與聚類參數(shù) k(簇數(shù)),進(jìn)行標(biāo)準(zhǔn) k-means聚類或者DBSCAN聚類,聚類的結(jié)果以微簇形式發(fā)送至 LocalBolt隨后根據(jù)時間戳信息保存結(jié)果到Redis,并由滑動窗口觸發(fā)機(jī)制合并局部微簇到全局微簇GlobalBolt。RL-DSCA算法的微簇在線維護(hù)微簇進(jìn)行的在線增量更新是由LocalBolt來實(shí)現(xiàn)的,體現(xiàn)了RL-DSCA算法分布式數(shù)據(jù)的處理,到達(dá)的待處理流數(shù)據(jù)將會分配到各個LocalBolt節(jié)點(diǎn),這些節(jié)點(diǎn)具體的功能均不相同,LocalBolt各節(jié)點(diǎn)處理流程如圖2所示。主要處理Bolt的實(shí)現(xiàn)功能如下。

      extractBolt:該Bolt主要實(shí)現(xiàn)從初始化后的數(shù)據(jù)流中篩選目標(biāo)信息,并將篩選出來的數(shù)據(jù)發(fā)送到下一個處理bolt。

      judgeSysTimeBolt:該Bolt用來判斷系統(tǒng)時間和時間戳的關(guān)系檢測拓?fù)渫V构ぷ鞯漠惓G闆r,如出現(xiàn)拓?fù)洚惓?,系統(tǒng)時間>時間戳?xí)r間,對時間戳補(bǔ)齊并進(jìn)行更新(updateTimestampBolt)結(jié)果存放到Redis。

      judgeLogTimeBolt:改Bolt主要是判斷來的日志是實(shí)時日志還是歷史日志,如果日志時間在時間戳范圍內(nèi)即為實(shí)時日志,否則按照歷史日志來處理。

      sendAndUpdateRedisBolt:實(shí)時日志的發(fā)送,根據(jù)SpoutC傳來的時間戳消息,將局部微聚類更新結(jié)果存放到Redis。

      submitLastValueBolt:該Bolt用于處理歷史日志的最后一個時間戳,根據(jù)來的一條正常日志觸發(fā)將歷史日志的微簇發(fā)送到Redis。

      abnormalHandleBolt:該Bolt主要對歷史日志進(jìn)行處理,避免影響實(shí)時流數(shù)據(jù)的處理,并將歷史日志的處理結(jié)果合并到Redis供全局微簇的合并。

      現(xiàn)將該平臺的主要功能概述如下:

      接收 K-means&DBSCANBolt生成的初始化微簇生成初始緩存集Kafka;對于到達(dá)拓?fù)涞拇幚淼臄?shù)據(jù)流,LocalBolt按照單位時間生成局部聚類增量,并將該中間結(jié)果發(fā)送至Redis供合并;Redis實(shí)現(xiàn)RL-DSCA算法的合并部分,即合并局部增量結(jié)果進(jìn)行全局微簇增量更新:接收LocalBolt生成的初始化微簇生成初始全局微簇;緩存各局部線程傳輸?shù)闹虚g結(jié)果;使用滑動窗口觸發(fā)機(jī)制,達(dá)到觸發(fā)時間點(diǎn)則合并暫存的中間結(jié)果,將結(jié)果打上相應(yīng)時間標(biāo)記Tag,生成實(shí)時全局微簇快照發(fā)送至GlobalBolt。GlobalBolt實(shí)現(xiàn)RL-DSCA算法的查詢輸出;接收GlobalBolt生成的全局微簇快照,將其存儲至金字塔時間幀結(jié)構(gòu)中供后續(xù)查詢;當(dāng)用戶輸入查詢參數(shù)時,通過SpoutD接收查詢參數(shù),查找金字塔時間幀結(jié)構(gòu)中的相應(yīng)數(shù)據(jù),將查詢結(jié)果發(fā)送至SendBolt 進(jìn)行輸出。

      四、結(jié)束語

      本文設(shè)計(jì)開發(fā)了流數(shù)據(jù)計(jì)算平臺 Storm 的計(jì)算架構(gòu)處理海量數(shù)據(jù)日志綜合管理平臺,結(jié)合Kafka和Redis對日志進(jìn)行了實(shí)時性的分析和處理。滿足了用戶對大數(shù)據(jù)量日志信息的使用需要,并達(dá)到了客觀的處理效率。

      參 考 文 獻(xiàn)

      [1] The Apaehe Foundation. Storm official website- [EB/OL].https://storm.apache.org/.

      [2] Github Inc. Storm Wiki[EB/OL]. https://github.com/apache/storm.

      猜你喜歡
      聚類日志分布式
      高效管理日志文件用命令行就可以
      居民分布式儲能系統(tǒng)對電網(wǎng)削峰填谷效果分析
      讀扶貧日志
      基于模糊聚類和支持向量回歸的成績預(yù)測
      基于Paxos的分布式一致性算法的實(shí)現(xiàn)與優(yōu)化
      雅皮的心情日志
      雅皮的心情日志
      基于流形學(xué)習(xí)的自適應(yīng)反饋聚類中心確定方法
      基于密度的自適應(yīng)搜索增量聚類法
      佛学| 古交市| 桂阳县| 苍溪县| 三亚市| 永登县| 临颍县| 嘉禾县| 海兴县| 稻城县| 杭锦旗| 苍南县| 郁南县| 青浦区| 延津县| 柘荣县| 台东市| 南投县| 临湘市| 九龙城区| 昌图县| 临汾市| 长宁县| 遂溪县| 栾城县| 新余市| 湄潭县| 香港 | 绵竹市| 阆中市| 泾川县| 丰镇市| 康保县| 衡东县| 延寿县| 门源| 闽侯县| 清徐县| 江华| 巴马| 钦州市|