1

我在使用 Cassandra 时遇到问题。当我尝试 cassandra/bin cassandra -f 以下异常时:

INFO 10:50:18,090 reading saved cache /var/lib/cassandra/saved_caches/system-schema_columns-KeyCache-b.db
java.lang.OutOfMemoryError: Requested array size exceeds VM limit
Dumping heap to java_pid7545.hprof ...
Heap dump file created [105901433 bytes in 0.574 secs]
ERROR 10:50:18,668 Exception encountered during startup
java.lang.OutOfMemoryError: Requested array size exceeds VM limit
at org.apache.cassandra.utils.ByteBufferUtil.read(ByteBufferUtil.java:394)
at org.apache.cassandra.utils.ByteBufferUtil.readWithLength(ByteBufferUtil.java:355)
at org.apache.cassandra.service.CacheService$KeyCacheSerializer.deserialize(CacheService.java:352)
at org.apache.cassandra.cache.AutoSavingCache.loadSaved(AutoSavingCache.java:119)
at org.apache.cassandra.db.ColumnFamilyStore.<init>(ColumnFamilyStore.java:267)
at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:411)
at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:383)
at org.apache.cassandra.db.Keyspace.initCf(Keyspace.java:314)
at org.apache.cassandra.db.Keyspace.<init>(Keyspace.java:268)
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:474)
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:226)
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:442)
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:485)
java.lang.OutOfMemoryError: Requested array size exceeds VM limit
at org.apache.cassandra.utils.ByteBufferUtil.read(ByteBufferUtil.java:394)
at org.apache.cassandra.utils.ByteBufferUtil.readWithLength(ByteBufferUtil.java:355)
at org.apache.cassandra.service.CacheService$KeyCacheSerializer.deserialize(CacheService.java:352)
at org.apache.cassandra.cache.AutoSavingCache.loadSaved(AutoSavingCache.java:119)
at org.apache.cassandra.db.ColumnFamilyStore.<init>(ColumnFamilyStore.java:267)
at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:411)
at org.apache.cassandra.db.ColumnFamilyStore.createColumnFamilyStore(ColumnFamilyStore.java:383)
at org.apache.cassandra.db.Keyspace.initCf(Keyspace.java:314)
at org.apache.cassandra.db.Keyspace.<init>(Keyspace.java:268)
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:474)
at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:226)
at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:442)
at org.apache.cassandra.service.CassandraDaemon.main(CassandraDaemon.java:485)
Exception encountered during startup: Requested array size exceeds VM limit

卡桑德拉 2.0 Ubuntu 12.04

感谢您提前帮助解决此问题。

4

2 回答 2

4

您将希望减小 cassandra.yaml 中密钥缓存的大小。但要重新开始:

rm -rf /var/lib/cassandra/saved_caches/*
于 2014-02-20T12:40:11.360 回答
0

增加cassandra环境文件中的VM内存配置

它存在于 cassandra "conf/cassandra-env.sh" 的 conf 文件夹中

于 2014-04-19T17:17:18.237 回答