SreamingContext详解
1.创建StreamingContext的方式
创建StreamingContext的方式有两种
val conf=new SparkConf().setAppName(appName).setMaster(master);
val ssc=new StreamingContext(conf,Seconds(1));
还可以通过已有的SparkContext来创建
val sc=new SparkContext(conf)
val ssc=new StreamingContext(sc,Seconds(1));
参数解析
appName:是用来在Spark UI上显示的应用名称
master:是一个Spark、Mesos或者Yarn集群的URL,或者是local[*],星号代表需要使用CPU的核心数
batch interval:根据应用程序的延迟要求以及可用的集群资源来设置
2.定义StreamingContext之后必须要做的事
(1)通过创建输入DStream来创建输入数据源
(2)通过对DStream定义transformation和output算子操作,来定义实时计算逻辑
(3)调用StreamingContext的start()方法,来开始实时处理数据
(4)调用StreamingContext的awaitTermination()方法,来等待应用程序的终止
(5)也可以调用StreamingContext的stop()方法,来停止应用程序
3.注意要点
(1)只要一个StreamingContext启动之后,就不能再往其中添加任何计算逻辑了
(2)一个StreamingContext停止之后,是肯定不能够重启的,调用stop()之后不能再调用start(),否则会报StreamingContext has already been stopped的异常
(3)一个JVM同时只能有一个StreamingContext启动,在Spark应用程序中不能创建两个StreamingContext
(4)调用stop()方法时,会同时停止内部的SparkContext,如果还希望后面继续使用SparkContext创建其他类型的Context,则需要使用stop(false)
(5)一个SparkContext可以创建多个StreamingContext,只要上一个先用stop(false)停止,再创建下一个即可