spark从入门到放弃四十五:Spark Streaming(5)详解StreamingContext

文章地址:http://www.haha174.top/article/details/251607
有两种创建StreamingContext的方式
1就是之前用的

 val conf = new SparkConf().setAppName("WorldCountStreaming").setMaster("local[2]")
   
    val jssc = new StreamingContext(conf, Durations.seconds(5))
   
val sc=new SparkContext(conf)
val ssc=new StreamingContext(sc,Durations.seconds(5))

appName 应用名称,master 是spark mesos 或者yarn 的url

batch interval 可以根据你的应用程序的延迟要求以及可用的集群资源情况来设置。

JavaStreamingcontext 还可以使用已有的JavaSparkContext来创建

一个StreamingContext 定义之后必须做以下几件事情
1.通过创建输入DStream 来创建输入数据源。
2.通过对Dstream 定义transformation 和output 算子操作,来定义实时计算逻辑。
3.调用Streamcontext 的start 方法来开始实时处理数据。
4.调用StreamingContext 的awaitTermination 方法,来等待应用程序的终止。开始使用CTRL+C 手动停止,或者就是让他持续不点的运行计算逻辑
5.也可以通过调用StreamingContext 的stop 方法,来停止应用程序。

需要注意的点
1.只要一个Streamingcontext 启动之后,就不能在往其中添加任何的计算逻辑了,比如执行了某个DStream 执行一个算子。
2.一个Streamcontext 停止之后,是肯定不能重启的,调用stop 之后,不能在调用start 方法。
3.一个jvm 同时只能有一个StreamingContext 启动,在你的应用程序中,不能创建两个StreamingContext,
4.调用stop 方法时,会停止内部的SparkContext 如果不希望如此,还希望后面继续使用SparkContext 创建的其他类型的Contrext 比如Sql context 那么就是用stop(false)

  1. 一个Spark Context 可以同时创建多个StreamingContext只要上一个先用stop(false) 停止那么在创建下一个即可
欢迎关注,更多福利
----
![这里写图片描述](http://upload-images.jianshu.io/upload_images/7822142-23641a8df1ead152.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

你可能感兴趣的:(spark从入门到放弃四十五:Spark Streaming(5)详解StreamingContext)