spark cassandra接头中的多个触点

spark cassandra接头中的多个触点,cassandra,apache-spark,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

我已经安装了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将无法获取群集拓扑,因此无法工作。
我还为cassandra使用了nodejs连接器,在那里我们提供了一系列的接触点。在spark cassandra connector中是否可能?否,您不能将主机数组传递到“spark.cassandra.connection.host”中(不过,如果您愿意,您可以编写一个服务来检查所有主机的连接,然后有条件地将其中一个用作您的SparkConfig)

但是,从中,听起来我们可以假设spark cassandra将选择任何工作节点(这意味着只要主机上有一个节点,它就可以工作)

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

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

如果本地数据中心中的某些节点关闭,并且读或写操作失败,则不会在其他数据中心的节点上重试该操作

希望这有帮助。

根据

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


因此,请随意添加您觉得舒适的接触点。只要至少有一个可以从我们的客户处连接,您就可以开始了。

是的,但我的问题仍然没有答案。所以,如果spark连接的节点关闭了,并且它还没有发现拓扑,我认为它将无法连接并从我所了解的数据中检索数据。。。spark并没有连接到特定的节点,而是连接到主机,然后选择一个节点。如果主机关闭,则应用程序将失败。如果主机上的所有节点都已关闭,则应用程序将失败。因此,是的,如果主机关闭,那么它将无法检索数据。主机和节点之间的区别是什么?根据文档“spark.cassandra.connection.host中给出的初始联系人节点可以是任何节点”哦,之前没有。可能是spark cassandra connector的新手。@Nipun cassandra为你工作怎么样?我现在正在研究它,主要是因为我对它的复制功能感兴趣(跨数据中心,主要用于低延迟访问)。到目前为止没有抱怨。由于我们有大量的分析数据,因此我们最感兴趣的是高写。cassandra的唯一一点是,它不是一个灵活查询的数据库。它主要是一个用于analytics@Nipun很好,如果你能验证这个答案是否有效,请在这里留下评论。其他人可能会觉得它很有用。当然,让我来验证一下