SparkStreaming提交任务到master时报错:
Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc(Ljava/lang/Object;)
这个错误是因为打包版本中的scala-library
版本号和spark集群用的scala-library版本不一致导致。
可以通过运行 $SPARK_HOME/bin/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_77)
在spark-shell
的启动日志中可以观察到服务器上使用的spark版本是1.6.3,scala-library版本是2.10.5。
在我们本地将pom里面的scala-library版本改正确,重新打包、提交,一切就OK了