我在同一个kafka/spark流媒体项目中导出了两个jar的两个应用程序。Kafka制作人的jar很好用。带有spark消费程序的jar返回以下错误:
noclassdeffounderror:kafka/serializer/stringdecoder
它们共享同一个dependencies文件夹,我显然已经将其导出,以便使jar在eclipse之外工作。
在eclipse中,它们都工作得很好。
我怎样才能解决这个问题?
我在同一个kafka/spark流媒体项目中导出了两个jar的两个应用程序。Kafka制作人的jar很好用。带有spark消费程序的jar返回以下错误:
noclassdeffounderror:kafka/serializer/stringdecoder
它们共享同一个dependencies文件夹,我显然已经将其导出,以便使jar在eclipse之外工作。
在eclipse中,它们都工作得很好。
我怎样才能解决这个问题?
1条答案
按热度按时间p1tboqfb1#
在类路径中需要Kafka本身,而不仅仅是Kafka。在eclipse中是这样的,因为构建系统检索所有依赖项,并且eclipse与之集成。
我查看了spark streaming kafka的jar,它包含错误中命名的.class文件:org.apache.spark.streaming.kafka.kafkautils$.createstream(kafkautils公司。scala:55). 所以我不明白他为什么没来上课。
你的意思大概是
org.apache.spark.streaming.kafka.KafkaUtils$
,但是当jvm尝试加载它时,它发现它需要其他类,包括kafka.serializer.StringDecoder
,它不在那里。