我们正在运行多个运行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在停止之前刷新所有缓冲区并停止写入,以确保没有遗留的损坏文件?
答案 0 :(得分:4)
您可以尝试禁用提示切换,或尝试在排除后截断提示:
nodetool truncatehints
如果您关心一致性,请在此过程后运行修复。
警告:如果您正在使用任何一致性设置或RF = 1,这可能会导致数据丢失。