Sto tentando di inviare un JAR con il lavoro Spark nel cluster YARN dal codice Java. Sto usando SparkLauncher a presentare esempio SparkPi:Spark Launcher in attesa di completamento del lavoro infinitamente
Process spark = new SparkLauncher()
.setAppResource("C:\\spark-1.4.1-bin-hadoop2.6\\lib\\spark-examples-1.4.1-hadoop2.6.0.jar")
.setMainClass("org.apache.spark.examples.SparkPi")
.setMaster("yarn-cluster")
.launch();
System.out.println("Waiting for finish...");
int exitCode = spark.waitFor();
System.out.println("Finished! Exit code:" + exitCode);
ci sono due problemi:
- Pur presentando in modalità "filo-cluster", l'applicazione è con successo presentata al filato ed esegue con successo (è visibile nell'interfaccia utente YARN, riportato come SUCCESS e pi viene stampato nell'output). Tuttavia, l'applicazione di invio non viene mai notificata che l'elaborazione è terminata - si blocca all'infinito dopo la stampa "In attesa di finire ..." È possibile trovare il log del contenitore here
- Mentre si invia in modalità "filato-client", l'applicazione non appare nell'interfaccia utente di YARN e l'applicazione di invio si blocca su "In attesa di finire ..." Quando il codice sospeso viene ucciso, l'applicazione viene visualizzata nell'interfaccia utente YARN e viene segnalata come SUCCESS, ma l'output è vuoto (non viene stampato pi su). Il registro del contenitore può essere trovato here
ho cercato di eseguire l'applicazione A entrambi con Oracle Java 7 e 8.
Nel mio caso, ho avuto un problema di classpath, quindi la scintilla è terminata immediatamente. Quindi, se sembra a qualcun altro che semplicemente non sta chiamando la tua app scintilla, anche questa risposta funziona. – jmmut