上个小时我和cassandra一起工作没有问题,但现在我跑到 cqlsh
时无法访问cassandra它给了我这个:
Connection error: Could not connect to localhost:9160
所以我尝试了这个:
sudo service cassandra status
它给了我这个:
xss = -ea -javaagent:/usr/share/cassandra/lib/jamm-0.2.5.jar -XX:UseThreadPriorities - XX:ThreadPriorityPolicy = 42 -Xms1024M -Xmx1024M -Xmn200M -XX:HeapDumpOnOutOfMemoryError -Xss256k无法访问pidfile对于 Cassandra
我该怎么做才能解决这个问题?
提前致谢,
6 回答
我有很多次这个问题,我总是用以下方法解决它:
sudo chown -R cassandra / var / lib / cassandra
sudo chown -R cassandra / var / log / cassandra
这在Ubuntu服务器14.04和Debian Wheezy上 .
希望你觉得它有用 .
Cassandra 必须有一个可以牺牲神灵的pid .
如果pid不存在,我've had to trick cassandra into actually restarting. It seems that the the restart won' t继续经过失败的'stop'动作 . 所以我用另一个有效的pid欺骗了pid文件 . 在我的情况下,我有
tail -f
对抗/var/log/cassandra/*.log
.我发现了这个pid
并将该pid放入
/var/run/cassandra.pid
文件中 . 这允许了杀死进程并继续重启 .
十分难看 . cassandra init脚本需要一些工作 .
您可能忘记在删除之前停止cassandra .
您必须通过
purge
命令删除cassandra并再次安装 .还要检查兼容cassandra预先要求的java版本 . (如cassandra 2. *需要java oracle 7.0)
pid文件位于
/var/run/cassandra.pid
. 检查它是否存在以及root用户是否具有读/写权限 . 还要确保root具有/var/run
的rwx权限 .至于你的连接拒绝错误,很可能是由于cassandra没有运行造成的 . 检查
/var/log/cassandra/*
中的日志文件是否有异常 .我遇到了同样的问题 . 我正在做一些测试,当我突然关闭系统并重新启动时,我在尝试检查Cassandra的状态时遇到了这个错误 .
pid文件具有在关闭之前运行的Cassandra服务的进程ID . 当Cassandra没有正确停止时会发生这种情况 . 所以,我强行以这种方式杀死了僵尸进程并再次启动了cassandra .
希望它有所帮助!
检查/var/log/cassandra/(system.log)中是否发生了错误,如果你看到
could not access pidfile for Cassandra
必须有一些错误