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