Java 我能';无法打开Cassandra,因为磁盘空间不足,无法写入

Java 我能';无法打开Cassandra,因为磁盘空间不足,无法写入,java,cassandra,cqlsh,Java,Cassandra,Cqlsh,我设置了一个新的Cassandra并使用/Cassandra打开它,但失败了。在system.log中,它显示以下错误: ERROR 13:30:31 Exception encountered during startup java.lang.RuntimeException: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.RuntimeException: Insufficient

我设置了一个新的Cassandra并使用
/Cassandra
打开它,但失败了。在system.log中,它显示以下错误:

ERROR 13:30:31 Exception encountered during startup java.lang.RuntimeException: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.RuntimeException: Insufficient disk space to write 542 bytes
    at org.apache.cassandra.db.ColumnFamilyStore.runWithCompactionsDisabled(ColumnFamilyStore.java:2888) ~[apache-cassandra-2.2.10.jar:2.2.10]
    at org.apache.cassandra.db.ColumnFamilyStore.truncateBlocking(ColumnFamilyStore.java:2849) ~[apache-cassandra-2.2.10.jar:2.2.10]
    at org.apache.cassandra.db.SystemKeyspace.discardCompactionsInProgress(SystemKeyspace.java:404) ~[apache-cassandra-2.2.10.jar:2.2.10]
    at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:230) [apache-cassandra-2.2.10.jar:2.2.10]
    at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:533) [apache-cassandra-2.2.10.jar:2.2.10]
    at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:642) [apache-cassandra-2.2.10.jar:2.2.10] Caused by: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.RuntimeException: Insufficient disk space to write 542 bytes
    at org.apache.cassandra.utils.FBUtilities.waitOnFuture(FBUtilities.java:394) ~[apache-cassandra-2.2.10.jar:2.2.10]
    at org.apache.cassandra.db.SystemKeyspace.forceBlockingFlush(SystemKeyspace.java:593) ~[apache-cassandra-2.2.10.jar:2.2.10]
    at org.apache.cassandra.db.SystemKeyspace.saveTruncationRecord(SystemKeyspace.java:432) ~[apache-cassandra-2.2.10.jar:2.2.10]
    at org.apache.cassandra.db.ColumnFamilyStore$13.run(ColumnFamilyStore.java:2843) ~[apache-cassandra-2.2.10.jar:2.2.10]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_141]
    at org.apache.cassandra.db.ColumnFamilyStore.runWithCompactionsDisabled(ColumnFamilyStore.java:2884) ~[apache-cassandra-2.2.10.jar:2.2.10]           ... 5 common frames omitted Caused by: java.util.concurrent.ExecutionException: java.lang.RuntimeException: Insufficient disk space to write 542 bytes
    at com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:299) ~[guava-16.0.jar:na]
    at com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:286) ~[guava-16.0.jar:na]
    at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:116) ~[guava-16.0.jar:na]
    at org.apache.cassandra.utils.FBUtilities.waitOnFuture(FBUtilities.java:390) ~[apache-cassandra-2.2.10.jar:2.2.10]           ... 10 common frames omitted Caused by: java.lang.RuntimeException: Insufficient disk space to write 542 bytes
    at org.apache.cassandra.db.Directories.getWriteableLocation(Directories.java:349) ~[apache-cassandra-2.2.10.jar:2.2.10]
    at org.apache.cassandra.db.Memtable.flush(Memtable.java:324) ~[apache-cassandra-2.2.10.jar:2.2.10]
    at org.apache.cassandra.db.ColumnFamilyStore$Flush.run(ColumnFamilyStore.java:1187) ~[apache-cassandra-2.2.10.jar:2.2.10]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[na:1.8.0_141] 
命令“df-h”的输出:

root@srv-machine-learning01:/var/lib/cassandra# df -h

Filesystem                                   Size  Used Avail Use% Mounted on

/dev/xvda1                                        61G   60G     0 100% /

udev                                              10M     0   10M   0% /dev

tmpfs                                            2.4G  8.3M  2.4G   1% /run

tmpfs                                            5.9G     0  5.9G   0% 

/dev/shm

tmpfs                                            5.0M     0  5.0M   0% 

/run/lock

tmpfs                                            5.9G     0  5.9G   0% 

/sys/fs/cgroup

bak02.sovanta.com:/volume1/bak_machine_learning   70T   19T   52T  27% 

看起来您的根文件系统已满

/dev/xvda1 61G 60G 0 100%/

由于Cassandra默认情况下将数据存储在/var/lib/Cassandra中,并且您还没有为该路径设置其他文件系统,因此它将使用您的根文件系统。我可以想出几个解决这个问题的办法

  • 释放根分区上的空间
  • 增加根文件系统的磁盘空间
  • 向系统中添加一个新磁盘,并创建一个新的文件系统,该文件系统将装载到/var/lib/cassandra

转到mchine并手动删除未使用的cassandra模式。

您使用哪种操作系统?驱动器上有多少可用空间?数据目录的权限设置是否正确?linux 3.16.0-4-amd64,存储Cassandra的空间足够大。你说的权限是什么意思?因为我使用了Cassandra的二进制版本,所以我认为默认情况下数据将存储在Cassandra/data目录中,我没有设置var/lib/data目录。在Cassandra.yaml中,
df
的输出是什么,您的
data\u file\u目录设置为什么,我没有为数据设置任何目录,这是默认的。您能否取消对Cassandra.yaml中的data\u file\u目录的注释,并将其显式设置为您知道有可用空间的目录。