我已经配置了4个实例的cannsadra集群(cassandra-1.1)。 我有2个电脑,我在每台电脑上运行2个实例。 电脑是相同的,有20G内存。 但是,当我运行nodetool时,它会显示不同的Owns%。问题是为什么?
./bin/nodetool -p 8001 ring
Note: Ownership information does not include topology, please specify a keyspace.
Address DC Rack Status State Load Owns Token 51042355038140769519506191114765231718
172.16.40.32 datacenter1 rack1 Up Normal 11.12 KB 70.00% 0
127.0.0.2 datacenter1 rack1 Up Normal 11.31 KB 10.00% 17014118346046923173168730371588410572
172.16.40.202 datacenter1 rack1 Up Normal 6.7 KB 10.00% 34028236692093846346337460743176821145
127.0.0.3 datacenter1 rack1 Up Normal 11.18 KB 10.00% 51042355038140769519506191114765231718
我的自由-m看起来在两台机器上:
total used free shared buffers cached
Mem: 20119 9621 10497 0 281 7925
-/+ buffers/cache: 1414 18704
Swap: 2894 2 2892
答案 0 :(得分:3)
百分比由跨节点的令牌分布确定。 Cassandra的令牌范围从0到2 ^ 127(170141183460469231731687303715884105728)。你的戒指的代币在0到2 ^ 127之间不均匀分布,这就是为什么你有一个拥有70%所有权的节点。您可以使用nodetool move
来平衡您的铃声。
Cassandra wiki上有一个简单的python脚本,可生成均衡的令牌。我还写了一个简单的工具来帮助visualize your ring topology。