为什么Spark Cassandra Connector会因NoHostAvailableException而失败?

Gre*_*reg 5 scala cassandra apache-spark

我在使用Scala中的Spark Cassandra Connector时遇到了问题.

我正在使用这些版本:

  • 斯卡拉2.10.4
  • spark-core 1.0.2
  • cassandra-thrift 2.1.0(我安装的cassandra是v2.1.0)
  • cassandra-clientutil 2.1.0
  • cassandra-driver-core 2.0.4(推荐用于连接器?)
  • spark-cassandra-connector 1.0.0

我可以连接并与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")
Run Code Online (Sandbox Code Playgroud)

Rus*_*ssS 4

在此上下文中,本地指的是指定 Spark 主节点(告诉它以本地模式运行)而不是 Cassandra 连接主机。

要设置 Cassandra 连接主机,您必须在 Spark 配置中设置不同的属性

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)
Run Code Online (Sandbox Code Playgroud)

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