有两种创建StreamingContext的方式:

  1. val conf = new SparkConf().setAppName(appName).setMaster(master);
  2. val ssc = new StreamingContext(conf, Seconds(1));
  3. StreamingContext,还可以使用已有的SparkContext来创建
  4. val sc = new SparkContext(conf)
  5. val ssc = new StreamingContext(sc, Seconds(1));
  6. appName,是用来在Spark UI上显示的应用名称。master,是一个SparkMesos或者Yarn集群的URL,或者是local[*]。
  7. batch interval可以根据你的应用程序的延迟要求以及可用的集群资源情况来设置。

StreamingContext详解(二)

  1. 一个StreamingContext定义之后,必须做以下几件事情:
  2. 1、通过创建输入DStream来创建输入数据源。
  3. 2、通过对DStream定义transformationoutput算子操作,来定义实时计算逻辑。
  4. 3、调用StreamingContextstart()方法,来开始实时处理数据。
  5. 4、调用StreamingContextawaitTermination()方法,来等待应用程序的终止。可以使用CTRL+C手动停止,或者就是让它持续不断的运行进行计算。
  6. 5、也可以通过调用StreamingContextstop()方法,来停止应用程序。
  7. 需要注意的要点:
  8. 1、只要一个StreamingContext启动之后,就不能再往其中添加任何计算逻辑了。比如执行start()方法之后,还给某个DStream执行一个算子。
  9. 2、一个StreamingContext停止之后,是肯定不能够重启的。调用stop()之后,不能再调用start()
  10. 3、一个JVM同时只能有一个StreamingContext启动。在你的应用程序中,不能创建两个StreamingContext
  11. 4、调用stop()方法时,会同时停止内部的SparkContext,如果不希望如此,还希望后面继续使用SparkContext创建其他类型的Context,比如SQLContext,那么就用stop(false)。
  12. 5、一个SparkContext可以创建多个StreamingContext,只要上一个先用stop(false)停止,再创建下一个即可。