一、 StreamingContext詳解
有兩種建立StreamingContext的方式:
val conf = new SparkConf().setAppName(appName).setMaster(master);
val ssc = new StreamingContext(conf, Seconds(1));
StreamingContext,還可以使用已有的SparkContext來建立
val sc = new SparkContext(conf)
val ssc = new StreamingContext(sc, Seconds(1));
複製程式碼
appName,是用來在Spark UI上顯示的應用名稱。master,是一個Spark、Mesos或者Yarn叢集的URL,或者是local[*]。
batch interval可以根據你的應用程式的延遲要求以及可用的叢集資源情況來設定。
二、 StreamingContext詳解
一個StreamingContext定義之後,必須做以下幾件事情:
1、通過建立輸入DStream來建立輸入資料來源。
2、通過對DStream定義transformation和output運算元操作,來定義實時計算邏輯。
3、呼叫StreamingContext的start()方法,來開始實時處理資料。
4、呼叫StreamingContext的awaitTermination()方法,來等待應用程式的終止。可以使用CTRL+C手動停止,或者就是讓它持續不斷的執行進行計算。
5、也可以通過呼叫StreamingContext的stop()方法,來停止應用程式。
需要注意的要點:
1、只要一個StreamingContext啟動之後,就不能再往其中新增任何計算邏輯了。比如執行start()方法之後,還給某個DStream執行一個運算元。
2、一個StreamingContext停止之後,是肯定不能夠重啟的。呼叫stop()之後,不能再呼叫start()
3、一個JVM同時只能有一個StreamingContext啟動。在你的應用程式中,不能建立兩個StreamingContext。
4、呼叫stop()方法時,會同時停止內部的SparkContext,如果不希望如此,還希望後面繼續使用SparkContext建立其他型別的Context,比如SQLContext,那麼就用stop(false)。
5、一個SparkContext可以建立多個StreamingContext,只要上一個先用stop(false)停止,再建立下一個即可。