Cassandra节点拒绝加入群集“ Compact Executor”错误

问题描述

我们有一个运行以下版本的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,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**

八卦未运行,我尝试禁用并重新启用,没有乐趣。

我也尝试过修复和重建,两者都完全没有错误

我们将不胜感激。

谢谢。

解决方法

您所描述的症状向我表明该节点发生了某种形式的硬件故障,并且data/磁盘可能无法访问。

在这种情况下,cassandra.yaml中的磁盘故障策略开始执行:

disk_failure_policy: stop

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

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