Introduzione allo Spark Streaming
Apache Spark Streaming è uno dei componenti essenziali di Apache Spark che è l'elaborazione in tempo reale dell'utilità dei dati che viene utilizzata per lo streaming dei dati in tempo reale, a differenza dei tradizionali processi batch Hadoop che sono stati utilizzati per eseguire processi batch dello streaming di dati in tempo reale. Si avvale della capacità di pianificazione rapida di Spark core al fine di eseguire analisi rapide di streaming spark che implicano essenzialmente l'ingestione dei dati sotto forma di micro e mini-batch per eseguire le trasformazioni RDD su tali insiemi di dati in un determinato periodo di finestra. Lo streaming di Apache Spark è destinato a consumare da molti flussi verso l'alto completando così la pipeline come quelli come Apache Kafka, Flume, RabbitMQ, ZeroMQ, Kinesis, socket TCP / IP, Twitter, ecc. I set di dati strutturati disponibili in Spark 2. Le versioni x + sono utilizzate per lo streaming strutturato.
Come funziona Spark Streaming?
- Nel caso di Spark Streaming, i flussi di dati sono divisi in batch fissi chiamati anche DStreams che è internamente una sequenza di tipi fissa del numero di RDD. Gli RDD vengono quindi elaborati utilizzando l'API Spark e i risultati restituiti, pertanto, sono in batch. Le operazioni di flusso discretizzate che sono trasformazioni con stato o senza stato consistono anche in operazioni di output, operazioni di input DStream e anche ricevitori. Questi Dstreams sono il livello base di astrazione fornito dallo streaming di Apache Spark, che è un flusso continuo di RDD Spark.
- Fornisce inoltre le funzionalità per la tolleranza agli errori da utilizzare per Dstreams abbastanza simili agli RDD a condizione che la copia dei dati sia disponibile e quindi qualsiasi stato possa essere ricalcolato o riportato allo stato originale facendo uso del grafico della discendenza di Spark sul insieme di RDD. Il punto da ponderare qui è che Dstreams viene utilizzato per tradurre le operazioni di base sul loro insieme di RDD sottostanti. Queste trasformazioni basate su RDD vengono eseguite e calcolate da Spark Engine. Le operazioni Dstream sono utilizzate per fornire il livello base di dettagli e fornire allo sviluppatore un alto livello di API a fini di sviluppo.
Vantaggi dello Spark Streaming
Ci sono vari motivi per cui l'uso dello streaming Spark è un ulteriore vantaggio. Ne discuteremo alcuni nel nostro post qui.
- Unificazione di flussi di lavoro Stream, Batch e interattivi: i set di dati possono essere facilmente integrati e utilizzati con qualsiasi carico di lavoro che non è mai stato un compito facile da eseguire in sistemi continui e quindi funge da motore singolo.
- Livello avanzato di analisi insieme all'apprendimento automatico e alle query SQL: quando si lavora su carichi di lavoro complessi, richiede sempre l'uso dell'apprendimento continuo e anche con i modelli di dati aggiornati. La parte migliore di questo componente di Spark è che si integra facilmente con MLib o qualsiasi altra libreria di apprendimento automatico dedicata.
- Fallimento rapido e ripristino anche per il decentratore: il ripristino degli errori e la tolleranza agli errori sono una delle funzionalità principali di base disponibili nello streaming Spark.
- Bilanciamento del carico: i colli di bottiglia sono spesso causati tra i sistemi a causa di carichi e saldi irregolari che vengono effettuati e quindi diventa abbastanza necessario bilanciare il carico in modo uniforme che viene gestito automaticamente da questo componente di Spark.
- Prestazioni: grazie alla sua tecnica di calcolo in memoria che utilizza la memoria interna più del disco rigido esterno, le prestazioni di Spark sono molto buone ed efficienti rispetto ad altri sistemi Hadoop.
Spark Streaming Operations
1) Operazioni di trasformazione su streaming Spark: allo stesso modo in cui i dati vengono trasformati dall'insieme di RDD qui anche i dati vengono trasformati da DStreams e offre molte trasformazioni disponibili sui normali RDD Spark. Alcuni di loro sono:
- Map (): viene utilizzato per restituire una nuova forma di Dstream quando ogni elemento viene passato attraverso una funzione.
Ad esempio, data.map (line => (line, line.count)) - flatMap (): questo è simile alla mappa ma ogni elemento è mappato su 0 o più unità mappate.
Esempio, data.flatMap (lines => lines.split (”“)) - filter (): questo viene usato per restituire un nuovo set di Dstream restituendo i record che sono filtrati per il nostro uso.
Esempio, filtro (valore => valore == "scintilla") - Union (): viene utilizzato per restituire un nuovo set di Dstream che consiste dei dati combinati dai Dstreams di input e altri Dstreams.
Esempio, Dstream1.union (Dstream2) .union (Dstream3)
2) Aggiorna stato tramite operazione chiave
Ciò consente di mantenere uno stato arbitrario anche quando lo aggiorna continuamente con una nuova informazione. Verrà richiesto di definire lo stato che può essere di tipo arbitrario e di definire la funzione di aggiornamento dello stato, il che significa specificare lo stato utilizzando lo stato precedente e anche fare uso di nuovi valori da un flusso di input. In ogni sistema batch, una scintilla applicherà la stessa funzione di aggiornamento dello stato per tutti i tasti prevalenti.
Esempio:
funzione di aggiornamento def (NV, RC):
se RC è Nessuno:
RC = 0
somma di ritorno (NV, RC) #Nv sono nuovi valori e RC esegue il conteggio
Conclusione
Spark Stream è uno dei sistemi più efficienti per costruire la pipeline del tipo di streaming reale e quindi viene utilizzato per superare tutti i problemi che si incontrano utilizzando sistemi e metodi tradizionali. Pertanto, tutti gli sviluppatori che stanno imparando a farsi strada nella componente spark streaming hanno fatto un passo sul singolo punto più giusto di un framework che può essere utilizzato per soddisfare tutte le esigenze di sviluppo. Pertanto, possiamo tranquillamente affermare che il suo utilizzo migliora la produttività e le prestazioni nei progetti e nelle aziende che stanno cercando o non vedono l'ora di utilizzare l'ecosistema dei big data. Spero ti sia piaciuto il nostro articolo. Resta sintonizzato per altri articoli come questi.
Articoli consigliati
Questa è una guida a Spark Streaming. Qui discutiamo l'introduzione a Spark Streaming, come funziona insieme a vantaggi ed esempi. Puoi anche consultare i nostri altri articoli correlati -
- Che cos'è lo streaming Hadoop?
- Comandi Spark
- Tutorial su come installare Spark
- Differenza tra Hadoop vs Spark
- Spark DataFrame | vantaggi
- Top 6 componenti di Spark