Ubuntu系统中Cassandra的gc.log文件位置及启动异常解决
Cassandra启动失败与连接问题解决
已执行命令及结果
- 执行
whereis cassandra:cassandra: /usr/sbin/cassandra /etc/cassandra /usr/share/cassandra - 执行
which cassandra:/usr/sbin/cassandra - 执行
cqlsh报错:Connection error: ('Unable to connect to any servers', {'127.0.0.1:9042': ConnectionRefusedError(111, "Tried connecting to [('127.0.0.1', 9042)]. Last error: Connection refused")}) - 执行
cassandra启动报错:deprecated in version 9.0 and will likely be removed in a future release. [0.001s][error][logging] Error opening log file '/var/log/cassandra/gc.log': No such file or directory [0.001s][error][logging] Initialization of output 'file=/var/log/cassandra/gc.log:time,uptime,pid,tid,level:filecount=10,filesize=10485760' failed. Invalid -Xlog option '-Xlog:gc=info,heap*=trace,age*=debug,safepoint=info,promotion*=trace:file=/var/log/cassandra/gc.log:time,uptime,pid,tid,level:filecount=10,filesize=10485760', see error log for details. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.
问题根源
启动报错的核心是/var/log/cassandra目录不存在,Cassandra无法自动创建该目录及日志文件,进而导致JVM初始化失败,服务无法启动,最终引发cqlsh连接拒绝。
解决步骤
- 创建Cassandra日志目录:
sudo mkdir -p /var/log/cassandra - 设置目录权限为Cassandra运行用户(默认是
cassandra用户):sudo chown -R cassandra:cassandra /var/log/cassandra - 启动Cassandra服务:
或直接执行启动命令:sudo systemctl start cassandrasudo cassandra - 验证服务状态:
等待服务完全启动后,再执行sudo systemctl status cassandracqlsh测试连接。
补充说明
/usr/sbin/cassandra是启动命令路径;/etc/cassandra是配置文件目录;/usr/share/cassandra是程序资源目录,日志路径由/etc/cassandra/cassandra-env.sh中的参数控制,默认指向/var/log/cassandra。- 若启动后仍有异常,可检查
/etc/cassandra/cassandra.yaml中commitlog_directory、data_file_directories等路径是否存在,确保这些目录的权限也归cassandra用户所有。
内容的提问来源于stack exchange,提问作者best_of_man
相关产品推荐
相关产品推荐

