4

在 oozie 作业的运行时出现以下错误,我们从 1.7 迁移 java jdk 1.8 并且编译成功。

Caused by: java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object;
        at com.twitter.scalding.RichXHandler$.<init>(XHandler.scala:38)
        at com.twitter.scalding.RichXHandler$.<clinit>(XHandler.scala)
        at com.twitter.scalding.Tool$.main(Tool.scala:152)
        at com.twitter.scalding.Tool.main(Tool.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.oozie.action.hadoop.JavaMain.run(JavaMain.java:56)
4

1 回答 1

2

我遇到过同样的问题。当我的集群使用 Scala 2.10 时,我使用了 2.11。您必须使用与您正在运行的环境/集群相同的 scala 版本。如果你运行 spark-shell,你可以看到使用了哪个 scala 版本。

> spark-shell
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 1.6.3
      /_/

Using Scala version **2.10.5** (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_40)
于 2019-03-16T03:47:49.073 回答