2017-01-26 7 views
0

Ich versuche SparkR mit RStudio, aber es scheint nicht zu funktionieren. Ich habe die vorgeschlagenen Lösungen auf andere Fragen versucht, aber ich kann immer noch nicht herausfinden, warum es nicht läuft.Running SparkR von RStudio gibt "Kann Programm Rscript nicht ausführen"

Der Code bei mir läuft wie folgt

if (nchar(Sys.getenv("SPARK_HOME")) < 1) { 
    Sys.setenv(SPARK_HOME = "c://spark") 
} 
library(SparkR) 
library(SparkR, lib.loc = c(file.path(Sys.getenv("SPARK_HOME"), "R", "lib"))) 

sc<-sparkR.session(master="spark://192.168.56.1:7077",appName = "R Spark", sparkConfig = list(spark.cassandra.connection.host="localhost"), sparkPackages = "datastax:spark-cassandra-connector:1.6.0-s_2.11") 
df<- as.DataFrame(faithful) 
showDF(df) 

Die Botschaft, die ich erhalten, ist

Error in invokeJava(isStatic = FALSE, objId$id, methodName, ...) : 
    org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 1.0 failed 4 times, most recent failure: Lost task 0.3 in stage 1.0 (TID 4, 192.168.56.1): java.io.IOException: Cannot run program "Rscript": 
CreateProcess error=2, Das System kann die angegebene Datei nicht finden 
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) 
    at org.apache.spark.api.r.RRunner$.createRProcess(RRunner.scala:348) 
    at org.apache.spark.api.r.RRunner$.createRWorker(RRunner.scala:386) 
    at org.apache.spark.api.r.RRunner.compute(RRunner.scala:69) 
    at org.apache.spark.api.r.BaseRRDD.compute(RRDD.scala:50) 
    at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:319) 
    at org.apache.spark.rdd.RDD.iterator(RDD.scala:283) 
    at org.apache.spark.rdd.MapPartitionsRDD.compute(MapPartitionsRDD.scala:38) 
    at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:319) 
    at org.apache.spark.rdd.RDD.iterator(RDD.scala:283) 
    at org.apache.spark.rdd.MapPartitionsRDD. 

Ich versuche es auf einem eigenständigen Cluster mit 1 Arbeiter zu laufen,

Spark Version ist 2.0.2

RStudio: 1.0.136

R: 3.3.2

Antwort

0

Ich hatte ein ähnliches Problem unter RStudio mit einem 2-Knoten-Cluster.

Das Problem ist, dass, während Ihr R-Treiber-Programm R installiert hat, Ihr Worker-Knoten nicht (oder zumindest nicht über Rscript in seinem Ausführungspfad). Wenn es versucht, ein wenig R-Code auf dem Worker statt des Masters auszuführen, kann es Rscript nicht finden.

Lösung: Installieren Sie R und Rscript auf Ihrem Worker-Knoten.

Ich hoffe, das hilft!

Verwandte Themen