DSBulk 卸载命令在运行几个小时后失败并出现 OOM

问题描述 投票:0回答:1

dsbulk 卸载由于 cassandra pod 重新启动而失败。 cassandra pod 显示由于 OOM 问题而被杀死。

2024-03-26 21:54:14 INFO  Operation directory: /cassandra_data/dsbulk/dsbulk-1.11.0/bin/logs/LOAD_20240326-215414-519088
2024-03-26 21:54:16 ERROR Operation LOAD_20240326-215414-519088 failed: Java.io.IOException: Error creating CSV parser for file:/cassandra_data/dsbulk/dsbulk.csv.
   Caused by: Error creating CSV parser for file:/cassandra_data/dsbulk/dsbulk.csv.
     Caused by: File not found: /cassandra_data/dsbulk/dsbulk.csv (No such file or directory).
reactor.core.Exceptions$ReactiveException: java.io.IOException: Error creating CSV parser for file:/cassandra_data/dsbulk/dsbulk.csv
    at com.datastax.oss.dsbulk.workflow.load.LoadWorkflow.execute(LoadWorkflow.java:242) [3 skipped]
    com.datastax.oss.dsbulk.io.CompressedIOUtils.newBufferedReader(CompressedIOUtils.java:96)

我们使用以下命令导出数据。

$ export DSBULK_JAVA_OPTS="-Xmx10G"
$ dsbulk unload \
    -url /cassandra_data/dsbulk/export2.csv \
    -delim "|" \
    --executor.continuousPaging.enabled false \
    -cl LOCAL_QUORUM \
    --driver.basic.request.timeout="30 minutes" \
    --datastax-java-driver.basic.request.timeout="30 minutes" \
    -maxErrors 1000000 \
    --schema.splits=12C \
    -maxConcurrentQueries 1 \
    -maxConcurrentFiles 10 \
    -header true \
    -k <keyspacename> \
    -t <table name>

该表有1.6TB。有没有最好的选择/方法来导出巨大的 cassandra 表。

cassandra dsbulk
1个回答
0
投票

不幸的是,您发布的错误与导出无关,因为它表明它是针对完全不同的 CSV 文件的 LOAD 操作:

2024-03-26 21:54:16 ERROR Operation LOAD_20240326-215414-519088 failed: Java.io.IOException: Error creating CSV parser for file:/cassandra_data/dsbulk/dsbulk.csv.
   Caused by: Error creating CSV parser for file:/cassandra_data/dsbulk/dsbulk.csv.

如果没有 OOM 和相关日志消息的详细信息,我最好的猜测是 Cassandra 在读取 SSTables 导出数据时使用了太多内存。

Cassandra 通过 Unix 系统调用

mmap()
(或简称
mmap
)使用内存映射文件 I/O。这个
mmap
系统调用允许 Cassandra 使用操作系统的虚拟内存来保存数据文件的副本,因此读取 SSTable 的速度很快。缺点是,当 SSTable 的大小大于机器上的可用内存时,Linux
oom-killer
会终止 Cassandra。我之前已在DataStax 知识库中记录了此行为。

但是,这只是我的最佳猜测,因为您的帖子缺乏足够的详细信息,因此您需要检查我上面链接的知识库文章并进一步调查。干杯!

© www.soinside.com 2019 - 2024. All rights reserved.