2017-01-26 10 views
0

sparlyrを使用してローカルクラスタ上のcassandraに接続する方法を理解しようとしています。大変感謝します。私はR/Rstudioを使ってこの接続を作成しようとしている唯一の人です(NetBeansとMavenでJavaを使用する人は誰もがいません)。RStudioのCassandra DBにSparkを接続できません

私が使用しているスタックは、次のとおりです。(VMで) のUbuntu 16.04 sparklyr:0.5.3 スパーク:2.0.0 スカラ:2.11 カサンドラ:3.7

関連config.ymlファイルの設定:

# cassandra settings 
spark.cassandra.connection.host: <cluster_address> 
spark.cassandra.auth.username: <user_name> 
spark.cassandra.auth.password: <password> 

sparklyr.defaultPackages: 
- com.databricks:spark-csv_2.11:1.3.0 
- com.datastax.spark:spark-cassandra-connector_2.11:2.0.0-M1 
- com.datastax.cassandra:cassandra-driver-core:3.0.2 

Javaおよびスパークのローカルインストール用に設定されたSys.setnev設定で、ymlファイルを使用するように設定されています。で開始スパーク接続:で開始

sc <- spark_connect(master = "spark://<cluster_address>", config = spark_config(file = "config.yml")) 

スパークセッション:

sparkSession <- sparklyr::invoke_static(sc, org.apache.spark.sql.SparkSession", "builder") %>% 
    sparklyr::invoke("config", "spark.cassandra.connection.host", "<cluster_address>") %>% 
    sparklyr::invoke("getOrCreate") 

それはすべての中のtable_1(ここまでの罰金だ、(SC接続とsparkSession)が、今カサンドラテーブルにアクセスしようとします)keyspace_1で、私の存在を知っている:

cass_df <- invoke(sparkSession, "read") %>% 
invoke("format", "org.apache.spark.sql.cassandra") %>% 
invoke("option", "keyspace", "keyspace_1") %>% 
invoke("option", "table", "table_1") %>% 
invoke("load") 

は、次のエラーをスローします。

Error: java.lang.IllegalArgumentException: Cannot build a cluster without contact points 
at com.datastax.driver.core.Cluster.checkNotEmpty(Cluster.java:123) 
at com.datastax.driver.core.Cluster.(Cluster.java:116) 
at com.datastax.driver.core.Cluster.buildFrom(Cluster.java:182) 
at com.datastax.driver.core.Cluster$Builder.build(Cluster.java:1274) 
at com.datastax.spark.connector.cql.DefaultConnectionFactory$.createCluster(CassandraConnectionFactory.scala:92) . . . 
+0

'spark.cassandra.connection.host'が見つかりませんか? – user7337271

+0

はい!それは私が必要としたヒントだった。私のsparkSessionを起動するとき、私はクラスタアドレス(cassandraがあった場所)だけでなく、SPARK (ポート番号付き)を使用していました。できます!ありがとう@ user7337271。 – renegademonkey

答えて

0

最後に役立つヒントのおかげで解決しました。私はSparkSessionを初期化するためにSPARK(ポート番号付き)を使用していましたが、クラスタアドレス(cassandraがあった場所)ではありませんでした。できます!ありがとう@ user7337271。

関連する問題