问题描述
在 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>
然后错误消失,脚本正确运行。