h2o 脚本无法通过 cron 运行

h2o script fails to run via cron

当 运行 R 脚本与 h2o 库通过 linux 中的 cron 时,我遇到了困难。

脚本在交互模式下运行完美,但在 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>

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