Java 我能';无法打开Cassandra,因为磁盘空间不足,无法写入
我设置了一个新的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
打开它,但失败了。在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
df
的输出是什么,您的data\u file\u目录设置为什么,我没有为数据设置任何目录,这是默认的。您能否取消对Cassandra.yaml中的data\u file\u目录的注释,并将其显式设置为您知道有可用空间的目录。