spark官网学习

1、foreachRDD设计模式

正确使用foreachRDD的方式,每一个分区创建一个单例connection对象。

dstream.foreachRDD { rdd =>
  rdd.foreachPartition { partitionOfRecords =>
    //创建单例对象
  val connection = createNewConnection() partitionOfRecords.foreach(record => connection.send(record)) connection.close() } }

2、并行机制

  • 数据并行接收,以kafka为例,从多个topics接收数据。
val numStreams = 5
val kafkaStreams = (1 to numStreams).map { i => KafkaUtils.createStream(...) }
val unifiedStream = streamingContext.union(kafkaStreams)
unifiedStream.print()
  • 数据并行处理

  和spark.default.parallelism有关。

3、提交Jobs

Driver:运行main()创建SparkContext;监听Executor,提供Web UI。

在cluster模式,driver内部起一个AM,AM受yarn管理。在client模式,AM仅仅用来申请资源。

参考链接:https://spark.apache.org/docs/1.6.1/streaming-programming-guide.html

 

posted @ 2018-05-24 17:38  乡村骑士2  阅读(145)  评论(0编辑  收藏  举报