h2o 脚本无法通过 cron 运行

问题描述

在 Linux 中通过 h2o 使用 cron 库运行 R 脚本时遇到困难。

脚本在交互模式下运行良好,但在 cron 中调度时脚本失败。

导致错误的部分代码

automl_h2o_models <- h2o.automl(
    x = predictors,y = target,training_frame = train_conv_h2o,leaderboard_frame = valid_conv_h2o,max_runtime_secs = 3600,seed = 1234
)

max_runtime_secs 设置为 1800 时没有问题,但超出此值的任何内容都会导致以下错误

Error in .h2o.doSafeREST(h2oRestApiVersion = h2oRestApiVersion,urlSuffix = page,: 
  Unexpected CURL error: getaddrinfo() thread Failed to start

我使用的是 Ubuntu 20.04,R 版本 3.6.3,h2o 版本 3.32.1.3

解决方法

该问题与 linux 中的描述符设置数量有关。以交互模式运行脚本时,cron 环境与系统环境不同。

作为解决方案,我在 cron 中使用了额外的参数:

0 18 21 6 * ulimit -nS 1048576 && Rscript <script_name>

然后错误消失,脚本正确运行。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...