agua
agua copied to clipboard
Error in h2o.getConnection(): No active connection to an H2O cluster.
With tune::tune_grid
, I bump into the "Warning: All models failed ...", which is due to "Error in h2o.getConnection()
: No active connection to an H2O cluster ...". Although the output of h2o.getConnection()
immediately before and after tune_grid
suggest everything should be OK. The code is pretty much the standard example on reference site.
library(ggplot2)
library(tidymodels)
library(agua)
#>
#> Attaching package: 'agua'
#> The following object is masked from 'package:workflowsets':
#>
#> rank_results
library(h2o)
#>
#> ----------------------------------------------------------------------
#>
#> Your next step is to start H2O:
#> > h2o.init()
#>
#> For H2O package documentation, ask for help:
#> > ??h2o
#>
#> After starting H2O, you can use the Web UI at http://localhost:54321
#> For more information visit https://docs.h2o.ai
#>
#> ----------------------------------------------------------------------
#>
#> Attaching package: 'h2o'
#> The following objects are masked from 'package:stats':
#>
#> cor, sd, var
#> The following objects are masked from 'package:base':
#>
#> %*%, %in%, &&, ||, apply, as.factor, as.numeric, colnames,
#> colnames<-, ifelse, is.character, is.factor, is.numeric, log,
#> log10, log1p, log2, round, signif, trunc
h2o::h2o.init()
#> Connection successful!
#>
#> R is connected to the H2O cluster:
#> H2O cluster uptime: 50 minutes 51 seconds
#> H2O cluster timezone: America/New_York
#> H2O data parsing timezone: UTC
#> H2O cluster version: 3.46.0.5
#> H2O cluster version age: 16 days
#> H2O cluster name: H2O_started_from_R_siava_dqu656
#> H2O cluster total nodes: 1
#> H2O cluster total memory: 13.28 GB
#> H2O cluster total cores: 32
#> H2O cluster allowed cores: 32
#> H2O cluster healthy: TRUE
#> H2O Connection ip: localhost
#> H2O Connection port: 54321
#> H2O Connection proxy: NA
#> H2O Internal Security: FALSE
#> R Version: R version 4.4.1 (2024-06-14 ucrt)
h2o::h2o.connect()
#> Connection successful!
#>
#> R is connected to the H2O cluster:
#> H2O cluster uptime: 50 minutes 54 seconds
#> H2O cluster timezone: America/New_York
#> H2O data parsing timezone: UTC
#> H2O cluster version: 3.46.0.5
#> H2O cluster version age: 16 days
#> H2O cluster name: H2O_started_from_R_siava_dqu656
#> H2O cluster total nodes: 1
#> H2O cluster total memory: 13.28 GB
#> H2O cluster total cores: 32
#> H2O cluster allowed cores: 32
#> H2O cluster healthy: TRUE
#> H2O Connection ip: localhost
#> H2O Connection port: 54321
#> H2O Connection proxy: NA
#> H2O Internal Security: FALSE
#> R Version: R version 4.4.1 (2024-06-14 ucrt)
data(ames)
set.seed(4595)
data_split <- ames |>
mutate(Sale_Price = log10(Sale_Price)) |>
initial_split(strata = Sale_Price)
ames_train <- training(data_split)
ames_test <- testing(data_split)
cv_splits <- vfold_cv(ames_train, v = 10, strata = Sale_Price)
ames_rec <-
recipe(Sale_Price ~ Gr_Liv_Area + Longitude + Latitude, data = ames_train) |>
step_log(Gr_Liv_Area, base = 10) |>
step_ns(Longitude, deg_free = tune("long df")) |>
step_ns(Latitude, deg_free = tune("lat df"))
lm_mod <- linear_reg(penalty = tune()) |>
set_engine("h2o")
lm_wflow <- workflow() |>
add_model(lm_mod) |>
add_recipe(ames_rec)
grid <- lm_wflow |>
extract_parameter_set_dials() |>
grid_regular(levels = 5)
h2o.getConnection()
#> IP Address: localhost
#> Port : 54321
#> Name : NA
#> Session ID: _sid_b5d8
#> Key Count : 0
ames_res <- tune_grid(
lm_wflow,
resamples = cv_splits,
grid = grid,
control = control_grid(save_pred = TRUE,
backend_options = agua_backend_options(parallelism = 5))
)
#> Warning: All models failed. Run `show_notes(.Last.tune.result)` for more
#> information.
h2o.getConnection()
#> IP Address: localhost
#> Port : 54321
#> Name : NA
#> Session ID: _sid_b5d8
#> Key Count : 0
agua::h2o_running(verbose = FALSE)
#> [1] TRUE
show_notes(.Last.tune.result)
#> unique notes:
#> ────────────────────────────────────────────────────────────────────────────────
#> Error in h2o.getConnection(): No active connection to an H2O cluster. Did you run `h2o.init()` ?
Latest RStudio is run with both normal and administrative privileges (same issue - although we should not need admin rights) on Windows 11 Pro x64 machine. JRE (1.8.0_421) and JDK (22) are installed, and all Java paths (JRE_HOME, JDK_HOME, JAVA_HOME = JRE_HOME) are all A-OK! I went so-far as to use rJava to manually initialize a Java VM instance with no effect. The command demo(h2o.kmeans)
runs wihout a problem and produces expected results.
The only other thing of note is that running agua::h2o_start()
produces weird output that it should not be. I get "permission denied error" on user folder which should be accessible even without admin rights (folder-access issue is the same with h2o package) and I get "no Java error" that shouldn't be there. Could this be the root of the issue: "h2o cluster connection is there as far as h2o package is concerned but agua (which adds supports for tidymodels) does not recognize Java and the existing h2o connection"?!
h2o::h2o.init()
#>
#> H2O is not running yet, starting it now...
#>
#> Note: In case of errors look at the following log files:
#> C:\Users\siava\AppData\Local\Temp\Rtmp08HkaV\filec5072151a2b/h2o_siava_started_from_r.out
#> C:\Users\siava\AppData\Local\Temp\Rtmp08HkaV\filec50cc92881/h2o_siava_started_from_r.err
#>
#>
#> Starting H2O JVM and connecting:
#> Warning in file(con, "r"): cannot open file
#> 'C:\Users\siava\AppData\Local\Temp\Rtmp08HkaV\filec5072151a2b/h2o_siava_started_from_r.out':
#> Permission denied
#> Error in file(con, "r"): cannot open the connection
h2o::h2o.connect()
#> Connection successful!
#>
#> R is connected to the H2O cluster:
#> H2O cluster uptime: 3 seconds 213 milliseconds
#> H2O cluster timezone: America/New_York
#> H2O data parsing timezone: UTC
#> H2O cluster version: 3.46.0.5
#> H2O cluster version age: 16 days
#> H2O cluster name: H2O_started_from_R_siava_ijf963
#> H2O cluster total nodes: 1
#> H2O cluster total memory: 14.14 GB
#> H2O cluster total cores: 32
#> H2O cluster allowed cores: 32
#> H2O cluster healthy: TRUE
#> H2O Connection ip: localhost
#> H2O Connection port: 54321
#> H2O Connection proxy: NA
#> H2O Internal Security: FALSE
#> R Version: R version 4.4.1 (2024-06-14 ucrt)
h2o::h2o.getConnection()
#> IP Address: localhost
#> Port : 54321
#> Name : NA
#> Session ID: _sid_8c41
#> Key Count : 0
agua::h2o_running(verbose = TRUE)
#> [1] TRUE
agua::h2o_start()
#> Warning: JAVA not found, H2O may take minutes trying to connect.
agua::h2o_remove_all()
agua::h2o_end()
agua::h2o_start()
#> Warning: JAVA not found, H2O may take minutes trying to connect.
#> Error in .h2o.__checkConnectionHealth(): H2O connection has been severed. Cannot connect to instance at http://localhost:54321/
#> Failed to connect to localhost port 54321 after 2246 ms: Couldn't connect to server
agua::h2o_start()
#> Warning: JAVA not found, H2O may take minutes trying to connect.
#> Warning in file(con, "r"): cannot open file
#> 'C:\Users\siava\AppData\Local\Temp\Rtmp08HkaV\filec503d932872/h2o_siava_started_from_r.out':
#> Permission denied
#> Error in file(con, "r"): cannot open the connection
agua::h2o_start()
#> Warning: JAVA not found, H2O may take minutes trying to connect.
h2o::h2o.getConnection()
#> IP Address: localhost
#> Port : 54321
#> Name : NA
#> Session ID: _sid_92dd
#> Key Count : 0
agua::h2o_running(verbose = TRUE)
#> [1] TRUE
agua::h2o_remove_all()
agua::h2o_end()