我有一个3节点集群,复制因子为2,但数据在所有3个节点上都被复制。这就是我创建键空间的方式:
创建KEYSPACE,如果没有复制演示复制= {'class':'SimpleStrategy','replication_factor':2};
这里缺少什么?
答案 0 :(得分:1)
Cassandra根据行的主键分发数据。任何表通常分布在所有机器上,当您插入一行时,它仅插入“两台机器”(这两台机器不是随机的,可以用nodetool
计算)
如果您想了解有关如何通过主键分发数据的更多信息,请查看分区程序。 Cassandra Partitioners
答案 1 :(得分:0)
分布 3 节点上的数据,每个节点包含 2 个数据:它自己的数据与其分配的数据有关分区和属于其邻居节点的数据。
答案 2 :(得分:0)
尝试在该键空间中的表中的任何分区键上执行getendpoints
。您将获得保存该分区的节点列表。在这种情况下,您应该只输出2个节点。
$ nodetool getendpoints <keyspace> <table> key