2017-04-16 36 views
3

我有兩個Cassandra節點,我正在開發一個Java-Spark應用程序。在Spark中訪問Cassandra節點

我有一個Spark Master和兩個奴隸。以下代碼用於連接到單個Cassandra節點:

sparkConf.set("spark.cassandra.connection.host", "server"); 

如何添加其他Cassandra節點?

回答

2

documentation是相當清楚的:

new SparkConf(true) 
    .set("spark.cassandra.connection.host", "192.168.123.10") 

僅低於:

「(127.0.0.1,127.0.0.2" )多臺主機可以使用逗號分隔的列表傳遞」。這些僅是初始接觸點,本地DC中的所有節點都將在連接時使用。

換句話說,您只需連接到Spark主機,該主機瞭解羣集中的其他機器通過資源管理器。當您想要連接到多個羣集時,逗號分隔列表很有用。

2

如果您使用scala,您可以嘗試這樣做。雖然我找不到任何關於Python的東西。

val connectorToClusterOne = CassandraConnector(sc.getConf.set("spark.cassandra.connection.host", "127.0.0.1")) 
val connectorToClusterTwo = CassandraConnector(sc.getConf.set("spark.cassandra.connection.host", "127.0.0.2")) 


implicit val c = connectorToClusterOne 
sc.cassandraTable("ks","tab") 

implicit val c = connectorToClusterTwo 
rddFromClusterOne.saveToCassandra("ks","tab") 

祝您好運!