在 Cassandra 3.0 多节点集群中回收磁盘 space 的最佳实践
Best Practice on reclaiming disk space in Cassandra 3.0 multi-node cluster
在我的 5 节点集群上,我发出了各种 drop table <keyspace_name>.<table_name>
命令。在该操作之后,他们在各个节点上的数据仍然存在于 /var/lib/cassandra/data//
下
我想知道是否有关于释放的最佳实践space。
或者,各个节点上的 rm -rf /var/lib/cassandra/data/<keyspace_name>/*
命令是否足够?
would the rm -rf /var/lib/cassandra/data/<keyspace_name>/*
command on respective nodes suffice?
是的,这样就可以了。
首先,运行 此命令显示文件目录的散列包含 keyspacse_1.table_1 在 /var/lib/cassandra/data 中的数据:
SELECT * from system_schema.tables WHERE keyspace_name='keyspace_1' AND table_name='table_1';
查看此 table 的响应查询 ID。
然后检查 /data 中没有此 id 的文件并删除它们。
例如:cql 中的 id feteched 是:d9b8ab90-1240-11e8-8680-f9685b9421a5
或其他 id。
但是 /data include dir 类似于下面这个 id 不是 cql 的响应! :
table_1-c9b8ab90-1240-11e8-8680-f9685b9321e5/
在此阶段,您可以删除此文件以释放空间 space
当您删除 table 时,cassandra 会自动创建一个快照(以防万一)。如果您确定不再需要这些数据,则应该 运行
nodetool clearsnapshot
在受影响的节点上。请注意,这种形式的命令将删除所有快照。在 cassandra 3 中指定特定快照或键空间的完整命令是:
nodetool <options> clearsnapshot -t <snapshot> -- <keyspace> ...
在我的 5 节点集群上,我发出了各种 drop table <keyspace_name>.<table_name>
命令。在该操作之后,他们在各个节点上的数据仍然存在于 /var/lib/cassandra/data//
我想知道是否有关于释放的最佳实践space。
或者,各个节点上的 rm -rf /var/lib/cassandra/data/<keyspace_name>/*
命令是否足够?
would the
rm -rf /var/lib/cassandra/data/<keyspace_name>/*
command on respective nodes suffice?
是的,这样就可以了。
首先,运行 此命令显示文件目录的散列包含 keyspacse_1.table_1 在 /var/lib/cassandra/data 中的数据:
SELECT * from system_schema.tables WHERE keyspace_name='keyspace_1' AND table_name='table_1';
查看此 table 的响应查询 ID。
然后检查 /data 中没有此 id 的文件并删除它们。
例如:cql 中的 id feteched 是:d9b8ab90-1240-11e8-8680-f9685b9421a5
或其他 id。
但是 /data include dir 类似于下面这个 id 不是 cql 的响应! :
table_1-c9b8ab90-1240-11e8-8680-f9685b9321e5/
在此阶段,您可以删除此文件以释放空间 space
当您删除 table 时,cassandra 会自动创建一个快照(以防万一)。如果您确定不再需要这些数据,则应该 运行
nodetool clearsnapshot
在受影响的节点上。请注意,这种形式的命令将删除所有快照。在 cassandra 3 中指定特定快照或键空间的完整命令是:
nodetool <options> clearsnapshot -t <snapshot> -- <keyspace> ...