Why does submitting a job fail with "NoSuchMethodError: scala.runtime.VolatileObjectRef.zero()Lscala/runtime/VolatileObjectRef;"?
Why does submitting a job fail with "NoSuchMethodError: scala.runtime.VolatileObjectRef.zero()Lscala/runtime/VolatileObjectRef;"?
我正在尝试提交 Spark 作业
它是这样开始的:
import javax.xml.parsers.{SAXParser, SAXParserFactory}
import org.apache.spark
import org.apache.spark.graphx.{Graph, Edge, VertexId}
import org.apache.spark.rdd.{PairRDDFunctions, RDD}
import org.apache.spark.storage.StorageLevel
import org.apache.spark.{SparkContext, SparkConf}
import scala.util.Try
import org.apache.log4j.{Level, Logger}
object MyApp {
def main(args: Array[String]) {
val sparkConf = new SparkConf().setAppName("MyApp")
val sc = new SparkContext(sparkConf)
当我启动它时出现以下错误:
App > Exception in thread "main" java.lang.NoSuchMethodError: scala.runtime.VolatileObjectRef.zero()Lscala/runtime/VolatileObjectRef;
App > at MyApp$.main(MyApp.scala)
App > at MyApp.main(MyApp.scala)
App > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
App > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
App > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
App > at java.lang.reflect.Method.invoke(Method.java:606)
App > at org.apache.spark.deploy.SparkSubmit$.launch(SparkSubmit.scala:328)
App > at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:75)
App > at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
我做错了什么?
编辑:包括完整的堆栈跟踪。
使用 Scala 2.10 和 Spark 1.2.0。
奇怪的是,在我的罐子里,我有两个 类。当我提交一个 spark 时,它可以工作(这是一个 4 行虚拟作业),但是当我 运行 较长的一个(大约 40 行)时,如果失败并出现
以上的错误
zero()
on scala.runtime.VolatileObjectRef
已在 Scala 2.11 中引入
您可能有一个针对 Scala 2.11 和 运行 在 Scala 2.10 运行时编译的库。
见
检查 Maven 依赖项的工件和版本。我在使用
时遇到了同样的错误
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>2.0.1</version>
</dependency>
我不得不将 spark-core_2.10
更改为 spark-core_2.11
,异常消失了。
我正在尝试提交 Spark 作业
它是这样开始的:
import javax.xml.parsers.{SAXParser, SAXParserFactory}
import org.apache.spark
import org.apache.spark.graphx.{Graph, Edge, VertexId}
import org.apache.spark.rdd.{PairRDDFunctions, RDD}
import org.apache.spark.storage.StorageLevel
import org.apache.spark.{SparkContext, SparkConf}
import scala.util.Try
import org.apache.log4j.{Level, Logger}
object MyApp {
def main(args: Array[String]) {
val sparkConf = new SparkConf().setAppName("MyApp")
val sc = new SparkContext(sparkConf)
当我启动它时出现以下错误:
App > Exception in thread "main" java.lang.NoSuchMethodError: scala.runtime.VolatileObjectRef.zero()Lscala/runtime/VolatileObjectRef;
App > at MyApp$.main(MyApp.scala)
App > at MyApp.main(MyApp.scala)
App > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
App > at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
App > at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
App > at java.lang.reflect.Method.invoke(Method.java:606)
App > at org.apache.spark.deploy.SparkSubmit$.launch(SparkSubmit.scala:328)
App > at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:75)
App > at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
我做错了什么?
编辑:包括完整的堆栈跟踪。 使用 Scala 2.10 和 Spark 1.2.0。 奇怪的是,在我的罐子里,我有两个 类。当我提交一个 spark 时,它可以工作(这是一个 4 行虚拟作业),但是当我 运行 较长的一个(大约 40 行)时,如果失败并出现
以上的错误zero()
on scala.runtime.VolatileObjectRef
已在 Scala 2.11 中引入
您可能有一个针对 Scala 2.11 和 运行 在 Scala 2.10 运行时编译的库。
见
检查 Maven 依赖项的工件和版本。我在使用
时遇到了同样的错误<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-sql_2.11</artifactId>
<version>2.0.1</version>
</dependency>
我不得不将 spark-core_2.10
更改为 spark-core_2.11
,异常消失了。