【发布时间】:2016-04-28 03:44:43
【问题描述】:
我尝试执行一个非常基本的 Spark 操作 (head()) 来收集我从 R 数据帧创建的 Spark DataFrame 的输出。
我想在yarn-client 部署模式下执行此操作。我在集群的所有节点上都安装了R。
当我通过 RStudio 运行此应用程序时:
Sys.setenv(SPARK_HOME = "/usr/local/spark160")
library(SparkR, lib.loc = c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib")))
sc <- sparkR.init(master="yarn-client", appName = "Spark Test",
sparkHome = "/usr/local/spark160/")
sqlContext <- sparkRSQL.init(sc)
df <- createDataFrame(sqlContext, iris)
head(df)
我在每个节点上都收到此错误
Java.net.SocketTimeoutException:接受超时
但是当我直接从SparkR shell(总是在yarn-client)运行相同的代码时,一切正常。
我注意到,当我想从 HDFS 或 HIVE 源收集 DataFrame 时,这种差异不会发生。
【问题讨论】:
标签: r apache-spark rstudio sparkr