Я пытаюсь выполнить очень простое действие Spark (head()
) для сбора выходных данных из фрейма данных Spark, который я создал из фрейма данных R. Я хочу сделать это в режиме развертывания 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
(всегда в yarn-client
), все работает.
Я заметил, что эта разница не возникает для меня, когда я хочу собрать DataFrame из источников HDFS или HIVE.