我们可以在 Cassandra 中同时拥有多个协调器节点吗?

Can we have many coordinator nodes at one time in Cassandra?

希望这是正确的提问地点!

我正在尝试使用 spark、cassandra 和另外一个外部工具设置一个集群。因此,外部工具在 spark(pipe 命令)的帮助下在集群中并行执行,并且该工具能够通过简单的 sql Insert 命令直接存储到 cassandra 数据库(见下图)。这意味着在每个节点中,结果都从节点的外部工具直接发送到节点的 cassandra。

我的野guess/doubt/question是这些节点中的每一个都会充当协调节点,同时根据primary/partition键负责destributing/sending到其他节点的数据时间。那正确吗?如果不是...会发生什么?

external_tool_to_cassandra

每个 Cassandra 节点都可以充当协调器。如果您的工具被正确配置为使用 TokenAwarePolicy,您的工具应该为每个请求选择一个副本作为协调器,避免一些额外的网络跃点。如果批量插入,请尝试将具有相同分区键的数据一起批量处理。

请注意,在您的图中,直接从 Spark 写入 Cassandra 会获得更好的性能。您可以为此使用 spark-cassandra-connector。