Flink Kafka Sink org.apache.kafka.common.errors.UnsupportedVersionException 错误

时间:2020-12-30 08:42:33

标签: apache-kafka apache-flink flink-streaming

版本 flink(1.11.3), kafka(2.1.1)

我的 flink 数据管道是 kafka(source) -> flink -> kafka(sink)。

当我首先提交作业时,它运行良好。 但是jobmanager或者taskmanager失败后,如果重启,就会出现异常

<块引用>

2020-12-31 10:35:23.831 [objectOperator -> Sink: objectSink (1/1)] WARN o.apache.flink.streaming.connectors.kafka.FlinkKafkaProducer - 遇到错误 org.apache.kafka.common .errors.InvalidTxnStateException:生产者尝试在无效状态下进行事务性操作。同时恢复事务 KafkaTransactionState [transactionalId=objectOperator -> Sink: objectSink-bcabd9b643c47ab46ace22db2e1285b6-3, producerId=14698, epoch=7]。想必这个事务之前已经提交了 2020-12-31 10:35:23.919 [userOperator -> Sink: userSink (1/1)] WARN org.apache.flink.runtime.taskmanager.Task - userOperator -> Sink: userSink (1/1) (2a5a171aa335f48c48c477778c)从 RUNNING 切换到 FAILED。 org.apache.kafka.common.errors.InvalidPidMappingException:生产者试图使用当前未分配给其事务 ID 的生产者 ID。 2020-12-31 10:35:24.131 [objectOperator -> Sink: objectSink (1/1)] WARN org.apache.flink.runtime.taskmanager.Task - objectOperator -> Sink: objectSink (1/1) (07fe747a81b31e064333e)从 RUNNING 切换到 FAILED。 org.apache.kafka.common.errors.UnsupportedVersionException:尝试在版本 1 中编写非默认生产者 ID

我不知道为什么会出现这个错误。

我的 kafka 生产者代码

 Properties props = new Properties();
        props.setProperty("bootstrap.servers", servers);
        props.setProperty("transaction.timeout.ms", "30000");
        FlinkKafkaProducer<CountModel> producer = new FlinkKafkaProducer<CountModel>(
                topic,((record, timestamp) -> new ProducerRecord<>(
                        topic
                        , Longs.toByteArray(record.getUserInKey())
                        , JsonUtils.toJsonBytes(record))), props, FlinkKafkaProducer.Semantic.EXACTLY_ONCE);

我不认为这是一个版本问题。 好像没有人遇到过和我一样的错误

0 个答案:

没有答案