【发布时间】:2015-08-03 21:45:31
【问题描述】:
我们在 AWS 上运行一个 3 节点的 cassandra 集群。我能够启动一个节点,但无法启动集群中的其他两个节点。 当我尝试启动节点时,我会得到以下信息列表,直到它最终耗尽堆空间并终止: http://pastebin.com/7gRGWVDV
最后,节点因内存不足错误而终止:
ERROR 07:37:41,495 Exception in thread Thread[FileWatchdog,5,main] java.lang.OutOfMemoryError: Java heap space
at java.lang.StringCoding$StringEncoder.encode(StringCoding.java:300)
at java.lang.StringCoding.encode(StringCoding.java:344)
at java.lang.String.getBytes(String.java:916)
at java.io.UnixFileSystem.getBooleanAttributes0(Native Method)
at java.io.UnixFileSystem.getBooleanAttributes(UnixFileSystem.java:242)
at java.io.File.exists(File.java:813)
at org.apache.log4j.helpers.FileWatchdog.checkAndConfigure(FileWatchdog.java:77)
at org.apache.log4j.helpers.FileWatchdog.run(FileWatchdog.java:108)
ERROR 07:37:48,570 Exception in thread Thread[CompactionExecutor:4,1,main] java.lang.OutOfMemoryError: Java heap space
at org.apache.cassandra.io.util.RandomAccessReader.readBytes(RandomAccessReader.java:347)
at org.apache.cassandra.utils.ByteBufferUtil.read(ByteBufferUtil.java:392)
at org.apache.cassandra.utils.ByteBufferUtil.readWithLength(ByteBufferUtil.java:355)
at org.apache.cassandra.db.ColumnSerializer.deserializeColumnBody(ColumnSerializer.java:124)
at org.apache.cassandra.db.OnDiskAtom$Serializer.deserializeFromSSTable(OnDiskAtom.java:85)
at org.apache.cassandra.db.Column$1.computeNext(Column.java:75)
at org.apache.cassandra.db.Column$1.computeNext(Column.java:64)
at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
at com.google.common.collect.AbstractIterator.next(AbstractIterator.java:153)
at org.apache.cassandra.db.columniterator.IndexedSliceReader$IndexedBlockFetcher.getNextBlock(IndexedSliceReader.java:434 )
在 cassandra-env.sh 中,我设置:
MAX_HEAP_SIZE="4G"
HEAP_NEWSIZE="800M"
我能够启动 cassandra 并正常运行它直到几天前,然后我们运行了一个数据迁移任务,将数据从 mysql 移动到 cassandra。在那次迁移期间,我记得我们已经将大约 4000 万行从 mysql 移动到 cassandra。结果,我们的硬盘空间用完了,因此我们增加了更多的磁盘空间,并将我们的 aws 实例从 m3 large 提升到 m3 xlarge。 但现在我无法启动节点。 正如其他 SO 答案中所建议的,我删除了 saved_cache 目录并尝试重新启动节点。但这个建议对我们不起作用。
我使用的是 cassandra 2.0.14 版
任何指针都会有所帮助!
【问题讨论】:
标签: amazon-web-services cassandra