我在AWS上有一个2节点测试集群,安装了spark-2.0.0-bin-hadoop2.7。
这是我用来启动群集的代码。
./spark-ec2 -k blah -i blah.pem -r us-west-1 -s 1 -t r3.2xlarge launch --copy-aws-credentials blah
在rstudio中运行这两行后,查看端口8080显示58.8GB(0.0 B已使用)内存。
Sys.setenv(SPARK_HOME="/root/spark")
library(SparkR, lib.loc = c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib")))
当我运行此行并在端口8080上刷新页面时,内存使用量将更改为58.8 GB(使用53.8 GB)。
sparkR.session(master = "spark://[ip]:7077",
sparkHome = '/root/spark',
enableHiveSupport = FALSE)
当我尝试从数据帧创建一个消耗0.04857268 GB内存的火花数据帧时,我收到此错误:
acquisition <- as.DataFrame(orig)
17/11/04 14:27:23 WARN TaskSetManager: Stage 0 contains a task of very large size (166360 KB). The maximum recommended task size is 100 KB.
Exception in thread "dispatcher-event-loop-1" java.lang.OutOfMemoryError: Java heap space
我尝试添加此功能但得到同样的错误。
options(java.parameters = "-Xmx2048m")
install.packages("rJava")
library(rJava)
我被困住了。我花了三个周末在谷歌搜索这个问题,但无法弄明白。
感谢。