上个小时我和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
我该怎么做才能解决这个问题?
提前致谢,
答案 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
竞争。
我找到了
的pidps 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