如何修复akka版本的兼容性问题?

时间:2014-11-26 20:34:43

标签: scala redis apache-spark

我在考虑将火花和雷迪丝与SBT一起使用。

如果我注释掉了spark依赖项,它运行正常,如果我包含了我得到的spark依赖:

Exception in thread "main" java.lang.NoSuchMethodError: akka.actor.ActorSystem.dispatcher()Lscala/concurrent/ExecutionContextExecutor;
    at redis.RedisClientActorLike.<init>(Redis.scala:31)
    at redis.RedisClient.<init>(Redis.scala:69)

当我不包含“redisscala”时,我没有任何问题。当我包括redisscala时,我得到了关于Akka的奇怪错误。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

看起来那些版本的Spark和rediscala正在使用不兼容的Akka版本。 Spark 1.1.0使用的是Akka 2.2.3,而rediscala 1.3.1使用的是Akka 2.3.4。 Akka 2.2.x和2.3.x之间存在一些导致问题的变化,并且您的项目目前同时具有瞬态依赖性。

您需要将rediscala降级到1.2(使用Akka 2.2.x),或者将Spark升级到1.2快照(使用Akka 2.3.x)。