所有三台机器的数据量均为1.6T,但是这种不平衡不允许在一个节点上完成压缩(10.8.5.61):
[root@is05 ~]# df -h /export/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg01-data
1.6T 1.6T 28G 99% /export
[root@10.8.5.61 ~]# nodetool status
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
UN 10.8.5.61 1.56 TB 256 34.8% d8ac5a47-6cd4-47b6-96c5-1d87ccaca71d rack1
UN 10.8.7.49 1.18 TB 256 30.1% 5c860455-1b27-4a0b-a5ed-357c2fa3cb75 rack1
UN 10.8.5.179 1.49 TB 256 35.1% 9a080b1a-09df-42b7-b627-d5221408289f rack1
是否可以将数据移动到第二个节点以留出更多的呼吸空间?我该怎么做才能回收其中数据最多的节点上的空间?
答案 0 :(得分:2)
节点之间的数据分配取决于您的数据模型,并且看起来非常不对称(使用256个令牌分配应该是很好的)-您可以检查第一台和第三台计算机上是否存在大分区。
恕我直言,您有几种可能性(当然,取决于Cassandra的版本):
CompactionManager
bean,forceUserDefinedCompaction
操作)来强制压缩单个SSTable(从小表开始)-例如,请参见此great article,以了解如何通过jmxterm运行它。您可以使用其他工具(例如JConsole)执行此操作