Запустить несколько кластеров H2O изнутри R

r windows cmd cluster-computing h2o

1735 просмотра

1 ответ

191 Репутация автора

Мое намерение состоит в том, чтобы запустить два или более кластеров / экземпляров H2O (не два или более узлов!) Изнутри R на одном компьютере / сервере, чтобы позволить нескольким пользователям одновременно подключаться к H2O. Кроме того, я хочу иметь возможность отключать и перезапускать кластеры отдельно, также изнутри R.

Я уже знаю, что не могу управлять несколькими кластерами H2O просто изнутри R, поэтому я попытался запустить два кластера из командной строки в Windows 10:

java -Xmx1g -jar h2o.jar -name testCluster1 -nthreads 1  -port 54321
java -Xmx1g -jar h2o.jar -name testCluster2 -nthreads 1  -port 54323

Это прекрасно работает для меня:

library(h2o)

h2o.init(startH2O = FALSE, ip = "localhost", port = 54321) 
Connection successful!

R is connected to the H2O cluster: 
H2O cluster uptime:         4 minutes 8 seconds 
H2O cluster version:        3.8.3.2 
H2O cluster name:           testCluster 
H2O cluster total nodes:    1 
H2O cluster total memory:   0.87 GB 
H2O cluster total cores:    4 
H2O cluster allowed cores:  1 
H2O cluster healthy:        TRUE 
H2O Connection ip:          localhost 
H2O Connection port:        54321 
H2O Connection proxy:       NA 
R Version:                  R version 3.2.5 (2016-04-14) 

h2o.init(startH2O = FALSE, ip = "localhost", port = 54323)
Connection successful!

R is connected to the H2O cluster: 
H2O cluster uptime:         3 minutes 32 seconds 
H2O cluster version:        3.8.3.2 
H2O cluster name:           testCluster2 
H2O cluster total nodes:    1 
H2O cluster total memory:   0.87 GB 
H2O cluster total cores:    4 
H2O cluster allowed cores:  1 
H2O cluster healthy:        TRUE 
H2O Connection ip:          localhost 
H2O Connection port:        54323 
H2O Connection proxy:       NA 
R Version:                  R version 3.2.5 (2016-04-14) 

Теперь я хочу сделать то же самое изнутри R с помощью команды system ().

launchH2O <-  as.character("java -Xmx1g -jar h2o.jar -name testCluster -nthreads 1  -port 54321")
system(command = launchH2O, intern =TRUE)

Но я получаю сообщение об ошибке:

[1] "Error: Unable to access jarfile h2o.jar"
attr(,"status")
[1] 1
Warning message:
running command 'java -Xmx1g -jar h2o.jar -name testCluster -nthreads 1  -port 54321' had status 1 

Попытка

system2(command = launchH2O)

Я получаю предупреждающее сообщение и не могу подключиться к кластеру:

system2(command = launchH2O)
Warning message:
running command '"java -Xmx1g -jar h2o.jar -name testCluster -nthreads 1  -port 54321"' had status 127 

h2o.init(startH2O = FALSE, ip = "localhost", port = 54321)
Error in h2o.init(startH2O = FALSE, ip = "localhost", port = 54321) : 
Cannot connect to H2O server. Please check that H2O is running at http://localhost:54321/

Любые идеи, как запустить / выключить два или более кластеров H2O из R? Заранее спасибо!

Примечание 1: я использую только локальное устройство Windows для тестирования, на самом деле я хочу создать несколько кластеров H2O на сервере Linux.

Примечание 2: я попробовал это и с R GUI (3.2.5) и с R Studio (версия 0.99.892), и я запустил их как администратор. Файл h2o.jar находится в моем рабочем каталоге, а моя версия на Java (сборка 1.8.0_91-b14).

Примечание 3: Системная информация: - версия пакета h2o & h2o R: 3.8.3.2 - Windows 10 Home, версия 1511 - 16 ОЗУ, процессор Intel Core i5-6200U с 2,30 ГГц

Автор: constiii Источник Размещён: 18.07.2016 03:59

Ответы (1)


4 плюса

18633 Репутация автора

Решение

РЕДАКТИРОВАТЬ: я изменил на intern = FALSE, в следующих примерах, на основе комментариев


Вам просто нужно изменить каталог; это либо то, либо не установка wait = FALSE (для запуска команды в фоновом режиме).

launchH2O <- "java -Xmx1g -jar h2o.jar -name testCluster -nthreads 1 -port 54321"
savewd <- setwd("/path/to/h2ojar/")
system(command = launchH2O, intern =FALSE wait=FALSE)
setwd(savewd)

Последняя строка и назначение savewdпросто сохранить рабочий каталог. В качестве альтернативы это также должно работать:

launchH2O <- "java -Xmx1g -jar /path/to/h2ojar/h2o.jar -name testCluster -nthreads 1 -port 54321"
system(command = launchH2O, intern =FALSE, wait=FALSE)

Когда в Linux есть другой способ:

launchH2O <- "bash -c 'nohup java -Xmx1g -jar /path/to/h2ojar/h2o.jar -name testCluster -nthreads 1 -port 54321 &'"
system(command = launchH2O, intern =FALSE)

(Поскольку последняя команда явно ставит ее в фоновом режиме, я не думаю, что вам нужно ее устанавливать wait=FALSE.)

Автор: Darren Cook Размещён: 18.07.2016 09:07
Вопросы из категории :
32x32