无法访问Cassandra的pidfile

时间:2013-11-09 07:36:37

标签: ubuntu cassandra

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

     
      
  • 无法访问Cassandra的pidfile
  •   

我该怎么做才能解决这个问题?

提前致谢,

6 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:2)

Cassandra必须有一个pid来祭祀神灵。

我不得不欺骗cassandra实际重启。如果pid不存在,似乎重启不会继续经过失败的'停止'动作。所以我用另一个有效的pid欺骗了pid文件。在我的情况下,我tail -f/var/log/cassandra/*.log竞争。

我找到了

的pid
ps aux | grep tail 

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

service cassandra restart

杀死进程并继续重启。

非常难看。 cassandra init脚本需要一些工作。

答案 2 :(得分:2)

我多次遇到这个问题,我总是用以下方法解决这个问题:

sudo chown -R cassandra / var / lib / cassandra

sudo chown -R cassandra / var / log / cassandra

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

希望你觉得它很有用。

答案 3 :(得分:1)

你可能忘了在删除之前停止cassandra。

您必须通过purge命令删除cassandra并重新安装。

同时检查你的java版本是否符合cassandra的预先要求。(如cassandra 2. *需要java oracle 7.0)

答案 4 :(得分:0)

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

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

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

希望它有所帮助!

答案 5 :(得分:-1)

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

,则必须有一些错误