gpt4 book ai didi

Java作业不一致地给出OOM错误

转载 作者:可可西里 更新时间:2023-11-01 16:39:13 24 4
gpt4 key购买 nike

我已经在 Linux 机器上计划(cron)了一个 jar 文件。 jar 通过 JDBC 与 Hive 服务器连接并运行选择查询,之后我将所选数据写入 csv 文件。每天的数据量约为 1.5 亿条记录,csv 文件约为。大小为 30GB。

现在,这个作业并不是每次调用都完成,导致写入部分数据。我用 dmesg | 检查了 PID 是否有错误grep -E 31866 我可以看到:

[1208443.268977] Out of memory: Kill process 31866 (java) score 178 or sacrifice child
[1208443.270552] Killed process 31866 (java) total-vm:25522888kB, anon-rss:11498464kB, file-rss:104kB, shmem-rss:0kB

我正在使用内存选项调用我的 jar,例如:java -Xms5g -Xmx20g -XX:+UseG1GC -cp jarFile

我想知道错误文本的确切含义,是否可以应用任何解决方案来确保我的作业不会运行 OOM。有线的事情是每次行为不一致时作业都不会失败。

最佳答案

该消息实际上来自 linux 内核,而不是您的工作。这意味着您的系统内存不足,内核已经终止了您解决问题的工作(否则您可能会遇到内核崩溃)。

您可以尝试修改您的应用程序以降低内存需求(例如,增量加载数据或编写分布式作业以在集群上完成所需的转换,而不仅仅是一台机器)。

关于Java作业不一致地给出OOM错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45046461/

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