我在使用Scala中的Spark Cassandra Connector时遇到了问题。
我使用这些版本:
我可以连接并与Cassandra交谈(没有火花)我可以和Spark(没有Cassandra)交谈,但连接器给了我:
com.datastax.driver.core.exceptions.NoHostAvailableException:所有尝试查询的主机都失败了(尝试:/10.0.0.194:9042(com.datastax.driver.core.TransportException:[/ 10.0.0.194: 9042]无法连接))
我错过了什么? Cassandra是默认安装(根据cassandra.yaml,cql的端口9042)。我试图在本地连接("本地")。
我的代码:
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")
答案 0 :(得分:4)
此上下文中的Local指定Spark master(告诉它以本地模式运行)而不是Cassandra连接主机。
要设置Cassandra Connection主机,您必须在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