Introducere în Spark Streaming
Streamingul Apache Spark este una dintre componentele esențiale ale Apache Spark, care este procesarea în timp real a utilității de date, care este utilizată pentru a transmite datele în timp real, spre deosebire de lucrările tradiționale de lot Hadoop care au fost folosite pentru a rula joburi batch în loc. de transmitere în timp real a datelor. Acesta folosește capacitatea de programare rapidă a Spark core pentru a efectua analize rapide de flux de scânteie, care implică în esență ingestia datelor sub formă de micro și mini-loturi pentru a efectua transformările RDD pe acele seturi de date într-o anumită perioadă de fereastră. Streamingul Apache Spark este menit să consume din mai multe fluxuri, completând astfel conducta, cum ar fi cele precum Apache Kafka, Flume, RabbitMQ, ZeroMQ, Kinesis, socluri TCP / IP, Twitter, etc. Seturile de date structurate disponibile în Spark 2. versiunile x + sunt utilizate pentru streamingul structurat.
Cum funcționează fluxul de scânteie?
- În cazul Spark Streaming, fluxurile de date sunt împărțite în loturi fixe, de asemenea, numite DStreams, care este o secvență de tip fix a numărului de RDD. Prin urmare, RDD-urile sunt procesate utilizând API-ul Spark, iar rezultatele returnate sunt prin loturi. Operațiunile de flux discret, care sunt fie transformări statale sau apatride, constau, de asemenea, alături de ele operații de ieșire, operații de intrare DStream și, de asemenea, receptoare. Aceste Dstreams sunt nivelul de bază de abstractizare oferit de fluxul Apache Spark, care este un flux continuu al RDD-urilor Spark.
- De asemenea, oferă funcțiile pentru toleranța la erori de a fi utilizate pentru Dstreams destul de asemănătoare cu RDD-urile, atât timp cât copia datelor este disponibilă și, prin urmare, orice stare poate fi recomputată sau readusă la starea inițială, utilizând graficul de linie al lui Spark peste set de CD-uri. Ideea care trebuie luată în considerare este faptul că Dstreams este utilizat pentru a traduce operațiunile de bază pe setul lor de CDD subiacent. Aceste transformări bazate pe RDD sunt realizate și calculate de către Spark Engine. Operațiunile Dstream sunt utilizate pentru a oferi nivelul de bază al detaliilor și pentru a oferi dezvoltatorului un nivel ridicat de API în scop de dezvoltare.
Avantajele Spark Streaming
Există diverse motive pentru care utilizarea streaming-ului Spark este un avantaj suplimentar. Vom discuta unele dintre ele în postarea noastră aici.
- Unificarea fluxurilor de lucru, fluxurilor și interactivității: seturile de date pot fi ușor integrate și utilizate cu oricare dintre sarcinile de lucru care nu au fost niciodată o sarcină ușoară de făcut în sisteme continue și, prin urmare, aceasta servește ca un singur motor.
- Nivel avansat de analiză împreună cu întrebări de învățare automată și SQL: atunci când lucrați la sarcini de lucru complexe, necesită întotdeauna utilizarea învățării continue și, de asemenea, cu modelele de date actualizate. Partea cea mai bună cu această componentă a Spark este că ajunge să se integreze cu ușurință la MLib sau la orice altă bibliotecă dedicată de învățare a mașinilor.
- Eșec rapid și, de asemenea, recuperare pentru straggler: recuperarea la eroare și toleranța la erori este una dintre caracteristicile principale de bază, care sunt disponibile în streaming Spark.
- Echilibrarea sarcinii: blocajele sunt adesea cauzate între sisteme din cauza încărcărilor și a soldurilor inegale care se realizează și, prin urmare, este destul de necesar să echilibreze încărcarea uniformă, care este gestionată automat de această componentă a Spark.
- Performanță: Datorită tehnicii sale de calcul în memorie, care utilizează memoria internă mai mult decât hard disk-ul extern, performanța Spark este foarte bună și eficientă în comparație cu alte sisteme Hadoop.
Operații de streaming prin scânteie
1) Operațiuni de transformare în fluxul Spark: În același mod se transformă datele din setul de RDD-uri aici, de asemenea, datele sunt transformate din DStreams și oferă multe transformări care sunt disponibile pe RDD-urile Spark normale. Unii dintre ei sunt:
- Map (): Aceasta este utilizată pentru a returna o nouă formă de Dstream atunci când fiecare element este trecut printr-o funcție.
De exemplu, data.map (line => (line, line.count)) - flatMap (): aceasta este similară cu harta, dar fiecare articol este mapat cu 0 sau mai multe unități mapate.
Exemplu, data.flatMap (lines => lines.split ("")) - filter (): Acesta este folosit pentru a returna un nou set de Dstream prin returnarea înregistrărilor care sunt filtrate pentru utilizarea noastră.
Exemplu, filtru (valoare => valoare == "scânteie") - Union (): este utilizat pentru a returna un nou set de Dstream care constă din datele combinate de la intrarea Dstreams și alte Dstreams.
Exemplu, Dstream1.union (Dstream2) .union (Dstream3)
2) Actualizează starea prin operarea cheii
Acest lucru vă permite să mențineți o stare arbitrară chiar și atunci când se actualizează continuu cu o informație nouă. Vi se va cere să definiți starea care poate fi de tip arbitrar și să definiți funcția de actualizare a stării, ceea ce înseamnă specificarea statului folosind starea anterioară și, de asemenea, să folosiți noi valori dintr-un flux de intrare. În fiecare sistem de lot, o scânteie va aplica aceeași funcție de actualizare a stării pentru toate tastele care predomină.
Exemplu:
funcția de actualizare def (NV, RC):
dacă RC nu este:
RC = 0
suma de retur (NV, RC) #Nv reprezintă valori noi, iar RC funcționează
Concluzie
Streamingul prin scânteie este unul dintre cele mai eficiente sisteme pentru a construi o conductă reală de streaming și, prin urmare, este utilizat pentru a depăși toate problemele întâmpinate prin utilizarea sistemelor și metodelor tradiționale. Prin urmare, toți dezvoltatorii care învață să își croiască drum în componența de spark streaming au pășit pe cel mai potrivit punct unic al unui cadru care poate fi utilizat pentru a răspunde tuturor nevoilor de dezvoltare. Prin urmare, putem spune în siguranță că utilizarea sa îmbunătățește productivitatea și performanța în proiectele și companiile care încearcă sau așteaptă cu nerăbdare să folosească ecosistemul de date mari. Sper că v-a plăcut articolul nostru. Rămâneți la curent cu mai multe articole ca acestea.
Articole recomandate
Acesta este un ghid pentru Spark Streaming. Aici vom discuta despre introducerea la Spark Streaming, cum funcționează împreună cu Avantaje și exemple. De asemenea, puteți parcurge și alte articole conexe -
- Ce este Hadoop Streaming?
- Comenzi scânteie
- Tutoriale despre cum se instalează Spark
- Diferența dintre Hadoop și Spark
- Spark DataFrame | avantaje
- Cele mai bune 6 componente ale Spark