当我通过OpenCpu调用自定义包方法时,无法通过sparklyr包连接到spark集群

时间:2017-09-28 08:40:22

标签: java r apache-spark sparklyr opencpu

我创建了一个R包,它使用了一个虚拟hello函数中的sparklyr功能。我的包作为一个非常简单的事情连接到火花集群,打印火花版本和断开连接。该包已成功清理并构建,并已从R和Rstudio成功执行。

# Connect to Spark cluster
  spark_conn <-  sparklyr::spark_connect(master = "spark://elenipc.home:7077", spark_home = '/home/eleni/spark-2.2.0-bin-hadoop2.7/')

# Print the version of Spark
  sv<- sparklyr::spark_version(spark_conn)
  print(sv)

  # Disconnect from Spark
  sparklyr::spark_disconnect(spark_conn)

能够从OpenCpu rest api执行hello函数对我来说非常重要。 (我使用opencpu api来执行许多其他自定义创建的包。) 当调用opencpu api时:

curl http://localhost/ocpu/user/rstudio/library/myFirstBigDataPackage/R/hello/print -X POST

我收到以下回复:

Failed while connecting to sparklyr to port (8880) for sessionid (89615): Gateway in port (8880) did not respond.
Path: /home/eleni/spark-2.2.0-bin-hadoop2.7/bin/spark-submit
Parameters: --class, sparklyr.Shell, '/home/rstudio/R/x86_64-pc-linux-gnu-library/3.4/sparklyr/java/sparklyr-2.2-2.11.jar', 8880, 89615
Log: /tmp/ocpu-temp/file26b165c92166_spark.log


---- Output Log ----
Error occurred during initialization of VM
Could not allocate metaspace: 1073741824 bytes

---- Error Log ----

In call:
force(code)

当然为java和amp;分配更多内存spark执行者无法解决问题。权限问题也被丢弃,因为我已经配置了etc/apparmor.d/opencpu.d/custom文件,以便允许opencpu拥有对spark的rwx权限。这似乎是一个我不知道如何面对的连接问题。在通过opencpu api方法调用期间,火花日志甚至不打印。

您的信息我的环境配置如下:

  • java版“1.8.0_65”
  • R版本3.4.1
  • RStudio版本1.0.153
  • 火花2.2.0彬hadoop2.7
  • opencpu 1.5(与我的Ubuntu 14.04.3 LTS兼容)

非常感谢你的支持和时间!!!

0 个答案:

没有答案