這個項目是基于spark streaming的日志分析系統(tǒng),每分鐘提交一次job,統(tǒng)計一分鐘內(nèi)的日志信息,同時也需要統(tǒng)計15分支內(nèi)的異常ip信息.下面就來介紹下什么是spark streaming吧.
spark streaming
以下是摘抄自<<spark快速大數(shù)據(jù)分析>>的原文:
和spark基于RDD的概念很相似, spark streaming使用離散化流(discretized stream)作為抽象表示, 叫做DStream. DStream是隨時間推移而收到的數(shù)據(jù)的序列. 在內(nèi)部, 每個時間區(qū)間收到的數(shù)據(jù)都作為RDD存在,而DStream是由這些RDD所組成的序列.DStream可以從各種輸入源創(chuàng)建, 比如flume, kafka或者HDFS. 創(chuàng)建出來的DStream支持兩種操作(action), 一種是轉(zhuǎn)化操作(transformation), 會生成一個心得DStream, 另一種是輸出操作(output operation), 可以把數(shù)據(jù)寫入外部系統(tǒng)中. DStream提供了許多與RDD所支持的操作相類似的操作,還增加與時間相關(guān)的新操作,比如滑動窗口.
很明顯,spark streaming是用來編寫實時流式的計算模塊,同時提供了一定的容錯機制,保證了7 * 24小時不間斷運行.
DStream
- spark的運算基于RDD,而spark streaming的運算基于DStream.
- DStream其實就是封裝了一組RDD序列的上層表示,這些RDD中的數(shù)據(jù)就是在開發(fā)者規(guī)定的窗口大小內(nèi),從輸入源中獲取的數(shù)據(jù),這個窗口大小可以是1s,也可以是10s, 1分鐘, 輸入源可以是kafka, flume等.
- spark streaming會按照窗口大小, 一組一組地提交計算job到集群上運算.