cassandra - 提示文件夹中存在 Cassandra 旧提示文件
问题描述
在 cassandra 退役期间,我注意到节点尝试发送提示,这需要很长时间并且永远不会完成。我检查了提示文件夹,发现了超过 9 个月的提示。我不确定为什么文件夹中仍然存在这些旧提示,所以我决定删除它们。删除它们后,我注意到 system.log 中有以下条目
INFO [HintsDispatcher:1070] 2021-07-08 11:32:01,056 HintsDispatchExecutor.java:141 - Transferring all hints to /10.199.190.233: 7935f1b5-4725-4dc2-ad6d-b883d53d907d
ERROR [HintsDispatcher:1070] 2021-07-08 11:32:01,061 CassandraDaemon.java:207 - Exception in thread Thread[HintsDispatcher:1070,1,RMI Runtime]
java.lang.RuntimeException: java.nio.file.NoSuchFileException: /data/cassandra/data/hints/ce6bb0e3-849f-487d-9274-38b8536b89cf-1603947885707-1.hints
Cassandra 在哪里保存提示的元数据,因为 system.hints 文件夹没有任何条目?
Cassandra 版本是 3.0.12
解决方案
每个 Cassandra 节点的内存中都有一个提示目录,用于跟踪。
如果您手动删除节点上的提示目录的内容,提示目录中的条目会变得陈旧,并且您会遇到NoSuchFileException
您发布的内容。
删除提示的正确方法是使用nodetool truncatehints
命令。干杯!
推荐阅读
- r - 组为空时 data.table 中的子集
- sql - 在 CASE 表达式中返回一个值而不是文本
- php - 如何使用从 mysql 数据库检索到的值填充下拉列表?
- python - 调试长时间运行的 python 脚本崩溃?
- oauth-2.0 - 刷新令牌 OAuth2 实现
- c# - 如何在不使用 FormsCollection 的情况下拥有两个不同的 ViewModel 并将数据从两者提交到控制器?
- javascript - 承诺没有得到解决
- azure-devops - 带有 SSH 服务连接的 Azure Devops 多配置不起作用
- ruby-on-rails - 在 Linux 上安装 ruby-oci8 时无法编译 OCI 错误
- powershell - 在 powershell 中跟踪 Maven 命令状态