如何使用具有 DataStream API 批处理模式的 Apache Flink 1.12 添加 Kafka 作为有界源

时间:2021-01-14 06:58:08

标签: apache-flink

我想使用 Kafka 源作为 Apache Flink 1.12 的有界数据源,我尝试使用 FlinkKafkaConsumer 连接器,但它给了我以下原因

引起:java.lang.IllegalStateException:检测到“execution.runtime-mode”设置为“BATCH”的未绑定源。不允许这种组合,请将 'execution.runtime-mode' 设置为 STREAMING 或 AUTOMATIC 在 org.apache.flink.util.Preconditions.checkState(Preconditions.java:198) ~[flink-core-1.12.0.jar:1.12.0]

基于 flink 最新文档,我们可以使用 Kafka 作为有界源,但没有提供有关如何实现的示例,也没有提到它是继续使用这种方法的最佳方式。

谁能帮我得到一些示例工作代码来实现这个用例

1 个答案:

答案 0 :(得分:1)

这是一个例子:

KafkaSource<String> source = KafkaSource
        .<String>builder()
        .setBootstrapServers(...)
        .setGroupId(...)
        .setTopics(...)
        .setDeserializer(...)
        .setStartingOffsets(OffsetsInitializer.earliest())
        .setBounded(OffsetsInitializer.latest())
        .build();

env.fromSource(source, WatermarkStrategy.forMonotonousTimestamps(), "Kafka Source"));

有关详细信息,请参阅 the javadocs

相关问题