【问题标题】:Cassandra Node refuses to Join Cluster "Compaction Executor" errorCassandra 节点拒绝加入集群“Compaction Executor”错误
【发布时间】:2020-09-17 18:37:58
【问题描述】:

我们有一个运行以下版本的 3 节点 Cassandra 集群

[cqlsh 5.0.1 | Cassandra 3.11.6 | CQL spec 3.4.4 | Native protocol v4]

Node1 今天早上停止与集群的其余部分通信,日志显示如下:

ERROR [CompactionExecutor:242] 2020-09-15 19:24:48,753 CassandraDaemon.java:235 - Exception in thread Thread[CompactionExecutor:242,1,main]
ERROR [MutationStage-2] 2020-09-15 19:24:54,749 AbstractLocalAwareExecutorService.java:169 - Uncaught exception on thread Thread[MutationStage-2,5,main]
ERROR [MutationStage-2] 2020-09-15 19:24:54,771 StorageService.java:466 - Stopping gossiper
ERROR [MutationStage-2] 2020-09-15 19:24:56,791 StorageService.java:476 - Stopping native transport
ERROR [CompactionExecutor:242] 2020-09-15 19:24:58,541 LogTransaction.java:277 - Transaction log [md_txn_compaction_c2dbca00-f780-11ea-95eb-cf88b1cae05a.log in /mnt/cass-a/data/system/local-7ad54392bcdd35a684174e047860b377] indicates txn was not completed, trying to abort it now
ERROR [CompactionExecutor:242] 2020-09-15 19:24:58,545 LogTransaction.java:280 - Failed to abort transaction log [md_txn_compaction_c2dbca00-f780-11ea-95eb-cf88b1cae05a.log in /mnt/cass-a/data/system/local-7ad54392bcdd35a684174e047860b377]
ERROR [CompactionExecutor:242] 2020-09-15 19:24:58,566 LogTransaction.java:225 - Unable to delete /mnt/cass-a/data/system/local-7ad54392bcdd35a684174e047860b377/md_txn_compaction_c2dbca00-f780-11ea-95eb-cf88b1cae05a.log as it does not exist, see debug log file for stack trace

Cassandra 在“损坏的节点”上正常启动,但拒绝重新加入集群。

当我执行 nodetool 状态时,我得到这个:

**Error: The node does not have system_traces yet, probably still bootstrapping**

Gossip 没有运行,我已经尝试禁用和重新启用,没有乐趣。

我也尝试过修复和重建,都没有任何错误。

我们将不胜感激。

谢谢。

【问题讨论】:

    标签: java cassandra nodetool


    【解决方案1】:

    您描述的症状表明该节点出现某种形式的硬件故障,data/ 磁盘可能无法访问。

    在这种情况下,cassandra.yaml 中的磁盘故障策略启动:

    disk_failure_policy: stop
    

    这可以解释为什么 gossip 不可用(在默认端口 7000 上)并且节点也不接受任何客户端连接(在默认 CQL 端口 9042 上)。

    如果即将发生硬件故障,则磁盘/卷很可能以只读方式挂载。磁盘也有可能已满。检查操作系统日志以获取线索,您可能需要将问题上报给您的系统管理员团队。干杯!

    【讨论】:

    • 嘿埃里克,你是对的,似乎磁盘策略失败了。我试过在磁盘上手动创建一个文件,但不能。我可以确认 VM 没有遭受任何“硬件”故障,并且运行 vm 的主机上也运行着许多其他 vm,所有这些似乎都很好,以及 vm 连接的共享存储至。我该如何解决这个问题,我已经重新启动了 vm 并且 cassandra 启动正常,但是 gossip 和客户端连接没有发生。
    • 正如我所说,检查 (a) 磁盘/卷未安装为只读,以及 (b) 磁盘未满。这些中的任何一个都会阻止 gossip 工作,并会调用磁盘故障策略。干杯!
    • 原来是那些讨厌的 inode #screamingface 做了一个 nodetool clearsnapshot 并清除了所有的 inode,重新启动了 cassandra,世界变得更美好了。 :) 感谢您的帮助埃里克。
    • 很高兴听到您发现了问题。干杯!
    猜你喜欢
    • 2019-07-16
    • 2012-11-29
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-02
    相关资源
    最近更新 更多