1. 程式人生 > >基於spark streaming的流資料處理和分析

基於spark streaming的流資料處理和分析

Stream context 相當於spark context

做實時處理就得用到

setup之後如果close你需要重新建立一個,重啟是不行的

詞頻統計,stream context

ssc.start()執行之後,上面程式碼段才會執行

一系列不停的RDD

Receives接收器

建立多個receivers 你需要 在cluster裡

Nifi可以往kafka送,或者sparksteaming從nifi拿

在spark-shell實現wc

導包

 

如果已經常建立streamingcontext的話

 

隨便給一個埠

開啟網口

 原始碼放出

import org.apache.spark._
import org.apache.spark.streaming._
import org.apache.spark.streaming.StreamingContext._

val conf = new SparkConf().setMaster("local[2]").setAppName("NetworkWordCount")
val ssc = new StreamingContext(conf, Seconds(1))

RDD的join

Join必須是k,v

Rdd分解成若干個分割槽

不同的分割槽在不同的程序或者機器上

一個rdd很多分割槽,一個節點建立connection不可以傳到另一個機器上,為了安全性考慮

 所以連線是不可以被序列化或者反序列化

 

所以在一臺機器上建立的connection不可以在多個分割槽上

所以要foreach每一個

聚合計算處理不一定基於bykey  bywindow

只要有這些引數會自動進行視窗的儲存

這是內建功能

下面可以自動還原 stream connection

 如何實施 checkpointing

可以是kafka也可以是flume等等

結構和程式碼功能雷同

視窗滑動5-10次應該呼叫一下這個方法