2015-06-03 21 views
6

Come si organizza il flusso di lavoro di sviluppo Spark?Flusso di lavoro dell'app Apache Spark

Il mio modo:

  1. servizio Hadoop/filato locale.
  2. Servizio scintilla locale.
  3. Intellij su uno schermo
  4. Terminal con l'esecuzione della console SBT
  5. Dopo essere passato ad Spark codice app, posso passare al terminale ed eseguire "pacchetto" per compilare al vaso e "submitSpark", che è compito STB che corre a scintilla presentare
  6. Attendere eccezione nella console SBT :)

ho anche provato a lavorare con scintilla scocca:

  1. guscio Run e il carico previ app scritta in modo esplicito.
  2. Write linea in guscio
  3. valutarla
  4. Se va bene copia a IDE
  5. Dopo pochi 2,3,4, incollare il codice a IDE, compilare scintilla app e ricominciare

Is c'è un modo per sviluppare le applicazioni Spark più velocemente?

risposta

4

I sviluppare la logica di nucleo di nostri posti di lavoro Spark utilizzando un ambiente interattivo per la prototipazione rapida. Utilizziamo lo Spark Notebook in esecuzione su un cluster di sviluppo a tale scopo.

Una volta che ho prototipato la logica e funziona come previsto, "industrializzo" il codice in un progetto Scala, con il ciclo di vita di generazione classico: creare test; costruisci, impacchetta e crea artefatti di Jenkins.

+0

Spark Notebook è fantastico :) – zie1ony

1

Ho trovato script di scrittura e utilizzo: load /: copia le cose semplificate un po 'perché non ho bisogno di impacchettare nulla. Se usi sbt ti suggerisco di avviarlo e di usare ~ package in modo tale che pacchetti automaticamente il barattolo quando vengono apportate modifiche. Alla fine, naturalmente, tutto finirà in un contenitore di applicazioni, questo è per la prototipazione e l'esplorazione.

  1. Spark locale
  2. Vim
  3. Spark-Shell
  4. API
  5. Console
1

Sviluppiamo applicazioni nostri utilizzando un IDE (IntelliJ perché abbiamo codice di applicazioni del tuo scintilla a Scala) utilizzando lo strumento scalaTest per i test.

In questi test usiamo local [*] come SparkMaster per consentire il debug.

Per i test di integrazione abbiamo utilizzato Jenkins e abbiamo lanciato uno script "end-to-end" come applicazione Scala.

Spero che questo sarà utile