Для запуска кода R мы подключаемся к кластеру искр с помощью библиотеки sparklyr.
Только в производственной среде, созданной с тем же сценарием и на той же архитектуре, что и test (ядро SUSE Linux 3.0.101-108.87), мы сталкиваемся с исключением при запуске случайного сеанса с использованием openssl. Мы используем CDH 5.12.2, R 3.5.1 и sparklyr 0.8.4. R был установлен с использованием следующего скрипта:
conda create -n OUR_R r==3.5.1 r-essentials
conda install r-essentials
conda install -y -n OUR_R r-sparklyr
Отправляя следующий код из oozie
library(sparklyr)
Sys.setenv(SPARK_HOME = "/opt/cloudera/parcels/CDH/lib/spark")
Sys.setenv(SPARK_HOME_VERSION = "1.6.0")
conf <- spark_config(use_default = FALSE)
conf$spark.yarn.queue <- "our_pool"
sc <- spark_connect(master = "yarn-client", config = conf)
, мы получаем этот вывод
Stdoutput *** caught illegal operation ***
Stdoutput address 0x7f548f084703, cause 'illegal operand'
Stdoutput
Stdoutput Traceback:
Stdoutput 1: openssl::rand_num(1)
Stdoutput 2: spark_session_random()
Stdoutput 3: start_shell(master = master, spark_home = spark_home, spark_version = version, app_name = app_name, config = config, jars = spark_config_value(config, "sparklyr.jars.default", list()), packages = spark_config_value(config, "sparklyr.defaultPackages"), extensions = extensions, environment = environment, shell_args = shell_args, service = service, remote = remote)
Stdoutput 4: shell_connection(master = master, spark_home = spark_home, app_name = app_name, version = version, hadoop_version = hadoop_version, shell_args = shell_args, config = config, service = spark_config_value(config, "sparklyr.gateway.service", FALSE), remote = spark_config_value(config, "sparklyr.gateway.remote", spark_master_is_yarn_cluster(master, config)), extensions = extensions)
Stdoutput 5: spark_connect(master = "yarn-client", config = conf)
Stdoutput An irrecoverable exception occurred. R is aborting now ...
Если мы передаем явноеПараметр сеанса для sparklyr соединяется корректно, но у нас возникают другие ошибки, вызывающие другие библиотеки ОС (в данном случае LAPACK), на этот раз вызывающие метод gam библиотеки mgcv.
Stdoutput *** caught illegal operation ***
Stdoutput address 0x7fa8faf5c703, cause 'illegal operand'
Stdoutput
Stdoutput Traceback:
Stdoutput 1: qr.default(G$X)
Stdoutput 2: qr(G$X)
Stdoutput 3: is.qr(qr)
Stdoutput 4: qr.coef(qr(G$X), etam)
Stdoutput 5: get.null.coef(G, ...)
Stdoutput 6: estimate.gam(G, method, optimizer, control, in.out, scale, gamma, ...)
Кто-нибудь сталкивался с такой проблемойдо? Мы попытались переустановить R и библиотеки, но без изменений, и такая же установка работает в тестовой среде, которая теоретически идентична.