在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多节点集群中回收磁盘空间的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章

多节点cassandra集群真的很慢

Cassandra集群管理-下线正常节点

多节点 cassandra 集群:连接错误:('无法连接到任何服务器')

Cassandra 磁盘空间开销

Cassandra 节点上的高磁盘 I/O

多节点 cassandra 集群 - load_balancing_policy