Mi piacerebbe capire l'interno della modalità di pianificazione FAIR di Spark. La cosa è che sembra non così bella come ci si aspetterebbe in base alla official Spark documentation:Come abilitare lo scheduler di Fair in Spark?
A partire dal Spark 0.8, è anche possibile configurare un'equa ripartizione tra i posti di lavoro. In base a una condivisione equa, Spark assegna le attività tra i lavori in modalità "round robin", in modo che tutti i lavori ricevano una quota approssimativamente uguale delle risorse del cluster. Ciò significa che i lavori brevi inviati durante l'esecuzione di un lungo lavoro possono iniziare a ricevere risorse immediatamente e ottenere comunque buoni tempi di risposta, senza attendere il completamento del lavoro lungo. Questa modalità è la migliore per le impostazioni multiutente.
Sembra che i lavori non siano gestiti allo stesso modo e gestiti effettivamente in quindici ordini.
per dare più informazioni sul tema:
Sto usando scintilla sul filato. Io uso l'API Java di Spark. Per abilitare la modalità fiera, Il codice è:
SparkConf conf = new SparkConf();
conf.set("spark.scheduler.mode", "FAIR");
conf.setMaster("yarn-client").setAppName("MySparkApp");
JavaSparkContext sc = new JavaSparkContext(conf);
Mi sono perso qualcosa?
In posti di lavoro di default piscina eseguito in parallelo, se sono presentate attraverso diversi thread, ho visto che corre parallela. Non pensiamo che abbiamo bisogno di creare pool per la semplice parallelizzazione dei lavori. "ogni pool ottiene una quota uguale del cluster (uguale anche in condivisione a ciascun lavoro nel pool predefinito)" da http://spark.apache.org/docs/latest/job-scheduling.html#default-behavior-of -pools – spats
Questo è corretto se # CPU> # attività da stadi non correlati. –