2014-09-19 5 views
5

Ich habe Probleme, Spark Cassandra Connector in Scala arbeiten zu bekommen.Warum schlägt Spark Cassandra Connector mit NoHostAvailableException fehl?

Ich verwende diese Versionen:

  • Scala 2.10.4
  • Funke-Core 1.0.2
  • cassandra-thrift 2.1.0 (meiner installierten cassandra ist v2.1.0)
  • cassandra-clientutil 2.1.0
  • cassandra-Treiber-Core 2.0.4 (für Anschluss empfohlen?)
  • Funken cassandra-Anschluss 1.0.0

Ich kann verbinden und Cassandra (w/o Funke) und ich kann sprechen Spark (w/o Cassandra), aber der Anschluss gibt mir sprechen:

com.datastax.driver.core. exceptions.NoHostAvailableException: Alle Host (s) versucht, für die Suche nach fehlgeschlagen (versucht: /10.0.0.194:9042 (com.datastax.driver.core.TransportException: [/10.0.0.194:9042] Es kann keine Verbindung))

Was fehlt mir? Cassandra ist eine Standardinstallation (Port 9042 für cql nach cassandra.yaml). Ich versuche mich lokal zu verbinden ("local").

Mein Code:

val conf = new SparkConf().setAppName("Simple Application").setMaster("local") 
val sc = new SparkContext("local","test",conf) 
val rdd = sc.cassandraTable("myks","users") 
val rr = rdd.first 
println(s"Result: $rr") 

Antwort

4

Lokale in diesem Zusammenhang sind die Angabe des Spark-Master (sagen, es im lokalen Modus ausgeführt werden) und nicht die Cassandra Verbindung Host.

Um die Cassandra-Verbindung Host legen Sie eine andere Eigenschaft in der Spark-Config

import org.apache.spark._ 

val conf = new SparkConf(true) 
     .set("spark.cassandra.connection.host", "IP Cassandra Is Listening On") 
     .set("spark.cassandra.username", "cassandra") //Optional    
     .set("spark.cassandra.password", "cassandra") //Optional 

val sc = new SparkContext("spark://Spark Master IP:7077", "test", conf) 

https://github.com/datastax/spark-cassandra-connector/blob/master/doc/1_connecting.md

gesetzt haben