nosuchmethoderror:spark+kafka:java

uqjltbpv  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(283)

用例
使用spark和java作为编程语言从kafka主题获取和打印简单的消息
背景
处理Kafka风暴整合的经验,开发和维护Kafka集群和风暴拓扑超过一年。
没有使用apachespark和scala的经验
使用独立的spark cluster成功构建并测试了简单的字数计算应用程序。
问题

Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object;
    at org.apache.spark.streaming.kafka.KafkaUtils$.createStream(KafkaUtils.scala:64)
    at org.apache.spark.streaming.kafka.KafkaUtils$.createStream(KafkaUtils.scala:110)
    at org.apache.spark.streaming.kafka.KafkaUtils.createStream(KafkaUtils.scala)
    at com.random.spark.EventsToFileAggregator.main(EventsToFileAggregator.java:54)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:731)
    at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:181)
    at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:206)
    at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:121)
    at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

在eventstofileaggregator。java:54

JavaPairReceiverInputDStream<String, String> messages =
 KafkaUtils.createStream(jsc, args[0], args[1], topicMap,
 StorageLevel.MEMORY_AND_DISK_SER());

pom.xml文件

<dependencies>
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.11</artifactId>
        <version>1.6.1</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-streaming_2.11</artifactId>
        <version>1.6.1</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-streaming-kafka_2.11</artifactId>
        <version>1.6.1</version>
    </dependency>
</dependencies>

建造
成功,无任何警告
命令

./bin/spark-submit --class com.random.spark.EventsToFileAggregator --master spark://host:7077 /usr/local/spark/stats/target/stats-1.0-SNAPSHOT-jar-with-dependencies.jar localhost:2181 test topic 2
92vpleto

92vpleto1#

NoSuchMethodError 几乎总是表示两个库的版本不兼容。在本例中,kafka试图使用一个不存在的scala语言特性。检查spark streaming kafka的版本是否与您使用的scala版本兼容。确保您没有真正使用scala而不是java运行。

相关问题