2014-01-15 83 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

相關問題