🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
* StreamingContext是Spark Streaming流处理的入口 * 2.2版本SparkSession未整合StreamingContext,所以仍需单独创建StreamingContext 共有两种方式创建 StreamingContext。 ```scala /****************** 方式一:通过SparkConf创建StreamingContext *******/ val conf:SparkConf = new SparkConf().setAppName(appName).setMaster(master); // Seconds(5)是批处理间隔,即将5秒内新收集的数据作为一个单位进行处理 val ssc:StreamingContext = new StreamingContext(conf, Seconds(5)) /***************** 方式二:通过SparkContext创建StreamingContext ******/ val conf:SparkConf = new SparkConf().setAppName(appName).setMaster(master); val sc:SparkContext = new SparkContext(conf) val ssc:StreamingContext = new StreamingContext(sc, Seconds(5)) ``` 创建 StreamingContext需要注意下面几个问题: 1. 一个 JVM 只能有一个 SparkContext 启动。意味着应用程序中不应该出现两个 SparkContext。 2. 一个 JVM 同时只能有一个 StreamingContext 启动。但一个 SparkContext可以创建多个 StreamingContext,只要上一个 StreamingContext 先用 stop(false)停止,再创建下一个即可。默认调用stop()方法时,会同时停止内部的SparkContext。 3. StreamingContext 停止后不能再启动。也就是说调用 stop()后不能再 start()。 4. StreamingContext 启动之后,就不能再往其中添加任何计算逻辑了。也就是说执行 start()方法之后,不能再使 DStream 执行任何算子。