以下SOF解释了为什么akka相关方法未找到异常可能发生:TL; DR scala引导加载程序首先在类路径中放置scala库版本的akka-actors
RemoteActorRefProvider ClassNotFound
但是,只需删除scala库版本而使用自定义版本会导致其他问题:
14/10/28 09:30:23 INFO spark.SecurityManager: SecurityManager: authentication disabled; ui acls disabled; users with view permissions: Set(steve); users with modify permissions: Set(steve)
java.lang.NoSuchMethodError: com.typesafe.config.Config.getDuration(Ljava/lang/String;Ljava/util/concurrent/TimeUnit;)J
at akka.util.Helpers$ConfigOps$.akka$util$Helpers$ConfigOps$$getDuration$extension(Helpers.scala:125)
所以目前尚不清楚处理自定义akka-actor jar的正确方法是什么。
答案 0 :(得分:1)
这方面的解决方法有点令人惊讶。 scala 解释器不是的方式。而是回到(鼓声......) java 解释器来运行(是的scala!)程序。
原因是scala解释器添加了各种东西 - 包括akka类到引导类路径中。显然没有可行的方法。
要使用java运行,我们需要在类路径中包含$ SCALA_home / lib / *。在那之后 - 它运作得很好。
答案 1 :(得分:0)
请看这个JIRA。我认为spark-core 1.3.1软件包包含了不正确的类型安全配置API。 https://issues.apache.org/jira/browse/SPARK-9441 尝试使用maven或等效的gradle,sbt dependencies
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.10</artifactId>
<exclusions>
<exclusion>
<artifactId>config</artifactId>
<groupId>com.typesafe</groupId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.typesafe</groupId>
<artifactId>config</artifactId>
<version>1.2.1</version>
</dependency>