Cassandra:java.lang.OutOfMemoryError:Java堆空间 [英] Cassandra : java.lang.OutOfMemoryError: Java heap space

查看:548
本文介绍了Cassandra:java.lang.OutOfMemoryError:Java堆空间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用cassandra 2.0.8并收到此异常

  INFO 16:44:50,132初始化system.batchlog 
INFO 16:44:50,138初始化system.sstable_activity
INFO 16:44:50,142打开/ var / lib / cassandra / data / system / sstable_activity / system-sstable_activity-jb-10(826字节)
INFO 16:44:50,142 Opening / var / lib / cassandra / data / system / sstable_activity / system-sstable_activity-jb-9(827字节)
INFO 16:44:50,142打开/ var / lib / cassandra / data / system / sstable_activity / system-sstable_activity-jb-11(825字节)
INFO 16:44:50,150读取保存的缓存/var/lib/cassandra/saved_caches/system-sstable_activity-KeyCache-b.db
java.lang.OutOfMemoryError:Java堆空间
将堆转储到java_pid3460.hprof ...
创建堆转储文件[13378724个字节在0.071秒]
错误16:44:50,333异常启动期间遇到的
java.lang.OutOfMemoryError:Java堆空间
at java.util.ArrayList。< init>(ArrayList.java:144)
at org.apache.cassandra.db .RowIndexEntry $ Serializer.deserialize(RowIndexEntry.java:120)
at org.apache.cassandra.service.CacheService $ KeyCacheSerializer.deserialize(CacheService.java:365)
at org.apache.cassandra.cache .AutoSavingCache.loadSaved(AutoSavingCache.java:119)
at org.apache.cassandra.db.ColumnFamilyStore。< init>(ColumnFamilyStore.java:262)
at org.apache.cassandra.db。 ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:421)
at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:392)
at org.apache.cassandra.db.Keyspace.initCf < init>(Keyspace.java:266)
at org.apache.cassandra.db.Keyspace.open(Keyspace.java309)
at org.apache.cassandra.db.Keyspace。 .java:110)
at org.apache.cassandra.db.Keyspace.open(Keyspace.java:88)
at org.apache.cassandra.db.SystemKeyspace.checkHealth(SystemKeyspace.java:536 )
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:261)
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:496)
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:585)
java.lang.OutOfMemoryError:Java堆空间
在java.util.ArrayList。< init>(ArrayList .java:144)
at org.apache.cassandra.db.RowIndexEntry $ Serializer.deserialize(RowIndexEntry.java:120)
at org.apache.cassandra.service.CacheService $ KeyCacheSerializer.deserialize(CacheService .java:365)
at org.apache.cassandra.cache.AutoSavingCache.loadSaved(AutoSavingCache.java:119)
at org.apache.cassandra.db.ColumnFamilyStore。< init>(ColumnFamilyStore。 java:262)
at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:421)
at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:392)
at org.apache.cassandra.db.Keyspace.initCf(Keyspace.java:309)
at org.apache.cassandra.db.Keyspace。< init>(Keyspace.java:266)
at org.apache.cassandra.db.Keyspace.open(Keyspace.java:110)
at org.apache.cassandra.db.Keyspace.open(Keyspace.java:88)
at org.apache.cassandra.db.SystemKeyspace.checkHealth(SystemKeyspace.java:536)
在org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:261)
在org.apache。 cassandraDaemon.activate(CassandraDaemon.java:496)
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:585)
启动期间遇到异常:Java堆空间$任何人都可以告诉我原因和解决方案:

h2_lin>解决方案

它可能是你的密钥缓存占用了太多的空间(因为它死了),但似乎不太可能。您可以尝试在开始之前删除您的KeyCache

  / var / lib / cassandra / saved_caches 

并设置

  key_cache_size_in_mb:0 $ (我不会永久推荐这个功能)禁用Cassandra.yaml中的b $ b  

/ p>

你可以通过打开在yourkit或一些堆分析器中创建的java_pid3460.hprof文件来确定填充你的堆的内容,以确定占用空间的内容。有可能是有趣的事情,很奇怪,要死在13mb左右(堆的大小)。


I am using cassandra 2.0.8 and getting this exception

INFO 16:44:50,132 Initializing system.batchlog
 INFO 16:44:50,138 Initializing system.sstable_activity
 INFO 16:44:50,142 Opening /var/lib/cassandra/data/system/sstable_activity/system-sstable_activity-jb-10 (826 bytes)
 INFO 16:44:50,142 Opening /var/lib/cassandra/data/system/sstable_activity/system-sstable_activity-jb-9 (827 bytes)
 INFO 16:44:50,142 Opening /var/lib/cassandra/data/system/sstable_activity/system-sstable_activity-jb-11 (825 bytes)
 INFO 16:44:50,150 reading saved cache /var/lib/cassandra/saved_caches/system-sstable_activity-KeyCache-b.db
java.lang.OutOfMemoryError: Java heap space
Dumping heap to java_pid3460.hprof ...
Heap dump file created [13378724 bytes in 0.071 secs]
ERROR 16:44:50,333 Exception encountered during startup
java.lang.OutOfMemoryError: Java heap space
    at java.util.ArrayList.<init>(ArrayList.java:144)
    at org.apache.cassandra.db.RowIndexEntry$Serializer.deserialize(RowIndexEntry.java:120)
    at org.apache.cassandra.service.CacheService$KeyCacheSerializer.deserialize(CacheService.java:365)
    at org.apache.cassandra.cache.AutoSavingCache.loadSaved(AutoSavingCache.java:119)
    at org.apache.cassandra.db.ColumnFamilyStore.<init>(ColumnFamilyStore.java:262)
    at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:421)
    at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:392)
    at org.apache.cassandra.db.Keyspace.initCf(Keyspace.java:309)
    at org.apache.cassandra.db.Keyspace.<init>(Keyspace.java:266)
    at org.apache.cassandra.db.Keyspace.open(Keyspace.java:110)
    at org.apache.cassandra.db.Keyspace.open(Keyspace.java:88)
    at org.apache.cassandra.db.SystemKeyspace.checkHealth(SystemKeyspace.java:536)
    at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:261)
    at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:496)
    at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:585)
java.lang.OutOfMemoryError: Java heap space
    at java.util.ArrayList.<init>(ArrayList.java:144)
    at org.apache.cassandra.db.RowIndexEntry$Serializer.deserialize(RowIndexEntry.java:120)
    at org.apache.cassandra.service.CacheService$KeyCacheSerializer.deserialize(CacheService.java:365)
    at org.apache.cassandra.cache.AutoSavingCache.loadSaved(AutoSavingCache.java:119)
    at org.apache.cassandra.db.ColumnFamilyStore.<init>(ColumnFamilyStore.java:262)
    at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:421)
    at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:392)
    at org.apache.cassandra.db.Keyspace.initCf(Keyspace.java:309)
    at org.apache.cassandra.db.Keyspace.<init>(Keyspace.java:266)
    at org.apache.cassandra.db.Keyspace.open(Keyspace.java:110)
    at org.apache.cassandra.db.Keyspace.open(Keyspace.java:88)
    at org.apache.cassandra.db.SystemKeyspace.checkHealth(SystemKeyspace.java:536)
    at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:261)
    at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:496)
    at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:585)
Exception encountered during startup: Java heap space

Can anyone tell me the reason and solution:

解决方案

Its possible your key cache is taking up too much space (since thats where it died) but it seems unlikely. You can try to delete your KeyCache before starting

/var/lib/cassandra/saved_caches

and set

key_cache_size_in_mb: 0

in your cassandra.yaml as a test (I would not recommend this permanently) to have it disabled.

You can actually determine whats filling up your heap by opening up the java_pid3460.hprof file it created in yourkit or some heap analyzer to determine whats taking up the space. There may be something funny going on, very strange to be dying at 13mb or so (size of heap).

这篇关于Cassandra:java.lang.OutOfMemoryError:Java堆空间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆