为什么nodetool cleanup无法删除cassandra节点中的额外数据

时间:2017-02-18 09:38:37

标签: cassandra data-cleaning nodetool

我们向群集添加了一个新节点,并在新节点中多次应用nodetool repair。我们确定在新节点中存在额外的数据,因此运行nodetool cleanup但在第二次清理完成后,cassandra日志跟随警告和清理不会删除任何数据。为什么呢?

WARN  09:27:12 Small commitlog volume detected at /var/lib/cassandra/commitlog; setting commitlog_tota│Mode: NORMAL  
l_space_in_mb to 3854. You can override this in cassandra.yaml                                       │Not sending any streams.

WARN  09:27:12 Small cdc volume detected at /var/lib/cassandra/cdc_raw; setting cdc_total_space_in_mb │Read Repair Statistics:                                                                              
to 1927. You can override this in cassandra.yaml

1 个答案:

答案 0 :(得分:0)

设置Cassandra并尝试从以前拍摄的快照加载SSTables时,我看到了相同的错误。事实证明,在我先前对JVM进行的实验(特别是在具有32G内存的计算机上设置JAVA_OPTS="-Xms29G -Xmx29G")中,在java_pid*.hprof中创建了大量的/文件,这阻止了Cassandra正常工作;我可以通过删除这些文件来解决问题。

很遗憾,如果没有更多详细信息,我无法直接回答您的问题,但我建议您采取以下措施:

  1. 运行 cd /sudo du -h | sort -h并检查文件和目录,以查看是否有可疑的大日志或内存分配文件已转储到此处,可以删除。
  2. 如果在安装时尚未Cassandra will try dumping runtime files in /var显式设置Cassandra目录,则该目录可能已满或分配不足。检查文件中是否有无声的大量日志(例如Nifi alerts)并删除不必要的日志。如果这不起作用,则可以在其他位置或(不推荐)increase your /var directory size重新安装Cassandra。