spark cassandra连接器中的多个接触点

时间:2015-08-08 03:55:00

标签: cassandra apache-spark

我已经设置了spark和cassandra集群,并在我的spark工作中使用了cassandra接口。现在运行我的作业我使用spark.cassandra.connection.host并在一个数据中心传递种子节点的一个ip地址。我正在浏览连接器站点及其状态,如

"The initial contact node given in spark.cassandra.connection.host can be any node of the cluster. The driver will fetch the cluster topology from the contact node and will always try to connect to the closest node in the same data center. If possible, connections are established to the same node the task is running on." 

我的查询是联系节点关闭时会发生什么。 Spark无法获得集群拓扑,因此无法工作。 我还使用了nodess连接器用于cassandra,我们提供了一系列接触点。是否有可能在spark cassandra连接器

2 个答案:

答案 0 :(得分:1)

嗯,根据connector documentation

  

可以使用逗号分隔列表传入多个主机   ( “127.0.0.1,127.0.0.2”)。这些只是初始接触点,   连接时将使用本地DC中的所有节点。

所以请随意添加您感觉舒适的接触点。只要至少有一个可以从我们的客户那里连接,你就可以去了。

答案 1 :(得分:0)

不,你不能将一系列主机传递给&#;; spark.cassandra.connection.host' (但是,如果你愿意的话,你可以编写一个服务来检查所有主机的连接,然后有条件地使用一个作为你的SparkConfig)。

但是,从documentation开始,我们可以假设spark-cassandra将选择任何WORKING节点(意味着只要您在主机上有一个节点,它就可以工作)。

  

spark.cassandra.connection.host中给出的初始联系节点可以是集群的任何节点。

此外,这听起来如果节点关闭,请求将在本地节点(不是不同的主机)上重试

  

如果本地数据中心的某些节点出现故障且读取或写入操作失败,则不会在不同数据中心的节点上重试该操作。

希望这有帮助。