我设置了一个带有多个节点的远程Spark独立集群。为此我下载了这个Spark版本:spark-1.5.1-bin-hadoop1(因为我们有一个旧的Hadoop 1服务正在运行)
在我当地的Scala计划中,我定义了主人的路径:
val conf = new SparkConf().setMaster("spark://node01.kdlan:7078").setAppName("My App")
val sc = new SparkContext(conf)
启动本地本地程序时,我在日志中看到此错误:
16/01/15 10:35:34 WARN ReliableDeliverySupervisor: Association with remote system [akka.tcp://sparkMaster@node01.kdlan:7078] has failed, address is now gated for [5000] ms. Reason: [Disassociated]
在远程主服务器上,我可以在Spark日志文件中看到:
16/01/15 10:35:34 WARN ReliableDeliverySupervisor: Association with remote system [akka.tcp://sparkDriver@myip:43288] has failed, address is now gated for [5000] ms. Reason is: [scala.Option; local class incompatible: stream classdesc serialVersionUID = -114498752079829388, local class serialVersionUID = -2062608324514658839].
16/01/15 10:35:34 INFO Master: myip:43288 got disassociated, removing it.
在某处我读到Spark依赖项应标记为'提供'我在build.sbt中做了。没有定义其他库依赖项。
scalaVersion := "2.11.7"
libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "1.5.1" % "provided"
Spark版本匹配(1.5.1)和Scala主版本(2.11),那么不兼容的Scala Option类来自何处以及如何解决这个问题?
答案 0 :(得分:1)
此答案归功于mark91。
发生此错误的原因是,您可以从Spark主页下载的预编译Spark发行版是使用Scala 2.10编译的 - 因此scala.Option类上的版本不匹配。
如果您想使用Scala 2.11,那么您必须自己编译。 Spark主页上有一个源代码包,您可以为此下载。它也有信息how to compile。
Spark主页上有这个说明,但我错过了。
注意:Scala 2.11用户应该下载Spark源包 使用Scala 2.11支持构建。