在我的项目中,我使用cassandra 2.0,并拥有3个数据库服务器。
Murmur3Partitioner
对数据进行分区。我的问题是:如何为每个cassandra实例计算initial_token
?
感谢您的帮助:)
答案 0 :(得分:4)
如果您使用的是最新版本的Cassandra(2.x),则可以配置节点相对于群集中其他节点应该保留的令牌数。无需再通过initial_token
指定令牌范围边界。相反,您通过num_tokens
参数为节点提供“权重”。由于较小节点的容量大约是大节点的1/10,因此请相应调整该节点的权重。默认权重是256.因此,您可以从较小节点的权重25开始,然后尝试查看它是否正常工作。
答案 1 :(得分:0)
Murmur3Partitioner:根据 MurmurHash 哈希值在群集中统一分布数据。
Murmur3Partitioner使用 -263到+ 263-1的最大可能哈希值范围。以下是计算令牌的公式:
python -c' print [str((2 64 / number_of_tokens)* i) - 2 63)for i in range(number_of_tokens)]'
例如,为10个节点生成令牌:
python -c' print [str(((2 64/10)* i) - 2 63)for i in range(10)]'