周志陽(yáng)+陳飛
【摘要】 隨著互聯(lián)網(wǎng)和互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,每天產(chǎn)生的數(shù)據(jù)正以指數(shù)級(jí)的速度增長(zhǎng),對(duì)這些大量數(shù)據(jù)的處理與分析具有巨大的應(yīng)用價(jià)值。以Hadoop為代表的大數(shù)據(jù)技術(shù)的出現(xiàn),可以很好的解決大量靜態(tài)數(shù)據(jù)集的數(shù)據(jù)處理與分析,但是很多數(shù)據(jù)都是實(shí)時(shí)產(chǎn)生的,人們希望可以實(shí)時(shí)的處理這些數(shù)據(jù),這就需要流計(jì)算處理技術(shù)來(lái)實(shí)時(shí)處理這些數(shù)據(jù),及時(shí)產(chǎn)出應(yīng)用價(jià)值。
【關(guān)鍵字】 實(shí)時(shí)計(jì)算 大數(shù)據(jù) Storm Spark streaming Apache Flink
引言
在當(dāng)前大數(shù)據(jù)背景下,優(yōu)化發(fā)展應(yīng)用實(shí)時(shí)計(jì)算平臺(tái)技術(shù),可以有助于解決現(xiàn)有計(jì)算平臺(tái)處理海量數(shù)據(jù)實(shí)時(shí)響應(yīng)能力差的問(wèn)題,提升計(jì)算平臺(tái)處理大數(shù)據(jù)的速度[1-2],確保在大數(shù)據(jù)背景下,可以應(yīng)用實(shí)時(shí)計(jì)算平臺(tái)技術(shù)勝任數(shù)據(jù)挖掘任務(wù),實(shí)時(shí)處理大數(shù)據(jù)。具體綜述內(nèi)容如下所示:
一、相關(guān)研究
流數(shù)據(jù)一般在線實(shí)時(shí)產(chǎn)生的,通常是以元組為單位,源源不斷的元組就構(gòu)成了流式數(shù)據(jù)。當(dāng)前,大數(shù)據(jù)背景下的流數(shù)據(jù)通常具有流量巨大、流速特別快、難以快速存儲(chǔ)與恢復(fù)等特性,即包含結(jié)構(gòu)化的數(shù)據(jù)也包含半結(jié)構(gòu)化和非結(jié)構(gòu)化的數(shù)據(jù)。結(jié)構(gòu)化的數(shù)據(jù)一般遵守固定的格式,很少含有或不含有冗余信息,比如sql數(shù)據(jù)庫(kù)中的數(shù)據(jù)一般都是結(jié)構(gòu)化的數(shù)據(jù);半結(jié)構(gòu)化和非結(jié)構(gòu)化的數(shù)據(jù)一般無(wú)法用二維屬性表來(lái)表示,辦公文檔、文本、圖片、XML、HTML、各類報(bào)表、圖像和音頻/視頻信息等等[1]。
二、實(shí)時(shí)計(jì)算相關(guān)技術(shù)及開(kāi)源平臺(tái)
這里主要介紹流計(jì)算開(kāi)源平臺(tái),介紹他們的框架與原理,介紹目前處理大數(shù)據(jù)常用的實(shí)時(shí)計(jì)算平臺(tái)中的Storm、Spark streaming、Apache Flink技術(shù)。
2.1 Storm實(shí)時(shí)計(jì)算平臺(tái)技術(shù)
Storm是當(dāng)下最流行的實(shí)時(shí)計(jì)算平臺(tái)之一,它的計(jì)算模型中主要有Spout和Bolt兩種角色,Bolt一般會(huì)按照一定的流分組策略訂閱上游的Spout。Spout把數(shù)據(jù)以Tuple為單位源源不斷發(fā)送給訂閱它的Bolt,Bolt一般負(fù)責(zé)數(shù)據(jù)的具體處理,處理后的數(shù)據(jù)即可以保存到外部數(shù)據(jù)庫(kù)又可以繼續(xù)發(fā)送給下游的Bolt。
在大數(shù)據(jù)背景下,通過(guò)引入Storm分布式實(shí)時(shí)計(jì)算平臺(tái),進(jìn)行大規(guī)模數(shù)據(jù)的分類分析,設(shè)計(jì)了基于Storm框架的KNN分類算法。該算法將整個(gè)過(guò)程分為數(shù)據(jù)接入、分類分析、結(jié)果輸出等階段,在框架預(yù)定義的組件中分別編程實(shí)現(xiàn),各組件通過(guò)數(shù)據(jù)流連通形成任務(wù)實(shí)體,提交到集群運(yùn)行完成。通過(guò)對(duì)比分析和性能監(jiān)測(cè),驗(yàn)證了所提方案具有低延遲和高吞吐量的優(yōu)勢(shì),集群運(yùn)行狀況良好,負(fù)載均衡。相關(guān)研究實(shí)驗(yàn)表明,基于Storm平臺(tái)處理海量數(shù)據(jù)實(shí)時(shí)性較高,能夠勝任大數(shù)據(jù)背景下的數(shù)據(jù)挖掘任務(wù)。
2.2 spark streaming實(shí)時(shí)計(jì)算平臺(tái)技術(shù)
Spark Streaming是大規(guī)模流式數(shù)據(jù)處理的新貴,將流式計(jì)算分解成一系列短小的批處理作業(yè)。在大數(shù)據(jù)環(huán)境中,優(yōu)化設(shè)計(jì)應(yīng)用實(shí)時(shí)計(jì)算平臺(tái)技術(shù), 基于可伸縮的實(shí)時(shí)虛擬機(jī)調(diào)度策略,能夠利用分布式計(jì)算系統(tǒng)Spark,構(gòu)建可擴(kuò)展的虛擬機(jī)系統(tǒng),提升處理數(shù)據(jù)的性能,可以實(shí)現(xiàn)虛擬機(jī)在線遷移與動(dòng)態(tài)擴(kuò)容。Spark Streaming是將流式計(jì)算分解成一系列短小的批處理作業(yè)。這里的批處理引擎是Spark,也就是把Spark Streaming的輸入數(shù)據(jù)按照batch size(如1秒)分成一段一段的數(shù)據(jù)(Discretized Stream),每一段數(shù)據(jù)都轉(zhuǎn)換成Spark中的RDD(Resilient Distributed Dataset),然后將Spark Streaming中對(duì)DStream的Transformation操作變?yōu)獒槍?duì)Spark中對(duì)RDD的Transformation操作,將RDD經(jīng)過(guò)操作變成中間結(jié)果保存在內(nèi)存中。整個(gè)流式計(jì)算根據(jù)業(yè)務(wù)的需求可以對(duì)中間的結(jié)果進(jìn)行疊加,或者存儲(chǔ)到外部設(shè)備[2]。
2.3 Apache Flink實(shí)時(shí)計(jì)算平臺(tái)技術(shù)
Flink 是一個(gè)針對(duì)流數(shù)據(jù)和批數(shù)據(jù)的分布式處理引擎。它主要是由 Java 代碼實(shí)現(xiàn)。目前主要還是依靠開(kāi)源社區(qū)的貢獻(xiàn)而發(fā)展。Flink所要處理的主要場(chǎng)景就是流數(shù)據(jù),批數(shù)據(jù)只是流數(shù)據(jù)的一個(gè)極限特例而已。Flink 會(huì)把所有任務(wù)當(dāng)成流來(lái)處理,這也是其最大的特點(diǎn)。Flink 可以支持本地的快速迭代,以及一些環(huán)形的迭代任務(wù)。并且 Flink 可以定制化內(nèi)存管理,F(xiàn)link 并沒(méi)有將內(nèi)存完全交給應(yīng)用層, Flink處理大數(shù)據(jù)速度快,滿足大數(shù)據(jù)背景下應(yīng)用實(shí)時(shí)計(jì)算平臺(tái)的需求。
三、結(jié)束語(yǔ)
綜上所述,通過(guò)以上內(nèi)容分析,可以在當(dāng)前處理大數(shù)據(jù)中,可以優(yōu)化應(yīng)用實(shí)時(shí)計(jì)算平臺(tái)技術(shù),不僅可以進(jìn)一步提升處理大數(shù)據(jù)的速度,也可以提升實(shí)時(shí)計(jì)算平臺(tái)的運(yùn)行效率;在實(shí)際應(yīng)用實(shí)時(shí)計(jì)算平臺(tái)技術(shù)處理大數(shù)據(jù)過(guò)程中,可以在Storm、Spark streaming以及Flink平臺(tái)技術(shù)中選擇合適的實(shí)時(shí)計(jì)算平臺(tái)技術(shù),對(duì)促進(jìn)未來(lái)實(shí)施推廣大數(shù)據(jù)實(shí)時(shí)計(jì)算平臺(tái)技術(shù),發(fā)揮積極影響。
參 考 文 獻(xiàn)
[1] 王銘坤,袁少光,朱永利等.基于Storm的海量數(shù)據(jù)實(shí)時(shí)聚類[J].計(jì)算機(jī)應(yīng)用,2014,34(11):3078-3081.
[2] 王志平,李小勇.基于實(shí)時(shí)計(jì)算平臺(tái)的虛擬機(jī)調(diào)度策略[J].計(jì)算機(jī)工程,2016,42(5):30-34,41.