添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

问题:批处理写入kafka,结束关闭kafka时出现错误:

Caused by: java.lang.NoSuchMethodError: org.apache.kafka.clients.producer.KafkaProducer.close(Ljava/time/Duration;)V
	at org.apache.flink.streaming.connectors.kafka.internals.FlinkKafkaInternalProducer.close(FlinkKafkaInternalProducer.java:172) ~[flink-connector-kafka_2.12-1.0.0.jar:?]
	at org.apache.flink.streaming.connectors.kafka.FlinkKafkaProducer.close(FlinkKafkaProducer.java:941) ~[flink-connector-kafka_2.12-1.0.0.jar:?]
	at org.apache.flink.api.common.functions.util.FunctionUtils.closeFunction(FunctionUtils.java:41) ~[flink-dist_2.12-1.13.2.jar:1.13.2]
	at org.apache.flink.streaming.api.operators.AbstractUdfStreamOperator.close(AbstractUdfStreamOperator.java:109) ~[flink-dist_2.12-1.13.2.jar:1.13.2]
	at org.apache.flink.streaming.runtime.tasks.StreamOperatorWrapper.lambda$closeOperator$5(StreamOperatorWrapper.java:213) ~[flink-dist_2.12-1.13.2.jar:1.13.2]

分析:是版本冲突:

1、    flink-avro-confluent-registry 里面包含了kafka-clients 版本是5.5

2、kafka connector里面包含了kafka-clients 版本是2.4.1

【原文连接:https://www.cnblogs.com/yy3b2007com/p/10274053.html】 CDH下集成spark2.2.0与 kafka (四十一):在spark+ kafka 流处理程序中抛出错误java.lang. NoSuchMethodError : org . apache . kafka . client s.consumer. Kafka Consumer.subs cribe (Ljava/util/Collection;)V 在环境部署的时候,因为是整个拷贝,遗留的历史jar包没有对应删除,导致加载的不同的jar包中存在相同的class类。IOUtils类中没有readFully()方法,通过反编译工具查找这个class类对应的jar包发现,其中一个jar包的类中的确缺少这个方法,但是另外一套环境,包括本地代码环境运行时却没有发现这个 问题 。这说明在编译期没有报错,运行时,报错,然后后面导致进程终止,程序异常,并且此异常并没有在Log4J的log日志中体现,一开始排查并没有找到这个报错,查看nohup后台日志发现这个错误。 使用场景:通过spark的Structured Streaming消费 kafka 中指定 topic 的数据,将分析结果写入到hbase中 报错:java.lang. NoSuchMethodError : org . apache .hadoop.security.authentication.util.KerberosUtil.hasKerberosKeyTab(Ljavax/security/auth/S... 使用 kafka Connectors 时候,序列化方式选择avro时候报 java.lang. NoSuchMethodError : org . apache .avro.Schema.isNullable()Z 解决方式: 修改高级配置的引擎版本 vvr-4.0.13- flink -1.13修改为vvr-4.0.8- flink -1.13 SLF4J: Failed to load class " org .slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j. org /co des .html#Stat... // Create DataFrame representing the stream of input lines from kafka val lines = spark.readStream .format(" kafka ") .option(" kafka .bootstrap.servers", " kafka 1:9092, kafka 2:9092, kafka 3:9092") .option("subs cribe ", ". Kafka Pro ducer ( org . apache . kafka . client s. pro ducer . Kafka Pro ducer )是一个用于向 kafka 集群发送数据的Java客户端。该Java客户端是线程安全的,多个线程可以共享同一个 pro ducer 实例,而且这通常比在多个线程中每个线程创建一个实例速度要快些。 解决:将jar包中的pom中 flink 的依赖版本,也换成1.14.5,与服务器上的 flink 版本一致,即可正常启动啦!原因:升级后使用的 flink 安装版本是1.14.5,而我的jar包中是使用的1.13.2。 flink 消费 kafka 上数据时报错: Caused by: java.lang. NoSuchMethodError : org . apache . kafka . client s.consumer. Kafka Consumer.assign(Ljava/util/List;)V 错误原因: Flink kafka Consumer版本和 kafka - client 的版本不一致 解决方案:三者版本一致 正确配... 启动 kafka 报错:java.lang. NoSuchMethodError : org . apache .zookeeper.ZooKeeper.(Ljava/lang/String;IL org / apache /zookeeper/Watcher;L org / apache /zookeeper/ client /ZK Client Config;)V 1》压测期间产生大量事后数据流向 flink 实时计算环节, flink 任务消费的 kafka 出现堆积而产生告警。 2》通过 flink 监控平台查看日志发现 flink 任务频繁重启失败,checkpoint save失败。 3》通过 kafka 平台监控发现, flink 任务连接 kafka 的连接数不断攀升,即 kafka 连接泄漏。 4》短时间内所有 flink 任务都出现频繁的重启失败,导致 kafka 集群夯住,最终 kafka 集群挂了。 org . apache . kafka .common.network.NetworkSend 是一个 Kafka 客户端库, kafka 0.9以前,首先初始化这个类。你确定在 kafka - client 客户端只有一个版本 kafka - client jar 在classpath