Cassandra Spark Connector在Google云端的问题

时间:2015-12-08 08:28:19

标签: apache-spark cassandra google-compute-engine google-cloud-platform spark-cassandra-connector

我目前在Google云上部署了Spark和Cassandra的节点。虽然DataStax Spark Cassandra Connector在本地运行良好。在谷歌云上尝试相同时,它会引发连接错误。我确实尝试了各种排列和组合来运行Spark中cassandra的简单值检索代码,但都是徒劳的。部署在gcloud上的spark版本是1.1.0,而cassandra版本是3.0.0。我们使用相同的Spark版本制作了汇编包。

  def main(args: Array[String]): Unit = {

val conf = new SparkConf(true)
.set("spark.cassandra.connection.host", "104.197.133.174")
.set("spark.cassandra.auth.username", "cassandra")           
.set("spark.cassandra.auth.password", "xxxxxxx");
val sc = new SparkContext("local", "test", conf)
val user_table = sc.cassandraTable("demo", "movieslist")
val movie_index = user_table.map(r => new moviesugg(r.getInt("userid"), r.getString("movie")))

val file_collect= user_table.collect()
file_collect.map(println(_))

我收到错误: -

Exception in thread "main" java.io.IOException: Failed to open native connection to Cassandra at {104.197.133.174}:9042
    at com.datastax.spark.connector.cql.CassandraConnector$.com$datastax$spark$connector$cql$CassandraConnector$$createSession(CassandraConnector.scala:174)

Caused by: com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: /104.197.133.174:9042 (com.datastax.driver.core.exceptions.InvalidQueryException: unconfigured table schema_keyspaces))

表模式键空间已正确定义(本地工作正常),我认为这更多是连接问题。我是Cassandra的新手,我想知道是否有任何配置更改,任何人都可以建议,在cassandra.yaml文件上进行,以使代码工作。但是,我确实尝试更改rpc_address和listen_address,但它没有帮助。

任何建议都将不胜感激。

2 个答案:

答案 0 :(得分:1)

看起来你正试图在公共IP上运行Cassandra。正如另一篇文章所述,确保Cassandra确实绑定到公共IP(火花正在查看端口9042)。

假设这是真的,您还需要打开GCE防火墙规则(https://cloud.google.com/compute/docs/networking?hl=en#firewalls)以允许TCP:9042流量。即使Spark在GCE内的单独主机上运行,​​也需要这样做,因为您使用的是公共IP。

如果Cassandra和Spark都在同一主机上运行,​​则可以使用localhost地址。或者,如果它们都在同一个Google Cloud Project中的不同主机上运行,​​那么您应该能够使用私有10.x地址并让Cassandra绑定到该私有地址。

答案 1 :(得分:0)

首先检查端口是否实际打开。其次,鉴于你的系统都有非常遥远的版本,即Spark(v1.1.0)和Cassandra(v3.0.0),在这种情况下,这可能是你的主要问题。请查看此链接以获取版本兼容性:

https://github.com/datastax/spark-cassandra-connector#version-compatibility