В настоящее время я пытаюсь подключиться к базе данных Apache Cassandra, используя Apache Spark (2.3.0,shell)
, используя драйвер Datastax (datastax:spark-cassandra-connector:2.3.0-s_2.11)
.
Я использую опцию --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 (я выполняю эти шаги в оболочке Scala> Spark)
- Скала>
import com.datastax.spark.connector._
- Скала>
import org.apache.spark.sql.cassandra._
- scala>
val rdd = sc.cassandraTable("market", "markethistory")
- scala>
println(rdd.first)
Шаг 3 (ошибка)
java.io.IOException: Failed to open native connection to Cassandra at {127.0.0.1}:9042
+ трассировка стека
Caused 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))
+ трассировка стека
Дополнительные примечания:
Обратите внимание, что в сообщении указывается порт 9042.
Я также попытался изменить хост в параметре --conf, и это не меняет вывод ошибки.
Мое основное предположение заключается в том, что мне нужно указать хост и порт в scala, но я не уверен, как, а документация по datastax полностью посвящена их специальному искровому дистрибутиву, и, похоже, он не совпадает.
Вещи, которые я пробовал:
spark.cassandra-connection.port=32771
spark.cassandra.connection.port=32771
spark.cassandra.connection.host=localhost
Заранее спасибо.