私はsparkRコードを書いて、EMRクラスター上でspark-submitまたはsparkRを使用して送信できるかどうか疑問に思っています。EMRクラスタでspark-submitまたはsparkRを使用してSparkRスクリプトを実行するにはどうすればよいですか?
は、私には、例えば、いくつかの方法を試してみました:
Error in sparkR.sparkContext(master, appName, sparkHome, sparkConfigMap, :
JVM is not ready after 10 seconds
サンプルコード:
またはsparkR --no-保存mySparkScript.rなど..しかし、私はエラーの下に取得しています毎回 sparkR mySparkRScript.rを#Set the path for the R libraries you would like to use.
#You may need to modify this if you have custom R libraries.
.libPaths(c(.libPaths(), '/usr/lib/spark/R/lib'))
#Set the SPARK_HOME environment variable to the location on EMR
Sys.setenv(SPARK_HOME = '/usr/lib/spark')
#Load the SparkR library into R
library(SparkR, lib.loc = c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib")))
#Initiate a Spark context and identify where the master node is located.
#local is used here because the RStudio server
#was installed on the master node
sc <- sparkR.session(master = "local[*]", sparkEnvir = list(spark.driver.memory="2g"))
sqlContext <- sparkRSQL.init(sc)
注:直接貼り付けるか、source("mySparkRScript.R")を使用してコードをsparkr-shellで実行することができます。
参考:
- Crunching Statistics at Scale with SparkR on Amazon EMR
- SparkR Spark documentation
- R on Spark
- Executing-existing-r-scripts-from-spark-rutger-de-graaf
- Github