Ошибка в интеграции Spark Cassandra с разъемом Spark-Cassandra

Я пытаюсь сохранить данные в Кассандре в автономном режиме от искры. Запустив следующую команду:

  bin/spark-submit --packages datastax:spark-cassandra-connector:1.6.0-s_2.10
     --class "pl.japila.spark.SparkMeApp" --master local  /home/hduser2/code14/target/scala-2.10/simple-project_2.10-1.0.jar

Мой файл build.sbt:-

**name := "Simple Project"    
version := "1.0"     
scalaVersion := "2.10.4"      
libraryDependencies += "org.apache.spark" %% "spark-core" % "1.6.0"     
libraryDependencies += "org.apache.spark" %% "spark-sql" % "1.6.0"     
resolvers += "Spark Packages Repo" at "https://dl.bintray.com/spark-packages/maven"       
libraryDependencies += "datastax" % "spark-cassandra-connector" % "1.6.0-s_2.10"       
libraryDependencies ++= Seq(        
  "org.apache.cassandra" % "cassandra-thrift" % "3.5" ,      
  "org.apache.cassandra" % "cassandra-clientutil" % "3.5",      
  "com.datastax.cassandra" % "cassandra-driver-core" % "3.0.0"    
)**

Мой код Spark:-

package pl.japila.spark     
import org.apache.spark.sql._    
import com.datastax.spark.connector._    
import com.datastax.driver.core._     
import com.datastax.spark.connector.cql._   
import org.apache.spark.{SparkContext, SparkConf}    
import com.datastax.driver.core.QueryOptions._    
import org.apache.spark.SparkConf    
import com.datastax.driver.core._   
import com.datastax.spark.connector.rdd._   

object SparkMeApp {
  def main(args: Array[String]) {

 val conf = new SparkConf(true).set("spark.cassandra.connection.host", "127.0.0.1")

  val sc = new SparkContext("local", "test", conf)    
  val sqlContext = new org.apache.spark.sql.SQLContext(sc)    
  val rdd = sc.cassandraTable("test", "kv")    
  val collection = sc.parallelize(Seq(("cat", 30), ("fox", 40)))

collection.saveToCassandra("test", "kv", SomeColumns("key", "value"))
  }
}

И я получил эту ошибку:-

Исключение в потоке "main" java.lang.NoSuchMethodError: com.datastax.driver.core.QueryOptions.setRe freshNodeIntervalMillis(I)Lcom/datastax/driver/core/QueryOptions;** в com.datastax.spark.cone f.Conf.D.D. $.clusterBuilder(CassandraConnectionFactory.scala:49) в com.datastax.spark.connector.cql.DefaultConnectionFactory$.createCluster(CassandraConnectionFactory.scala:92) в com.datastax.spark.conass.andra $ $ dattax$ comc. spark$connector$cql$CassandraConnector$$createSession(CassandraConnector.scala:153) на com.datastax.spark.connector.cql.CassandraConnector$$anonfun$3.apply(CassandraConnector.scala:148) на com.datastax.spark.connector.cql.CassandraConnector $$ anonfun $ 3.acquire (RefCountingCache.scala:56) в com.datastax.spark.connector.cql.CassandraConnector.openSess ион (CassandraConnector.scala:81) на com.datastax.spark.connector.cql.CassandraConnector.withSessionDo(CassandraConnector.scala:109)

Используемые версии:-
Искра - 1.6.0
Скала - 2.10.4
Кассандра-драйвер-ядро - 3.0.0
Кассандра версия 2.2.7
разъем искро-кассандры - 1.6.0-s_2.10

КТО-ТО ПОЖАЛУЙСТА, ПОМОГИТЕ!!

1 ответ

Решение

Я бы начал с удаления

libraryDependencies ++= Seq(        
  "org.apache.cassandra" % "cassandra-thrift" % "3.5" ,      
  "org.apache.cassandra" % "cassandra-clientutil" % "3.5",      
  "com.datastax.cassandra" % "cassandra-driver-core" % "3.0.0"    
)

Поскольку библиотеки, являющиеся зависимостями коннектора, будут автоматически включены с зависимостями пакетов.

Затем я проверил бы разрешение пакетов, запустив spark-shell с

./bin/spark-shell --packages datastax:spark-cassandra-connector:1.6.0-s_2.10

вы видите, что следующие резолюции происходят правильно

datastax#spark-cassandra-connector added as a dependency
:: resolving dependencies :: org.apache.spark#spark-submit-parent;1.0
        confs: [default]
        found datastax#spark-cassandra-connector;1.6.0-s_2.10 in spark-packages
        found org.apache.cassandra#cassandra-clientutil;3.0.2 in list
        found com.datastax.cassandra#cassandra-driver-core;3.0.0 in list
        ...
        [2.10.5] org.scala-lang#scala-reflect;2.10.5
:: resolution report :: resolve 627ms :: artifacts dl 10ms
        :: modules in use:
        com.datastax.cassandra#cassandra-driver-core;3.0.0 from list in [default]
        com.google.guava#guava;16.0.1 from list in [default]
        com.twitter#jsr166e;1.1.0 from list in [default]
        datastax#spark-cassandra-connector;1.6.0-s_2.10 from spark-packages in [default]
        ...

Если они исправляются, но все по-прежнему не работает, я бы попытался очистить кэш для этих артефактов.

Другие вопросы по тегам