【问题标题】:Writing Spark Structured Streaming Output to a Kafka Topic将 Spark 结构化流输出写入 Kafka 主题
【发布时间】:2018-10-28 00:25:37
【问题描述】:

我有一个简单的结构化流应用程序,它只从一个 Kafka 主题读取数据并写入另一个主题。

SparkConf conf = new SparkConf()
        .setMaster("local[*]")
        .setAppName("test");

SparkSession spark = SparkSession
        .builder()
        .config(conf)
        .getOrCreate();

Dataset<Row> dataset = spark
        .readStream()
        .format("kafka")
        .option("kafka.bootstrap.servers", "localhost:9092")
        .option("subscribe", "start")
        .load();

StreamingQuery query = dataset
        .writeStream()
        .format("kafka")
        .option("kafka.bootstrap.servers", "localhost:9092")
        .option("checkpointLocation", "checkpoint")
        .option("topic", "end")
        .start();

query.awaitTermination(20000);

关于主题start 有两条消息要处理。这段代码无一例外地运行,但是没有消息以主题 end 结束。这个例子有什么问题?

【问题讨论】:

    标签: apache-spark apache-kafka spark-structured-streaming


    【解决方案1】:

    问题是消息已经在流中,并且起始偏移量未设置为“最早”。

    Dataset<Row> dataset = spark
            .readStream()
            .format("kafka")
            .option("kafka.bootstrap.servers", "localhost:9092")
            .option("subscribe", start.getTopicName())
            .option("startingOffsets", "earliest")
            .load();
    

    【讨论】:

      猜你喜欢
      • 2017-08-12
      • 2020-11-05
      • 2019-07-21
      • 1970-01-01
      • 2019-11-25
      • 2018-10-06
      • 2020-09-26
      • 2019-07-12
      相关资源
      最近更新 更多