2014-01-15 84 views
0

我的cassandra工作正常,但突然停止工作! 当我使用cqlsh命令我得到这个错误: 连接错误:无法连接到本地主机:9160 和output.log文件我看到的是:cassandra连接错误:无法连接到localhost:9160

Service exit with a return value of 1 
    OpenJDK Client VM warning: Insufficient space for shared memory file: 
    /tmp/hsperfdata_cassandra/10963 
    Try using the -Djava.io.tmpdir= option to select an alternate temp location. 

INFO 12:23:31,307 Logging initialized 
log4j:ERROR Failed to flush writer, 
java.io.IOException: No space left on device 
    at java.io.FileOutputStream.writeBytes(Native Method) 
    at java.io.FileOutputStream.write(FileOutputStream.java:297) 
    at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:220) 
    at sun.nio.cs.StreamEncoder.implFlushBuffer(StreamEncoder.java:290) 
    at sun.nio.cs.StreamEncoder.implFlush(StreamEncoder.java:294) 
    at sun.nio.cs.StreamEncoder.flush(StreamEncoder.java:140) 
    at java.io.OutputStreamWriter.flush(OutputStreamWriter.java:229) 
    at org.apache.log4j.helpers.QuietWriter.flush(QuietWriter.java:59) 
    at org.apache.log4j.WriterAppender.subAppend(WriterAppender.java:324) 
    at org.apache.log4j.RollingFileAppender.subAppend(RollingFileAppender.java:276) 
    at org.apache.log4j.WriterAppender.append(WriterAppender.java:162) 
    at org.apache.log4j.AppenderSkeleton.doAppend(AppenderSkeleton.java:251) 
    at  org.apache.log4j.helpers.AppenderAttachableImpl.appendLoopOnAppenders(AppenderAttachableImpl.java:66) 
    at org.apache.log4j.Category.callAppenders(Category.java:206) 
    at org.apache.log4j.Category.forcedLog(Category.java:391) 
    at org.apache.log4j.Category.info(Category.java:666) 
    at org.apache.cassandra.service.CassandraDaemon.initLog4j(CassandraDaemon.java:118) 
    at org.apache.cassandra.service.CassandraDaemon.<clinit>(CassandraDaemon.java:65) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:532) 
    at java.lang.Class.newInstance0(Class.java:374) 
    at java.lang.Class.newInstance(Class.java:327) 
    at org.apache.commons.daemon.support.DaemonLoader.load(DaemonLoader.java:190) 
INFO 12:23:31,332 32bit JVM detected. It is recommended to run Cassandra on a 64bit  JVM for better performance. 
INFO 12:23:31,335 JVM vendor/version: OpenJDK Client VM/1.6.0_27 
WARN 12:23:31,335 OpenJDK is not recommended. Please upgrade to the newest Oracle Java release 
INFO 12:23:31,335 Heap size: 252641280/253689856 
INFO 12:23:31,335 Classpath: /usr/share/cassandra/lib/antlr-3.2.jar:/usr/share/cassandra/lib/avro-1.4.0-fixes.jar:/usr/share/cassandra/lib/avro-1.4.0-sources-fixes.jar$ 
INFO 12:23:31,691 JNA mlockall successful 
INFO 12:23:31,715 Loading settings from filService exit with a return value of 1 
OpenJDK Client VM warning: Insufficient space for shared memory file: 

有人能帮助我吗? :(

回答

1

主机上的/ tmp目录对于cassandra希望创建的临时文件来说还不够大,临时文件与系统中的数据量有关,因为现在的数据库比它大在过去,它才开始,但它不从现在开始。

检查用df/tmp目录的状态。这是我的系统

$ df /tmp 
Filesystem  1K-blocks  Used Available Use% Mounted on 
/dev/sda6  570881944 350121276 191761552 65%/

改变这种用于这些地方临时文件,如错误说set java.io.tmpdir 在我的系统(Ubuntu Linux)上,可以通过编辑文件末尾/etc/cassandra/cassandra-env.sh

JVM_OPTS="$JVM_OPTS $JVM_EXTRA_OPTS -Djava.io.tmpdir=/opt" 

确保新的临时目录有足够的空间,并且权限是正确的,可能允许读取卡桑德拉用户/写

+0

感谢就足够了,我想清楚了我的tmp文件,但idon不知道它的目录,我清除sda1文件,但仍然当我使用cqlsh得到相同的erorr – zsh

相关问题