在Cassandra 3.0多节点集群中回收磁盘空间的最佳实践
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Cassandra 3.0多节点集群中回收磁盘空间的最佳实践相关的知识,希望对你有一定的参考价值。
在我的5节点集群上,我发布了各种drop table <keyspace_name>.<table_name>
命令。在该操作之后,他们在各个节点上的数据仍然存在于/ var / lib / cassandra / data //下
我想知道是否有任何关于释放空间的最佳做法。或者,各个节点上的rm -rf /var/lib/cassandra/data/<keyspace_name>/*
命令是否足够?
首先,运行此命令以显示文件目录的哈希包含/ 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 /
在此阶段,您可以删除此文件以释放空间
各个节点上的
rm -rf /var/lib/cassandra/data/<keyspace_name>/*
命令是否足够?
是的,那就行了。
更简单的方法是在每个节点上运行清理。这将删除该节点不负责的任何数据:
nodetool cleanup
当您删除表时,cassandra会自动创建快照(以防万一)。如果您确定不再需要数据,则应该运行
nodetool clearsnapshot
在受影响的节点上。请注意,此命令形式将删除所有快照。在cassandra 3中指定特定快照或键空间的完整命令是:
nodetool <options> clearsnapshot -t <snapshot> -- <keyspace> ...
以上是关于在Cassandra 3.0多节点集群中回收磁盘空间的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章