【发布时间】:2018-12-13 07:33:16
【问题描述】:
我目前正在尝试使用 Datastax 驱动程序 (datastax:spark-cassandra-connector:2.3.0-s_2.11) 使用 Apache Spark (2.3.0,shell) 连接到 Apache Cassandra 数据库。
我在命令行中使用了 --conf 选项,当我尝试运行数据库查询时,它报错说它无法打开到 127.0.0.1:9042 的本机连接。
第 1 步(我在 spark 所在的文件夹中运行此命令。)
# ./bin/spark-shell --conf spark.cassandra-connection.host=localhost spark.cassandra-connection.native.port=32771 --packages datastax:spark-cassandra-connector:2.3.0-s_2.11
第 2 步(我在 Spark 的 scala> shell 中运行这些步骤)
- 斯卡拉>
import com.datastax.spark.connector._ - 斯卡拉>
import org.apache.spark.sql.cassandra._ - 斯卡拉>
val rdd = sc.cassandraTable("market", "markethistory") - 斯卡拉>
println(rdd.first)
第 3 步(出错)
java.io.IOException: Failed to open native connection to Cassandra at {127.0.0.1}:9042+stacktraceCaused by: com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: localhost/127.0.0.1:9042 (com.datastax.driver.core.exceptions.TransportException: [localhost/127.0.0.1:9042] Cannot connect))+stacktrace
补充说明:
请注意它在错误中如何表示端口 9042。
我也尝试在 --conf 选项中更改主机,但这不会改变错误的输出。
我的主要假设是我需要在 scala 中指定主机和端口,但我不确定如何,而且 datastax 文档都是关于他们特殊的 spark 发行版的,它似乎不匹配。
我尝试过的事情:
spark.cassandra-connection.port=32771spark.cassandra.connection.port=32771spark.cassandra.connection.host=localhost
提前致谢。
【问题讨论】:
-
The property is
spark.cassandra.connection.host不是spark.cassandra-connection.host -
它仍然会抛出与
spark.cassandra.connection.host=localhost和spark.connection.connection.port=32771相同的错误 -
spark.cassandra.connection.port不是spark.connection.connection.port -
是的,我在控制台中输入了,我在这里输入错误。道歉。