Hi,
I have a spark application which uses Cassandra
"connectorspark-cassandra-connector-assembly-1.2.0-SNAPSHOT.jar" to load
data from Cassandra into spark.
Everything works fine in the local mode, when I run in my IDE. But when I
submit the application to be executed in standalone Spark server, I get the
following exception, (which is apparently related to Guava versions ???!).
Does any one know how to solve this?
I create a jar file of my spark application using assembly.bat, and the
followings is the dependencies I used:
I put the "connectorspark-cassandra-connector-assembly-1.2.0-SNAPSHOT.ja"
in the "lib/" folder of my eclipse project thats why it is not included in
the dependencies
libraryDependencies ++= Seq(
"org.apache.spark" %% "spark-catalyst" % "1.1.0" %
"provided",
"org.apache.cassandra" % "cassandra-all" % "2.0.9" intransitive(),
"org.apache.cassandra" % "cassandra-thrift" % "2.0.9" intransitive(),
"net.jpountz.lz4" % "lz4" % "1.2.0",
"org.apache.thrift" % "libthrift" % "0.9.1" exclude("org.slf4j", "slf4j-
api") exclude("javax.servlet", "servlet-api"),
"com.datastax.cassandra" % "cassandra-driver-core" % "2.0.4"
intransitive(),
"org.apache.spark" %% "spark-core" % "1.1.0" % "provided"
exclude("org.apache.hadoop", "hadoop-core"),
"org.apache.spark" %% "spark-streaming" % "1.1.0" % "provided",
"org.apache.hadoop" % "hadoop-client" % "1.0.4" % "provided",
"com.github.nscala-time" %% "nscala-time" % "1.0.0",
"org.scalatest" %% "scalatest" % "1.9.1" % "test",
"org.apache.spark" %% "spark-sql" % "1.1.0" % "provided",
"org.apache.spark" %% "spark-hive" % "1.1.0" % "provided",
"org.json4s" %% "json4s-jackson" % "3.2.5",
"junit" % "junit" % "4.8.1" % "test",
"org.slf4j" % "slf4j-api" % "1.7.7",
"org.slf4j" % "slf4j-simple" % "1.7.7",
"org.clapper" %% "grizzled-slf4j" % "1.0.2",
"log4j" % "log4j" % "1.2.17",
"com.google.guava" % "guava" % "16.0"
)
best,
/Shahab
And this is the exception I get:
Exception in thread "main"
com.google.common.util.concurrent.ExecutionError:
java.lang.NoSuchMethodError:
com.google.common.collect.Sets.newConcurrentHashSet()Ljava/util/Set;
at
com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2261)
at com.google.common.cache.LocalCache.get(LocalCache.java:4000)
at
com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:4004)
at
com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4874)
at
org.apache.spark.sql.cassandra.CassandraCatalog.lookupRelation(CassandraCatalog.scala:39)
at org.apache.spark.sql.cassandra.CassandraSQLContext$$anon$2.org
$apache$spark$sql$catalyst$analysis$OverrideCatalog$$super$lookupRelation(CassandraSQLContext.scala:60)
at
org.apache.spark.sql.catalyst.analysis.OverrideCatalog$$anonfun$lookupRelation$3.apply(Catalog.scala:123)
at
org.apache.spark.sql.catalyst.analysis.OverrideCatalog$$anonfun$lookupRelation$3.apply(Catalog.scala:123)
at scala.Option.getOrElse(Option.scala:120)
at
org.apache.spark.sql.catalyst.analysis.OverrideCatalog$class.lookupRelation(Catalog.scala:123)
at
org.apache.spark.sql.cassandra.CassandraSQLContext$$anon$2.lookupRelation(CassandraSQLContext.scala:65)