SparkStreaming程序--创建StreamingContext对象的方式

写SparkStreaming程序需要创建StreamingContext对象,创建StreamingContext对象有两种方式:
①.val ssc = new StreamingContext(sc,Durations.Seconds(xxx))
②.val ssc = new StreamingContext(conf,Durations.Seconds(xxx))
 1 object StreamingWordCount {
 2   def main(args: Array[String]): Unit = {
 3     val conf = new SparkConf()
 4     conf.setMaster("local[2]")
 5     conf.setAppName("streamingwc")
 6     val ssc: StreamingContext = new StreamingContext(conf, Durations.seconds(5))
 7     val sc: SparkContext = ssc.sparkContext
 8     sc.setLogLevel("Error")
 9 
10     /**
11       * hello spark
12       * hello java
13       * hello streaming
14       */
15     val lines: ReceiverInputDStream[String] = ssc.socketTextStream("mynode5",9999)
16     val words: DStream[String] = lines.flatMap(line=>{line.split(" ")})
17     val pairWords: DStream[(String, Int)] = words.map(word=>{new Tuple2(word,1)})
18     val result = pairWords.reduceByKey((v1,v2)=>{v1+v2})
19     result.print()
20 
21     ssc.start()
22     ssc.awaitTermination()
23     ssc.stop(false)
24 
25   }
26 
27 }

备注:

/**
  *  SparkStreaming 读取Socket中的数据进行实时wordcount统计。
  *     注意:
  *       1).nc -lk 9999 在linux中启动一个socke服务器
  *       2).本地运行SparkStreaming程序需要设置 local[2] ,如果集群中运行,需要至少两个core
  *       3).写SparkStreaming程序需要创建StreamingContext对象,创建StreamingContext对象有两种方式:
  *           ①.val ssc = new StreamingContext(sc,Durations.Seconds(xxx))
  *           ②.val ssc = new StreamingContext(conf,Durations.Seconds(xxx))
  *       4).Durations.seconds(5) 代表batchInterval ,我们指定的可以接受的数据延迟度。可以设置:seconds,minutes,milliseconds
  *         如何设置batchInterval 需要参照webui 调节。
  *       5).SparkStreaming 启动之后,不能添加新的代码逻辑。
  *       6).SparkStreaming.stop(stopSparkContext = true),在关闭StreamingContext时,需要不需要关闭parkContext对象
  *       7).SparkStreaming.stop 之后不能再次调用SparkStreaming.start()重新将程序启动。
  *
  *
  */
posted @ 2021-04-19 14:02  大数据程序员  阅读(742)  评论(0编辑  收藏  举报