Storm入門(0)--流計算

 1、靜態數據、流數據 以及 批量計算、實時計算

大數據分類兩類:靜態數據和動態數據(流數據)。針對這兩類數據的計算模式分別是批量計算和實時計算。html

靜態數據:歷史數據持久化存儲在系統裏,這類數據的特色是數據量大、數量有限(數據的時間區間是肯定的)。例如企業爲了支持決策分析而構建的數據倉庫系統。數據庫

     對這類數據進行分析處理,採用的計算模式是批量計算,如hadopp的MapReduce,這種計算不太在乎計算的時長,能夠在很充裕的時間裏對海量數據慢慢進行批量計算來獲得有用的信息。架構

流數據:數據以流形式持續到達,這類數據的特色是大量、快速、時變,它在時間和數量上都是無限的,隨着時間的流逝,這類數據的價值每每會下降。流框架

    所以,對這類數據的處理一般對實時性要求比較高,但願能實時獲得計算結果,響應時間通常在秒級,採用的計算模式爲實時計算。數據通過處理後,一部分進入數據庫成爲靜態數據,其餘部分則會被直接丟棄。流計算中一個比較流行的計算框架就是後面會着重介紹的Storm。oop

總結:批量計算主要解決的是靜態數據的批量處理,即處理的是已經存儲到位的數據,通常重視數據的總吞吐量;而流計算的數據是源源不斷流入的,在計算啓動的時候數據通常並無到位,流處理更加關注數據處理的延時。性能

關於大數據領域的一些框架對比,看到過一篇比較好的文章:大數據框架對比:Hadoop、Storm、Samza、Spark和Flink大數據

2、流計算處理流程

流計算處理流程通常包括:數據實時採集、實時計算、實時查詢。spa

流計算的數據處理流程orm

傳統數據處理流程htm

在傳統數據處理中,都是對舊的數據進行的處理,用戶提出查詢請求的時候再去處理;而流計算中,不管用戶是否發起查詢請求,都會實時處理新數據,將計算結果進行存儲,當用戶發起請求時再進行查詢。

2-1 數據實時收集

這個階段就是從多個數據源獲取格式不一樣、實施產生的一系列海量數據,這個過程咱們得保證數據的實時性、低延遲和可靠穩定。數據採集的通常架構:

agent:主動採集數據,並推送到Collector

collector:接收多個agent的數據,並實現有序、可靠、高性能的轉發。

store:對collector轉發的來數據進行存儲,可是通常的流計算中不存儲,而是直接發送給流計算平臺進行實時計算。

2-2 數據實時計算

在這個階段對實時收集來的數據進行分析計算,並實時反饋計算結果,對於處理候後的數據,可能進行存儲以便之後的分析計算,也可能直接丟棄。

 2-3 實時查詢服務

通過流計算框架得出的結果能夠供用戶進行實時查詢、展現、存儲。跟傳統的查詢須要用戶主動查詢不一樣,流計算的實時查詢服務不斷更新,並把結果主動推送給用戶。固然了,你能夠在傳統的數據處理系統中進行定時查詢,可是即時是定時主動上報的查詢結果,也是基於對預先存儲好的靜態「歷史」數據的查詢結果,而流處理系統則是對實時數據的一個查詢,強調的是數據的「實時性」,處理的都是最新的數據,也就是說,你的查詢結果依據的都是「當前」數據。

相關文章
相關標籤/搜索