在我的5节点集群上,我发出了各种drop table <keyspace_name>.<table_name>
命令。在该操作之后,他们在各个节点上的数据仍然存在于/ var / lib / cassandra / data //
我想知道是否有任何关于释放空间的最佳做法。
或者,各个节点上的rm -rf /var/lib/cassandra/data/<keyspace_name>/*
命令是否足够?
答案 0 :(得分:3)
各个节点上的
rm -rf /var/lib/cassandra/data/<keyspace_name>/*
命令是否足够?
是的,那就可以了。
更简单的方法是在每个节点上运行清理。这将删除该节点不负责的任何数据:
nodetool cleanup
答案 1 :(得分:1)
首先,运行此命令以显示文件目录的哈希值包含/ var / lib / cassandra / data中的keyspacse_1.table_1数据:
SELECT * from system_schema.tables WHERE keyspace_name='keyspace_1' AND table_name='table_1';
查看此表的响应查询的ID。
然后检查/ data中没有此id的文件并将其删除。
for examlpe:cql中的id是:d9b8ab90-1240-11e8-8680-f9685b9421a5
或其他ID。
但/ data包含dir类似下面这个id不响应cql! :
TABLE_1-c9b8ab90-1240-11e8-8680-f9685b9321e5 /
在此阶段,您可以删除此文件以释放空间
答案 2 :(得分:1)
当您删除表时,cassandra会自动创建快照(以防万一)。如果您确定不再需要数据,则应运行
nodetool clearsnapshot
受影响的节点上的。请注意,此命令形式将删除所有快照。在cassandra 3中指定特定快照或键空间的完整命令是:
nodetool <options> clearsnapshot -t <snapshot> -- <keyspace> ...