为什么我的spark应用程序不能运行“nosuchmethodexception:org.apache.spark.util.systemclock”?

jc3wubiy  于 2021-06-08  发布在  Kafka
关注(0)|答案(1)|浏览(428)

我正在尝试使用javaapi而不是scala从apachespark流连接到kafka。
我收到以下错误:
原因:java.lang.nosuchmethodexception:org.apache.spark.util.systemclock.()at java.lang.class.getconstructor0(class。java:3082)在java.lang.class.newinstance(class。java:412)
创建javastreamingcontext对象时出现错误。
这是我的密码:

JavaStreamingContext jssc = new JavaStreamingContext("local[2]", "KafkaWordCount",
            new Duration(2000), System.getenv("SPARK_HOME"),
            JavaStreamingContext.jarOfClass(JavaKafkaWordCount.class));

    Map<String, Integer> topicMap = new HashMap<String, Integer>();

    topicMap.put("fast-messages", 2);

    JavaPairDStream<String, String> messages = KafkaUtils.createStream(jssc, "localhost:9092", "test", topicMap);

    JavaDStream<String> lines = messages.map(new Function<Tuple2<String, String>, String>() {
     // @Override
      public String call(Tuple2<String, String> tuple2) {
        return tuple2._2();
      }
    });

jar版本:
spark-streaming-kafka 2.10-1.6.2 spark-core 2.11-1.2.1 spark-streaming 2.10-1.6.0
如果你需要更多的信息,请告诉我。

c3frrgcw

c3frrgcw1#

热释光;dr使用 spark-core_2.10 这是因为使用中的scala版本的依赖关系不匹配。
看到了吗 spark-streaming-kafka_2.10 以及 spark-core_2.11 以及 spark-streaming_2.10 . 流jar是为scala2.10编译的,而spark core是为2.11编译的。
它不会强迫您在java上使用scala。spark主要使用scala编写,使用scala构建的依赖项必须与其scala版本相匹配。

相关问题