首页 文章

无法访问Cassandra的pidfile

提问于
浏览
4

上个小时我和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 回答

  • 0

    我有很多次这个问题,我总是用以下方法解决它:

    sudo chown -R cassandra / var / lib / cassandra

    sudo chown -R cassandra / var / log / cassandra

    这在Ubuntu服务器14.04和Debian Wheezy上 .

    希望你觉得它有用 .

  • 3

    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

    ps aux | grep tail
    

    并将该pid放入 /var/run/cassandra.pid 文件中 . 这允许了

    service cassandra restart
    

    杀死进程并继续重启 .

    十分难看 . cassandra init脚本需要一些工作 .

  • -1

    您可能忘记在删除之前停止cassandra .

    您必须通过 purge 命令删除cassandra并再次安装 .

    还要检查兼容cassandra预先要求的java版本 . (如cassandra 2. *需要java oracle 7.0)

  • 1

    pid文件位于 /var/run/cassandra.pid . 检查它是否存在以及root用户是否具有读/写权限 . 还要确保root具有 /var/run 的rwx权限 .

    至于你的连接拒绝错误,很可能是由于cassandra没有运行造成的 . 检查 /var/log/cassandra/* 中的日志文件是否有异常 .

  • 2

    我遇到了同样的问题 . 我正在做一些测试,当我突然关闭系统并重新启动时,我在尝试检查Cassandra的状态时遇到了这个错误 .

    pid文件具有在关闭之前运行的Cassandra服务的进程ID . 当Cassandra没有正确停止时会发生这种情况 . 所以,我强行以这种方式杀死了僵尸进程并再次启动了cassandra .

    kill -9 `ps -ef | grep cassandra | grep -v grep | awk {'print $2'}`
    service cassandra start
    

    希望它有所帮助!

  • 2

    检查/var/log/cassandra/(system.log)中是否发生了错误,如果你看到 could not access pidfile for Cassandra 必须有一些错误

相关问题