You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行nodetool info命令触发NullPointerException且Gossip未激活的解决求助

问题排查与解决方案

问题现象

执行nodetool info命令时返回如下结果,伴随java.lang.NullPointerException异常,且核心服务均未激活:

cassandra-cassandra-vm0 conf$ nodetool info
ID                     : e5c47b97-b07f-4a20-a135-6187adeaa833
Gossip active          : false
Thrift active          : false
Native Transport active: false
Load                   : 1.04 GiB
-- StackTrace --
java.lang.NullPointerException
at org.apache.cassandra.metrics.TableMetrics$1.getValue(TableMetrics.java:181)

排查与解决步骤

  • 确认Cassandra进程状态
    先检查进程是否正常运行:

    ps aux | grep cassandra
    

    若进程未启动,直接重启Cassandra;若进程存在但服务未激活,继续后续操作。

  • 修复表元数据异常(NPE根源)
    堆栈指向TableMetrics类,说明表统计指标加载时触发空指针,大概率是系统表元数据损坏:

    1. 停止Cassandra服务:
      sudo systemctl stop cassandra
      
    2. 备份系统表数据,防止数据丢失:
      cp -r /var/lib/cassandra/data/system /var/lib/cassandra/data/system_backup
      
    3. 删除损坏的系统表文件(重点清理system.size_estimates目录下的*.db文件),重启后系统会自动重建系统表:
      rm -rf /var/lib/cassandra/data/system/size_estimates/*
      sudo systemctl start cassandra
      
  • 验证核心服务状态
    重启后等待1-2分钟,再次执行nodetool info,检查Gossip active等状态是否变为true:

    nodetool info
    

    若Gossip仍未激活,检查cassandra.yaml配置:

    • 确认listen_address/broadcast_address配置正确,节点间网络可达
    • 检查seed_provider配置的种子节点是否正常运行
    • 关闭防火墙或开放Cassandra默认端口(7000用于Gossip,9042用于Native Transport)
  • 查看日志定位深层问题
    若以上步骤无效,搜索Cassandra日志(默认路径/var/log/cassandra/system.log)中的错误信息:

    grep -i "error" /var/log/cassandra/system.log
    

内容的提问来源于stack exchange,提问作者Balu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 15:02:14