繁体   English   中英

Spark - 不会停止使用 Kafka 主题的 Spark Stream

[英]Spark - Is not stopping Spark Stream that consumes a Kafka topic

我正在尝试为使用来自 kafka 的数据的 Spark 流示例编写测试。 我为此使用EmbeddedKafka

  implicit val config = EmbeddedKafkaConfig(kafkaPort = 12345)

  EmbeddedKafka.start()
  EmbeddedKafka.createCustomTopic(topic)

  println(s"Kafka Running ${EmbeddedKafka.isRunning}")

  val spark = SparkSession.builder.appName("StructuredStreaming").master("local[2]").getOrCreate
  import spark.implicits._

  val df = spark.readStream.format("kafka")
    .option("kafka.bootstrap.servers", "localhost:12345")
    .option("subscribe", topic)
    .load()

  // pushing data to kafka
  vfes.foreach(e => {
    val json = ...
    EmbeddedKafka.publishStringMessageToKafka(topic, json)
  })

  val query = df.selectExpr("CAST(value AS STRING)")
    .as[String]
    .writeStream.format("console")

  query.start().awaitTermination()
  spark.stop()
  EmbeddedKafka.stop()

当我运行它时,它会继续运行并且不会停止或向控制台打印任何内容。 我不明白为什么会这样。 我还尝试通过在流上调用stop之前调用EmbeddedKafka.stop()终止 kafka。

尝试设置超时

 query.start().awaitTermination( 3000)

其中 3000 以毫秒为单位

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM