【问题标题】:Issues in Cassandra Spark Connector over google cloud谷歌云上的 Cassandra Spark 连接器中的问题
【发布时间】:2015-12-11 22:24:44
【问题描述】:

我目前已经在谷歌云上部署了 Spark 和 Cassandra 的节点。虽然 DataStax Spark Cassandra 连接器在本地运行良好。在谷歌云上尝试相同时,它会引发连接错误。我确实尝试了各种排列和组合来从 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,但没有帮助。

任何建议将不胜感激。

【问题讨论】:

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


    【解决方案1】:

    您似乎正试图在公共 IP 上运行 Cassandra。如另一篇文章所述,确保 Cassandra 确实绑定到公共 IP(spark 正在查看端口 9042)。

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2018-11-28
        • 1970-01-01
        • 1970-01-01
        • 2015-09-13
        • 2016-08-11
        • 2016-03-22
        • 1970-01-01
        • 1970-01-01
        • 2017-09-12
        相关资源
        最近更新 更多