首页 文章

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

提问于
浏览
5

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

我正在使用这些版本:

  • Scala 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")

1 回答

  • 4

    本上下文中的本地是指定Spark主服务器(告诉它以本地模式运行)而不是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

相关问题