繁体   English   中英

写入 Kafka 压缩主题的 Spark 代码

[英]Spark code to write to a Kafka compacted topic

有谁知道是否可以将writeStream调用到 Kafka 主题,其中创建的主题是压缩主题? 下面的代码创建了一个 Kafka 主题,但忽略了传递的选项。

    StreamingQuery query = ds
            .writeStream()
            .format("kafka")
            .option("kafka.bootstrap.servers", "localhost:9092"))
            .option("topic", "myTopic")
            .option("cleanup.policy", "compact")
            .option("min.insync.replicas", 1)
            .option("segment.bytes", 4096)
            .option("delete.retention.ms", 100)
            .option("min.compaction.lag.ms", 0)
            .option("min.cleanable.dirty.ratio", 0.01)
            .start();

Spark Structure Streaming,当在引擎盖下使用kafka格式调用writeStream时使用KafkaProducer。

如果在代理端auto.create.topics.enable的值为true (默认值),则当 KafkaProducer 获取元数据时,代理会创建新主题。

KafkaProducer 不传递任何主题的属性 Broker 使用默认一次(例如default.replication.factornum.partitionslog.cleanup.policy )来创建主题。

您不能通过 KafkaProducer 传递主题创建属性。

同样如文档中所述,将kafka前缀与生产者或消费者属性一起使用。

Kafka 自己的配置可以通过 DataStreamReader.option 与 kafka 一起设置。 字首。

例子:

stream.option("kafka.bootstrap.servers","host:port")

此外,您只能在.options传递生产者或消费者级别的属性。 如果您需要设置任何主题级别的配置,则需要使用代理配置,并且无法通过从默认配置中获取的 Spark 流代码进行设置。

https://spark.apache.org/docs/2.2.0/structured-streaming-kafka-integration.html#kafka-specific-configurations

暂无
暂无

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

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