Cassandra CompressedRandomAccessReader内存不足错误

问题描述

java.lang.OutOfMemoryError: Java heap space
at org.apache.cassandra.io.compress.CompressedRandomAccessReader.<init>(CompressedRandomAccessReader.java:73) ~[apache-cassandra-2.1.5.jar:2.1.5]
at org.apache.cassandra.io.compress.CompressedRandomAccessReader.open(CompressedRandomAccessReader.java:48) ~[apache-cassandra-2.1.5.jar:2.1.5]
at org.apache.cassandra.io.util.CompressedPoolingSegmentedFile.createPooledReader(CompressedPoolingSegmentedFile.java:95) ~[apache-cassandra-2.1.5.jar:2.1.5]
at org.apache.cassandra.io.util.PoolingSegmentedFile.getSegment(PoolingSegmentedFile.java:62) ~[apache-cassandra-2.1.5.jar:2.1.5]
at org.apache.cassandra.io.sstable.sstableReader.getFileDataInput(sstableReader.java:1779) ~[apache-cassandra-2.1.5.jar:2.1.5]
at org.apache.cassandra.db.columniterator.SimpleSliceReader.<init>(SimpleSliceReader.java:57) ~[apache-cassandra-2.1.5.jar:2.1.5]
at org.apache.cassandra.db.columniterator.sstableSliceIterator.createReader(sstableSliceIterator.java:65) ~[apache-cassandra-2.1.5.jar:2.1.5]
at org.apache.cassandra.db.columniterator.sstableSliceIterator.<init>(sstableSliceIterator.java:42) ~[apache-cassandra-2.1.5.jar:2.1.5]
at org.apache.cassandra.db.filter.SliceQueryFilter.getsstableColumnIterator(SliceQueryFilter.java:185) ~[apache-cassandra-2.1.5.jar:2.1.5]
at org.apache.cassandra.db.filter.QueryFilter.getsstableColumnIterator(QueryFilter.java:62) ~[apache-cassandra-2.1.5.jar:2.1.5]
at org.apache.cassandra.db.CollationController.collectAllData(CollationController.java:273) ~[apache-cassandra-2.1.5.jar:2.1.5]
at org.apache.cassandra.db.CollationController.getTopLevelColumns(CollationController.java:62) ~[apache-cassandra-2.1.5.jar:2.1.5]
at org.apache.cassandra.db.ColumnFamilyStore.getTopLevelColumns(ColumnFamilyStore.java:1925) ~[apache-cassandra-2.1.5.jar:2.1.5]
at org.apache.cassandra.db.ColumnFamilyStore.getColumnFamily(ColumnFamilyStore.java:1758) ~[apache-cassandra-2.1.5.jar:2.1.5]
at org.apache.cassandra.db.Keyspace.getRow(Keyspace.java:342) ~[apache-cassandra-2.1.5.jar:2.1.5]
at org.apache.cassandra.db.SliceFromreadCommand.getRow(SliceFromreadCommand.java:57) ~[apache-cassandra-2.1.5.jar:2.1.5]
at org.apache.cassandra.service.StorageProxy$LocalReadRunnable.runMayThrow(StorageProxy.java:1494) ~[apache-cassandra-2.1.5.jar:2.1.5]
at org.apache.cassandra.service.StorageProxy$DroppableRunnable.run(StorageProxy.java:2179) ~[apache-cassandra-2.1.5.jar:2.1.5]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) ~[na:1.7.0_79]
at org.apache.cassandra.concurrent.AbstractTracingAwareExecutorService$FutureTask.run(AbstractTracingAwareExecutorService.java:164) ~[apache-cassandra-2.1.5.jar:2.1.5]
at org.apache.cassandra.concurrent.SEPWorker.run(SEPWorker.java:105) [apache-cassandra-2.1.5.jar:2.1.5]

面对上述例外情况,不能完全确定cassandra产生问题的方式/原因。假设之一是,这是在数据同步和分区期间发生的。

设置为3节点群集,每个节点具有4 GB的最大堆。尤其是在节点运行了很长时间(例如100天)后,就会发生这种情况

使用的Java版本是1.5

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)