gpt4 book ai didi

java - sstableloader的错误

转载 作者:行者123 更新时间:2023-11-30 07:32:21 25 4
gpt4 key购买 nike

我尝试使用 sstableloader 将数据加载到 Cassandra 集群。sstableloader 显示以下错误:

Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.nio.HeapByteBuffer.<init>(HeapByteBuffer.java:57)
at java.nio.ByteBuffer.allocate(ByteBuffer.java:335)
at org.apache.cassandra.io.compress.BufferType$1.allocate(BufferType.java:28)
at org.apache.cassandra.io.util.RandomAccessReader.allocateBuffer(RandomAccessReader.java:69)
at org.apache.cassandra.io.util.RandomAccessReader.<init>(RandomAccessReader.java:62)
at org.apache.cassandra.io.util.RandomAccessReader.open(RandomAccessReader.java:103)
at org.apache.cassandra.io.util.RandomAccessReader.open(RandomAccessReader.java:92)
at org.apache.cassandra.io.util.RandomAccessReader.open(RandomAccessReader.java:87)
at org.apache.cassandra.io.util.BufferedSegmentedFile.getSegment(BufferedSegmentedFile.java:60)
at org.apache.cassandra.io.util.SegmentedFile$SegmentIterator.next(SegmentedFile.java:271)
at org.apache.cassandra.io.util.SegmentedFile$SegmentIterator.next(SegmentedFile.java:252)
at org.apache.cassandra.io.sstable.format.big.BigTableReader.getPosition(BigTableReader.java:184)
at org.apache.cassandra.io.sstable.format.SSTableReader.getPosition(SSTableReader.java:1558)
at org.apache.cassandra.io.sstable.format.SSTableReader.getPositionsForRanges(SSTableReader.java:1489)
at org.apache.cassandra.io.sstable.SSTableLoader$1.accept(SSTableLoader.java:128)
at java.io.File.list(File.java:1161)
at org.apache.cassandra.io.sstable.SSTableLoader.openSSTables(SSTableLoader.java:79)
at org.apache.cassandra.io.sstable.SSTableLoader.stream(SSTableLoader.java:161)
at org.apache.cassandra.tools.BulkLoader.main(BulkLoader.java:97)

如果我了解情况,它需要增加 MAX_HEAP_SIZE。我该如何为 sstableloader 做到这一点?

听起来不太乐观 - “/usr/bin/sstableloader 仍然有一个硬编码的 -Mx256M,不能轻易覆盖”。 https://issues.apache.org/jira/browse/CASSANDRA-7385

谢谢。

我编辑了 bin/sstableloader 以设置 MAX_HEAP_SIZE="16GB"。之后 sstatableloader 就可以工作了。

最佳答案

sstableloader.sh 包含以下代码行

if [ "x$MAX_HEAP_SIZE" = "x" ];
...

因此,将 MAX_HEAP_SIZE 放在 sstableloader 命令前面将设置临时环境变量并被 sstableloader 识别:

MAX_HEAP_SIZE="16G" sstableloader -d node /file/path

关于java - sstableloader的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35921883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com