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