因为没有足够的磁盘空间来写

时间:2017-08-09 14:10:23

标签: java apache cassandra cqlsh

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

错误13:30:31启动时遇到异常java.lang.RuntimeException:java.lang.RuntimeException:java.util.concurrent.ExecutionException:java.lang.RuntimeException:写入542字节的磁盘空间不足     在org.apache.cassandra.db.ColumnFamilyStore.runWithCompactionsDisabled(ColumnFamilyStore.java:2888)〜[apache-cassandra-2.2.10.jar:2.2.10]     在org.apache.cassandra.db.ColumnFamilyStore.truncateBlocking(ColumnFamilyStore.java:2849)〜[apache-cassandra-2.2.10.jar:2.2.10]     在org.apache.cassandra.db.SystemKeyspace.discardCompactionsInProgress(SystemKeyspace.java:404)〜[apache-cassandra-2.2.10.jar:2.2.10]     在org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:230)[apache-cassandra-2.2.10.jar:2.2.10]     在org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:533)[apache-cassandra-2.2.10.jar:2.2.10]     在org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:642)[apache-cassandra-2.2.10.jar:2.2.10]引起:java.lang.RuntimeException:java.util.concurrent.ExecutionException :java.lang.RuntimeException:磁盘空间不足,写入542个字节     在org.apache.cassandra.utils.FBUtilities.waitOnFuture(FBUtilities.java:394)〜[apache-cassandra-2.2.10.jar:2.2.10]     在org.apache.cassandra.db.SystemKeyspace.forceBlockingFlush(SystemKeyspace.java:593)〜[apache-cassandra-2.2.10.jar:2.2.10]     在org.apache.cassandra.db.SystemKeyspace.saveTruncationRecord(SystemKeyspace.java:432)〜[apache-cassandra-2.2.10.jar:2.2.10]     在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]     在org.apache.cassandra.db.ColumnFamilyStore.runWithCompactionsDisabled(ColumnFamilyStore.java:2884)〜[apache-cassandra-2.2.10.jar:2.2.10] ... 5个常见的帧省略引起的:java.util.concurrent .ExecutionException:java.lang.RuntimeException:磁盘空间不足,写入542个字节     在com.google.common.util.concurrent.AbstractFuture $ Sync.getValue(AbstractFuture.java:299)〜[guava-16.0.jar:na]     在com.google.common.util.concurrent.AbstractFuture $ Sync.get(AbstractFuture.java:286)〜[guava-16.0.jar:na]     在com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:116)〜[guava-16.0.jar:na]     在org.apache.cassandra.utils.FBUtilities.waitOnFuture(FBUtilities.java:390)〜[apache-cassandra-2.2.10.jar:2.2.10] ...省略了10个常见帧引起的:java.lang.RuntimeException :磁盘空间不足,写入542个字节     在org.apache.cassandra.db.Directories.getWriteableLocation(Directories.java:349)〜[apache-cassandra-2.2.10.jar:2.2.10]     在org.apache.cassandra.db.Memtable.flush(Memtable.java:324)〜[apache-cassandra-2.2.10.jar:2.2.10]     在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

使用的文件系统大小可用

上使用%

/ 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%

/运行/锁定

tmpfs 5.9G 0 5.9G 0%

/ SYS / FS / cgroup中

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

2 个答案:

答案 0 :(得分:2)

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

  

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

由于Cassandra默认将数据存储在/ var / lib / cassandra中,并且您尚未设置用于此路径的其他文件系统,因此它将使用您的根文件系统。我可以想到这个问题的几种解决方案。

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

答案 1 :(得分:0)

转到mchine并手动删除未使用的cassandra架构。