Come comprendere passo dopo passo il codice sorgente di Apache Spark


Migliore risposta

Ti suggerisco di leggere le versioni precedenti del codice di Spark.

Considera la versione 0.5 rilasciato nel 2012 apache / spark A quel tempo Spark aveva solo circa 70 file di codice sorgente e tutti questi file erano di piccole dimensioni. Dai unocchiata al codice sorgente di RDD qui: apache / spark Tutto è così semplice e conciso.

Inoltre, nota che larchitettura di Spark non ha ” t è cambiato radicalmente da allora. Gli sviluppatori hanno appena aggiunto un sacco di gestione degli errori, ottimizzazioni e integrazione con tecnologie esterne come Yarn o Kafka.

Quando capirai come funzionava Spark nel 2012, non sarebbe un problema capire come funziona Spark oggi.

Inoltre ti suggerisco di leggere queste note: JerryLead / SparkInternals . Forniscono una panoramica dellarchitettura interna di Spark.

Risposta

Per tornare sulla risposta di Noam Ben-Ami – SE, sei un utente end-to-end Spark può essere abbastanza esaustivo e difficile da imparare.

Anche se conosci Bash, Python e SQL questa è solo la punta delliceberg dellutilizzo di Spark. Se scegli Spark “end-to-end” rispetto a un analista di scripting Python / SQL, ha molti componenti che sono di per sé grandi argomenti da imparare.

Certo, puoi usare Spark localmente (il tuo laptop) e senza Hadoop, ma nel “mondo reale” non utilizzerai Spark in questo modo. È bello imparare un po di sintassi, ma non commettere errori, nessuno ti assumerà per fare “Spark” in quel contesto (* gioco di parole).

Lintera ragione per usare Spark è la performance e sei seduto su un file system distribuito noto anche come “Big Data”. Ciò significa che quando scrivi codice per i tuoi lavori Spark capisci cose come partizioni, nodi, serializzazione, JVM, vcore, esecutori, memoria, memoria e disco, shuffle, file compressi, formati colonnari (parquet) e simili lungo tutto il modo di spostare i dati da S3 a RDD, DataFrames, DataSet (solo Java / Scala) e Spark SQL al tuo set di dati finale.

Per me questo è molto simile a quando qualcuno direbbe di sapere ” Excel “e poi chiederesti loro se possono scrivere una macro di base da zero e ottenere quel cervo sotto i fari.

Una possibile avventura in Spark includerebbe:

  1. Creazione del tuo cluster Hadoop (nodi, memoria, istanze EC2, ecc.)
  2. Configurazione YARN (nodi, core, istanze, esecutori, gestione della memoria, driver, memoria overhead, trasmissione, in memoria e su gestione del disco, ecc.) – Ognuno di questi può bloccare / uccidere i tuoi lavori e non ottieni un singolo passo avanti con carichi di dati anche banali se uno di questi non funziona, con i tuoi dati.
  3. Documentazione di Spark RDD
  4. Documentazione di Spark DataFrames
  5. Documentazione di Spark SQL
  6. Inevitabilmente scriverai codice in # 3–5 che esporrà i problemi del # 2.
  7. A questo punto probabilmente eseguirai il debug come minimo, codice Java e, se utilizzi Python, errori del gateway py4J per problemi di tipo di dati con Python e oggetti di dati in streaming.

Molte persone possono scrivere funzioni / metodi su RDD, DataFrame e Spark SQL in pochi minuti e se hanno esperienza con Python e SQL, forse persino inghiottire RDD, DataFrame e documentazione SQL in pochi giorni, ma quando il tuo lavoro Spark viene interrotto per una trasmissione, un esecutore, unattività o un errore di memoria, niente di tutto ciò avrà importanza. Stai indossando la muta Spark e stai per fare un tuffo nel ventre di Spark [Java].

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *