Ich benutze sparkR (Funken 2.0.0, Garn) auf Cluster mit folgender Konfiguration: 5 Maschinen (24 Kerne + 200 GB RAM). Gesucht sparkR.session() mit zusätzlichen Argumenten laufen nur einen Prozentsatz der Gesamtressourcen zu meinem Job vergeben:SparkR - überschreiben Standardparameter in spark.conf
if(Sys.getenv("SPARK_HOME") == "") Sys.setenv(SPARK_HOME = "/...")
library(SparkR, lib.loc = file.path(Sys.getenv('SPARK_HOME'), "R", "lib"))
sparkR.session(master = "spark://host:7077",
appname = "SparkR",
sparkHome = Sys.getenv("SPARK_HOME"),
sparkConfig = list(spark.driver.memory = "2g"
,spark.executor.memory = "20g"
,spark.executor.cores = "4"
,spark.executor.instances = "10"),
enableHiveSupport = TRUE)
Das Seltsame ist, dass Parameter schienen sparkContext weitergegeben werden, aber zur gleichen Zeit, die ich am Ende mit einer Anzahl von X-Core-Executoren, die 100% Ressourcen verwenden (in diesem Beispiel sind 5 * 24 Kerne = 120 Kerne verfügbar; 120/4 = 30 Executoren).
ich versucht, einen anderen Funken defaults.conf ohne Standard-Paramater zugewiesen (also die einzigen Standardparameter sind solche existierte in Funken Dokumentation - sie leicht overrided werden sollte) die Schaffung von:
if(Sys.getenv("SPARK_CONF_DIR") == "") Sys.setenv(SPARK_CONF_DIR = "/...")
Auch wenn ich schaute auf der Spark-Benutzeroberfläche auf http://driver-node:4040 die Gesamtzahl der Executoren ist nicht korrekt (Registerkarte "Executors"), aber zur gleichen Zeit sind alle Config-Parameter in der Registerkarte "Umgebung" genau die gleichen wie die von mir in R-Skript zur Verfügung gestellt.
Wer weiß, was der Grund sein könnte? Ist das Problem mit R-API oder einem infrastrukturellen Cluster-spezifischen Problem (z. B. Garneinstellungen)