【问题标题】:Cassandra connection to SparkCassandra 连接到 Spark
【发布时间】:2018-08-17 09:14:09
【问题描述】:

我正在将 spark 与 Cassandra 连接,并将 csv 文件存储在 Cassandra 中,当我输入此命令时出现错误。

 dfprev.write.format("org.apache.spark.sql.cassandra") .options(Map("keyspace"->"sensorkeyspace","table"->"sensortable")).save()

然后我得到了这个错误。

java.io.IOException: 无法在 {127.0.0.1}:9042 打开到 Cassandra 的本机连接 在 com.datastax.spark.connector.cql.CassandraConnector$.com$datastax$spark$connector$cql$CassandraConnector$$createSession(CassandraConnector.scala:168) 在 com.datastax.spark.connector.cql.CassandraConnector$$anonfun$8.apply(CassandraConnector.scala:154) 在 com.datastax.spark.connector.cql.CassandraConnector$$anonfun$8.apply(CassandraConnector.scala:154) 在 com.datastax.spark.connector.cql.RefCountedCache.createNewValueAndKeys(RefCountedCache.scala:32) 在 com.datastax.spark.connector.cql.RefCountedCache.syncAcquire(RefCountedCache.scala:69)

【问题讨论】:

  • 127.0.0.1 和端口 9042 是您的 cassandra 连接吗?
  • 我使用的是 Cassandra 3.11.2 和 spark 2.0.2 以及 scala 版本 2.11.8,你能告诉我我使用的是哪个连接器吗?
  • 你有没有得到这个工作?我也面临同样的问题。

标签: scala apache-spark cassandra apache-spark-sql spark-cassandra-connector


【解决方案1】:

你在 localhost 上收听 Cassandra 吗?您可能需要通过在 Spark 配置中指定 spark.cassandra.connection.host 设置来配置 Cassandra 集群的 IP 地址列表。详情请见documentation

【讨论】:

  • 'import org.apache.spark import org.apache.spark._'import org.apache.spark.SparkContext import org.apache.spark.SparkContext._ org.apache.spark.SparkContext import org.apache.spark.SparkContext._ import org.apache.spark.SparkConf val conf = new SparkConf(true).set("spark.cassandra.connection.host", "127.0.0.1") val sc = new SparkContext( conf) val test_spark_rdd = sc.cassandraTable("sensorkeyspace", "sensortable")
  • 当我输入最后一行时,这给了我这个错误。
【解决方案2】:

可能有以下任何一种

  1. Cassandra 服务器可能未在 127.0.0.1:9042 运行

    请使用 netstat -an 命令检查 cassandra 是否正在侦听端口 9042。

  2. fat jar 时可能存在依赖问题。

    请确保您在库依赖项中添加了正确版本的 cassandra 连接器,例如

    "com.datastax.spark" %% "spark-cassandra-connector" % "2.0.0-M3"

我正在运行这个命令 ./spark-shell --packages com.datastax.spark:spark-cassandra-connector_2.11:2.0.0-M3 --conf spark.cassandra.connection.host=127.0.0.

要指定为的包,

spark-shell --packages "com.datastax.spark":"spark-cassandra-connector_2.11":"2.0.0-M3"

【讨论】:

  • 我是 Cassandra 和 spark 的新手,我不知道该怎么办。无法在 {127.0.0.1}:9042 打开与 Cassandra 的本机连接我不知道如何删除此错误
  • 我正在运行这个命令 ./spark-shell --packages com.datastax.spark:spark-cassandra-connector_2.11:2.0.0-M3 --conf spark.cassandra.connection.host =127.0.0.1
【解决方案3】:

检查这些东西,可能会解决您的问题, 1.在shell中输入以下命令,在系统中找到cqlsh.py文件

 whereis cqlsh 
  1. 编辑 cqlsh.py 并将默认端口更改为您的 IP

  2. 使用以下 SparkConfig() 启动 spark 上下文

      val conf = new SparkConf().set("spark.cassandra.connection.host", "<YOUR IP>")
      val sc = new SparkContext(conf)
    

【讨论】:

    猜你喜欢
    • 2015-05-19
    • 2023-03-10
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    • 2015-09-04
    • 2017-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多