Cassandra 卡桑德拉在读《星火》杂志的时候,脸上冒着汗
我试着用spark读取表格中的所有数据,做一个简单的计数 但是我集群中的一些Cassandra节点抛出Cassandra 卡桑德拉在读《星火》杂志的时候,脸上冒着汗,cassandra,out-of-memory,spark-cassandra-connector,Cassandra,Out Of Memory,Spark Cassandra Connector,我试着用spark读取表格中的所有数据,做一个简单的计数 但是我集群中的一些Cassandra节点抛出java.lang.OutOfMemoryError。在此之后,我的spark作业停止,因为它无法再联系这些特定节点 一个简单的解决方案是增加堆内存量,但我认为这只是掩盖了真正的问题 堆转储显示在两个ArrayList中有许多SSTableScanner实例(7200),它们总共占内存的35%。第三大对象似乎是占总内存8%的缓存(org.apache.cassandra.cache.Concur
java.lang.OutOfMemoryError
。在此之后,我的spark作业停止,因为它无法再联系这些特定节点
一个简单的解决方案是增加堆内存量,但我认为这只是掩盖了真正的问题
堆转储显示在两个ArrayList
中有许多SSTableScanner
实例(7200),它们总共占内存的35%。第三大对象似乎是占总内存8%的缓存(org.apache.cassandra.cache.ConcurrentLinkedHashCache)
- 我想知道我是否有这个问题,因为其中一行太宽了
- (我知道我最大的分区是8G大)
- 还是因为SSTABLE太多了。
- (在4K和22K之间变化)
SSTable
,而是只加载它需要的那一个。但它也可能需要查看所有SSTables
中的特定令牌范围
是否有某种东西可以识别潜在的问题,或者有一种特殊的配置可以在内存中保留较少的SSTable
在普通情况下,拥有巨大的C*分区或巨大的SStable计数并不好,尤其是对于扫描请求而言是的,我知道,但如果我无法读取数据,如何更改模式?正如我所说的,我的问题不是索引信息,而是SSTableScannerCompaction通常有帮助,特别是如果您可以临时增加内存限制,那么可以使用物化视图来重新排列模式以进行读取