2

我已经配置了 4 个实例的 cannsadra 集群 (cassandra-1.1)。我有 2 台电脑,我在每台电脑上运行 2 个实例。电脑是相同的,并具有20G ram。但是,当我运行 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 

我的 free -m 在两台机器上看起来:

        total       used       free     shared    buffers     cached
Mem:         20119       9621      10497          0        281       7925
-/+ buffers/cache:       1414      18704
Swap:         2894          2       2892
4

1 回答 1

3

百分比由节点间的代币分布决定。Cassandra 的令牌范围从 0 到 2^127 (170141183460469231731687303715884105728)。您的环的代币在 0 到 2^127 之间分布不均,这就是为什么您拥有一个拥有 70% 所有权的节点的原因。你可以用它nodetool move来让你的戒指保持平衡。

Cassandra wiki上有一个简单的 python 脚本,可以生成均衡的令牌。我还编写了一个简单的工具来帮助可视化您的环形拓扑

于 2012-07-23T16:45:57.410 回答