1. 如果只用一个 kafka 版本的话,可以不要 flink-sql-connector-kafka-0.10_2.12-1.11.1.jar 这个 jar包把,就是没有必要 将 kafka client shade 。 目前 1.12 版本也只有一个 kafka connector 版本了。 2. 如果确实需要 shade 的包的话,可以指定 `org.apache.kafka` 开头的包优先从用户的 classload 加载。
在 2020-11-17 16:14:24,"kingdomad" <kingdo...@163.com> 写道: >大佬牛逼! >我看了一下,集群上确实是存在了一个flink-sql-connector-kafka-0.10_2.12-1.11.1.jar的包。 >请问下这个问题要如何解决 > > > > > > > >-- > >kingdomad > > > > > > > >在 2020-11-17 17:08:10,"hailongwang" <18868816...@163.com> 写道: >>从你的报错上看,你集群上应该是存在 shade 后的 kakfa 0.10 的版本,然后导致先加载到了这个下面的 kafka client 的类。 >>Shade 后的 kakfa 0.10的版本 的 artifactId 为: >><artifactId>flink-sql-connector-kafka-0.10_${scala.binary.version}</artifactId> >> >>在 2020-11-17 15:47:08,"kingdomad" <kingdo...@163.com> 写道: >>>flink 1.11.1-2.12消费kafka0.10.1.1的时候报错。 >>>在idea调试没报错,提交到yarn集群就报错了。求助。 >>> >>> >>>使用的consumer如下: >>>val logConsumer: FlinkKafkaConsumer010[String] = new >>>FlinkKafkaConsumer010[String](topic, new SimpleStringSchema(), properties) >>> >>> >>>pom文件导入的依赖如下: >>> <dependency> >>> <groupId>org.apache.flink</groupId> >>> <artifactId>flink-connector-kafka-0.10_2.12</artifactId> >>> <version>1.11.1</version> >>> </dependency> >>> >>> >>> >>>报错如下: >>> >>>2020-11-17 16:39:37 >>> >>>org.apache.kafka.common.KafkaException: Failed to construct kafka consumer >>> >>>at >>>org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:718) >>> >>>at >>>org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:597) >>> >>>at >>>org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:579) >>> >>>at >>>org.apache.flink.streaming.connectors.kafka.internal.Kafka010PartitionDiscoverer.initializeConnections(Kafka010PartitionDiscoverer.java:58) >>> >>>at >>>org.apache.flink.streaming.connectors.kafka.internals.AbstractPartitionDiscoverer.open(AbstractPartitionDiscoverer.java:94) >>> >>>at >>>org.apache.flink.streaming.connectors.kafka.FlinkKafkaConsumerBase.open(FlinkKafkaConsumerBase.java:550) >>> >>>at >>>org.apache.flink.api.common.functions.util.FunctionUtils.openFunction(FunctionUtils.java:36) >>> >>>at >>>org.apache.flink.streaming.api.operators.AbstractUdfStreamOperator.open(AbstractUdfStreamOperator.java:102) >>> >>>at >>>org.apache.flink.streaming.runtime.tasks.OperatorChain.initializeStateAndOpenOperators(OperatorChain.java:291) >>> >>>at >>>org.apache.flink.streaming.runtime.tasks.StreamTask.lambda$beforeInvoke$0(StreamTask.java:473) >>> >>>at >>>org.apache.flink.streaming.runtime.tasks.StreamTaskActionExecutor$SynchronizedStreamTaskActionExecutor.runThrowing(StreamTaskActionExecutor.java:92) >>> >>>at >>>org.apache.flink.streaming.runtime.tasks.StreamTask.beforeInvoke(StreamTask.java:469) >>> >>>at >>>org.apache.flink.streaming.runtime.tasks.StreamTask.invoke(StreamTask.java:522) >>> >>>at org.apache.flink.runtime.taskmanager.Task.doRun(Task.java:721) >>> >>>at org.apache.flink.runtime.taskmanager.Task.run(Task.java:546) >>> >>>at java.lang.Thread.run(Thread.java:745) >>> >>>Caused by: org.apache.kafka.common.KafkaException: >>>org.apache.flink.kafka010.shaded.org.apache.kafka.common.serialization.ByteArrayDeserializer >>> is not an instance of org.apache.kafka.common.serialization.Deserializer >>> >>>at >>>org.apache.kafka.common.config.AbstractConfig.getConfiguredInstance(AbstractConfig.java:205) >>> >>>at >>>org.apache.kafka.clients.consumer.KafkaConsumer.<init>(KafkaConsumer.java:637) >>> >>>... 15 more >>> >>> >>> >>> >>> >>> >>> >>>-- >>> >>>kingdomad >>>