В настоящее время я развернул узлы для Spark и Cassandra в облаке Google. В то время как DataStax Spark Cassandra Connector в значительной степени работает нормально локально. Выдает ошибки при подключении при попытке сделать то же самое в облаке Google. Я пробовал различные перестановки и комбинации для запуска простого кода извлечения значений из cassandra в Spark, но все тщетно. Версия Spark, развернутая в gcloud, - 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, но это не помогло.
Любые предложения будут ценны.