flink:java.lang.NoClassDefFoundError: org/apache/kafka/common/errors/InvalidTxnStateException报错

报错

flink消费kafka时正常,但是向kafka生产消息时产生报错:

java.lang.NoClassDefFoundError: org/apache/kafka/common/errors/InvalidTxnStateException

排错

开始以为是jar包冲突导致,因为项目中即用到了kafka-clients,也用到flink-connector-kafka_2.11,分别排除两个依赖下的kafka-clients。

		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-connector-kafka_2.11</artifactId>
			<version>${flink.version}</version>
			<exclusions>
				<exclusion>
					<groupId>org.apache.kafka</groupId>
					<artifactId>kafka-clients</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

问题没有解决。想到我的kafka连接器用的是flink-connector-kafka_2.11,而kafka集群安装的是0.11.0版本的,官网上说flink-connector-kafka_2.11虽然会适配Kafka的最新版本,但是对于Kafka 0.11.x和0.10.x版本,建议分别使用专用的flink-connector-kafka-0.11_2.11和flink-connector-kafka-0.10_2.11。

于是修改flink-kafka连接器:

		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-connector-kafka-0.11_2.11</artifactId>
			<version>${flink.version}</version>
		</dependency>

问题解决。

PS:我的${flink.version}为1.7.0。根据你的实际情况修改版本号。

猜你喜欢

转载自blog.csdn.net/x950913/article/details/108249507