2016-05-15 20 views
7

C'è una funzionalità piuttosto recente (primavera 2015) che sembra destinata a consentire l'invio programmato di una scintilla.Come utilizzare la funzione di invio programmatico della scintilla

Ecco la JIRA https://issues.apache.org/jira/browse/SPARK-4924

Tuttavia, v'è incertezza (e mi contare pure) su come utilizzare effettivamente queste funzioni. Qui ci sono gli ultimi commenti nel jira:

enter image description here

Quando si chiede il vero autore di questo lavoro per spiegare ulteriormente è "guardare nella documentazione API".

Il "documento utente" è la documentazione di Spark API.

L'autore non ha fornito ulteriori dettagli e apparentemente ritiene che l'intera questione fosse auto-esplicativa. Se qualcuno può collegare qui i punti: in particolare - dove nei documenti API è descritta la nuova funzionalità Spark Submit - sarebbe apprezzato.

Ecco alcune delle informazioni che sto cercando -Pointers al seguente:

  • Quali funzionalità sono state aggiunte alle API scintilla
  • Come utilizziamo li
  • Eventuali esempi/altro la documentazione rilevante e/o codice

Aggiornamento la SparkLauncher cui la risposta accettata fa lanciare un semplice app sotto condizioni banali (master = local [*]). Resta da vedere come sarà utilizzabile su un cluster reale. Dopo aver aggiunto una dichiarazione di stampa al codice collegato:

println ("lanciato .. e in attesa ..") spark.waitFor()

Noi vediamo:

lanciato .. e waiting ..

Bene, questo è probabilmente un piccolo passo in avanti. Aggiornerà questa domanda mentre mi muovo verso un vero ambiente cluster.

risposta

7

Guardando i dettagli dello pull request, sembra che la funzionalità sia fornita dalla classe SparkLauncher, descritta nello API docs here.

public class SparkLauncher extends Object

Launcher per Spark applicazioni.

Utilizzare questa classe per avviare le applicazioni Spark a livello di codice. La classe utilizza un modello di builder per consentire ai client di configurare l'applicazione Spark e avviarla come processo secondario.

la documentazione API sono piuttosto minimale, ma ho trovato un post sul blog che dà un (codice disponibile anche in GitHub repo) worked example. Ho copiato una versione semplificata del l'esempio di seguito (non testato) nel caso in cui i collegamenti vanno stantio:

import org.apache.spark.launcher.SparkLauncher 

object Launcher extends App { 
    val spark = new SparkLauncher() 
    .setSparkHome("/home/user/spark-1.4.0-bin-hadoop2.6") 
    .setAppResource("/home/user/example-assembly-1.0.jar") 
    .setMainClass("MySparkApp") 
    .setMaster("local[*]") 
    .launch(); 
    spark.waitFor(); 
} 

Vedi anche:

+0

Grazie per il salto qui. Hai provato a usare quella classe direttamente? Il suo utilizzo è impegnativo in termini di impostazione corretta dell'ambiente. Ho capito che avevo letto la JIRA che le complicazioni potevano essere diminuite. Il semplice esame dei documenti API * non * sarà utile. Ti inviterò qui - per aver fatto questo po 'di scavo. – javadba

+0

Aggiornato l'OP per spiegare ulteriormente cosa sto cercando. – javadba

+0

Visualizza il tuo aggiornamento con SparkLauncher. Provalo ora. – javadba