spark 连接 kafka 遇到的问题

本文记录了在使用Spark过程中,尝试连接Kafka时遇到的问题及解决方案。详细描述了从使用kafka_2.12-2.1.0.jar替换为kafka_2.11-0.8.2.0.jar的过程,探讨了不同版本间可能的兼容性问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java.lang.NoClassDefFoundError: kafka/api/TopicMetadataRequest
        at org.apache.spark.streaming.kafka.KafkaCluster.getPartitionMetadata(KafkaCluster.scala:130)
        at org.apache.spark.streaming.kafka.KafkaCluster.getPartitions(KafkaCluster.scala:120)
        at org.apache.spark.streaming.kafka.KafkaUtils$.getFromOffsets(KafkaUtils.scala:212)
        at org.apache.spark.streaming.kafka.KafkaUtils$.createDirectStream(KafkaUtils.scala:485)
        at com.company.CF_from_kudu$.main(CF_from_kudu.scala:42)
        at com.company.CF_from_kudu.main(CF_from_kudu.scala)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.spark.deploy.yarn.ApplicationMaster$$anon$2.run(ApplicationMaster.scala:635)
Caused by: java.lang.ClassNotFoundException: kafka.api.TopicMetadataRequest
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)

将kafka_2.12-2.1.0.jar 替换成kafka_2.11-0.8.2.0.jar

./spark-submit --class com.company.CF_from_kudu --master yarn --deploy-mode cluster --executor-memory 6g --executor-cores 2 --jars /data1/testdata/dependencesjar/kafka_2.11-0.8.2.0.jar,/data1/testdata/dependencesjar/metrics-core-2.2.0.jar,/data1/testdata/dependencesjar/spark-streaming-kafka-0-8_2.11-2.3.0.jar /data1/testdata/executorjar/CF-1.0-SNAPSHOT.jar datanode4:9092,datanode5:9092,datanode6:9092 mytopic
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值