为什么我的Cassandra提示文件不断被破坏

时间:2017-08-07 11:16:19

标签: java cassandra kubernetes

我们正在运行多个运行Cassandra的Kubernetes集群。 执行Cassandra pod的滚动重启时,我们通常的步骤是登录每个并提交nodetool drain,然后触发该pod的重新创建。但是当pod重新启动时,我们会遇到像

这样的错误
ERROR [HintsDispatcher:2] 2017-08-07 11:09:32,489 HintsDispatchExecutor.java:243 - Failed to dispatch hints file 5fdd139d-4465-4825-85ef-f380bddcb67d-1502100535128-1.hints: file is corrupted ({})

这些损坏的文件会阻止Cassandra启动。有没有办法告诉Cassandra在停止之前刷新所有缓冲区并停止写入,以确保没有遗留的损坏文件?

1 个答案:

答案 0 :(得分:4)

您可以尝试禁用提示切换,或尝试在排除后截断提示:

nodetool truncatehints

如果您关心一致性,请在此过程后运行修复。

警告:如果您正在使用任何一致性设置或RF = 1,这可能会导致数据丢失。