Kafka Direct Stream 参数上的 Spark Streaming 更新
Spark Streaming Update on Kafka Direct Stream parameter
我有以下代码:
//Set basic spark parameters
val conf = new SparkConf()
.setAppName("Cartographer_jsonInsert")
val sc = new SparkContext(conf)
val ssc = new StreamingContext(sc, Seconds(2))
val messagesDStream = KafkaUtils.createDirectStream[String, String, StringDecoder, StringDecoder, Tuple4[String, Int, Long, String]](ssc, getKafkaBrokers, getKafkaTopics("processed"), (mmd: MessageAndMetadata[String, String]) => {
(mmd.topic, mmd.partition, mmd.offset, mmd.message().toString)
})
getKafkaBrokers 和 getKafkaTopics 调用一个 API 在我们将它们添加到我们的系统时检查数据库中的特定新主题。 SSC while 运行 每次迭代都会更新变量吗?那么每次都使用新变量重新创建 messageDStream 吗?
看起来不像,有什么办法可以实现吗?
Tathagata Das,Spark Streaming 的创建者之一,在 Spark User List 中回答了关于修改现有 DStream
s 的类似问题。
Currently Spark Streaming does not support addition/deletion/modification of DStream after the streaming context has been started.
Nor can you restart a stopped streaming context.
Also, multiple spark contexts (and therefore multiple streaming contexts) cannot be run concurrently in the same JVM.
我没有看到使用 Spark Streaming 实现这一点的直接方法,因为您无法更新图表。您需要比当前可用的更多的控制。也许是基于 Reactive Kafka 的解决方案,Kafka 的 Akka Streams 连接器。或您控制源的任何其他基于流的解决方案。
您没有将 Akka Graph 与 reactive-kafka 结合使用的任何原因 (https://github.com/akka/reactive-kafka)。构建反应流非常容易,其中可以为源提供主题,流处理消息并汇聚到汇聚结果。
我构建了一个示例应用程序,使用的是相同的 https://github.com/asethia/akka-streaming-graph
我有以下代码:
//Set basic spark parameters
val conf = new SparkConf()
.setAppName("Cartographer_jsonInsert")
val sc = new SparkContext(conf)
val ssc = new StreamingContext(sc, Seconds(2))
val messagesDStream = KafkaUtils.createDirectStream[String, String, StringDecoder, StringDecoder, Tuple4[String, Int, Long, String]](ssc, getKafkaBrokers, getKafkaTopics("processed"), (mmd: MessageAndMetadata[String, String]) => {
(mmd.topic, mmd.partition, mmd.offset, mmd.message().toString)
})
getKafkaBrokers 和 getKafkaTopics 调用一个 API 在我们将它们添加到我们的系统时检查数据库中的特定新主题。 SSC while 运行 每次迭代都会更新变量吗?那么每次都使用新变量重新创建 messageDStream 吗?
看起来不像,有什么办法可以实现吗?
Tathagata Das,Spark Streaming 的创建者之一,在 Spark User List 中回答了关于修改现有 DStream
s 的类似问题。
Currently Spark Streaming does not support addition/deletion/modification of DStream after the streaming context has been started. Nor can you restart a stopped streaming context. Also, multiple spark contexts (and therefore multiple streaming contexts) cannot be run concurrently in the same JVM.
我没有看到使用 Spark Streaming 实现这一点的直接方法,因为您无法更新图表。您需要比当前可用的更多的控制。也许是基于 Reactive Kafka 的解决方案,Kafka 的 Akka Streams 连接器。或您控制源的任何其他基于流的解决方案。
您没有将 Akka Graph 与 reactive-kafka 结合使用的任何原因 (https://github.com/akka/reactive-kafka)。构建反应流非常容易,其中可以为源提供主题,流处理消息并汇聚到汇聚结果。
我构建了一个示例应用程序,使用的是相同的 https://github.com/asethia/akka-streaming-graph