代码之家  ›  专栏  ›  技术社区  ›  Oak

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

  •  1
  • Oak  · 技术社区  · 7 年前

    ./cassandra 打开它,但它失败了。在系统中。日志,它显示以下错误:

    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% 
    
    2 回复  |  直到 5 年前
        1
  •  3
  •   Simon Fontana Oscarsson    7 年前

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

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

    • 增加根文件系统的磁盘空间
    • 向系统中添加一个新磁盘,并创建一个新的文件系统,该文件系统装载到/var/lib/cassandra
        2
  •  0
  •   shirel    7 年前

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