Introduktion til gniststreaming
Apache Spark Streaming er en af de vigtigste essentielle komponenter i Apache Spark, som er realtidsbehandling af data utility, som bruges til at streame dataene i realtid, i modsætning til de traditionelle Hadoop batchjobs, der blev brugt til at køre batchjob i stedet af streaming af data i realtid. Det gør brug af Spark core's hurtige planlægningsmulighed for at udføre hurtig gniststrømningsanalyse, der i det væsentlige involverer indtagelse af dataene i form af mikro- og mini-batches til at udføre RDD-transformationer på disse datasæt i en bestemt vinduesperiode. Apache Spark-streaming er beregnet til at forbruge fra mange opstrømme og dermed fuldføre pipeline, såsom dem som Apache Kafka, Flume, RabbitMQ, ZeroMQ, Kinesis, TCP / IP-stik, Twitter osv. De strukturerede datasæt, der er tilgængelige i Spark 2. x + versioner bruges til struktureret streaming.
Hvordan fungerer gniststreaming?
- I tilfælde af gniststreaming er datastrømmene opdelt i faste batches også kaldet DStreams, som internt er en fast type-sekvens for antallet af RDD'er. RDD'erne behandles derfor ved hjælp af Spark API, og de returnerede resultater er derfor i batches. De diskretiserede strømoperationer, der enten er statslige eller statsløse transformationer, består også sammen med dem outputoperationer, input DStream-operationer og også modtagerne. Disse Dstreams er det grundlæggende abstraktionsniveau, der leveres af Apache Spark-streaming, som er en kontinuerlig strøm af Spark RDD'erne.
- Det giver også mulighederne for fejltolerance, der kan bruges til Dstreams, der ligner RDD'er, så længe kopien af dataene er tilgængelig, og derfor kan en hvilken som helst tilstand genberegnes eller bringes tilbage til den oprindelige tilstand ved at bruge Sparks liniegrafik over sæt RDD'er. Det punkt, der skal overvejes her, er, at Dstreams bruges til at oversætte de grundlæggende operationer på deres underliggende sæt RDD'er. Disse RDD-baserede transformationer udføres og beregnes af Spark Engine. Dstream-operationerne bruges til at give det basale detaljeringsniveau og give udvikleren et højt API-niveau til udviklingsformål.
Fordele ved gniststreaming
Der er forskellige grunde til, at brugen af Spark-streaming er en ekstra fordel. Vi vil diskutere nogle af dem i vores indlæg her.
- Forening af strøm, batch og interaktiv arbejdsbelastning: Datasættene kan let integreres og bruges med en hvilken som helst af de arbejdsbelastninger, som aldrig var en let opgave at udføre i kontinuerlige systemer, og derfor fungerer dette som en enkeltmotor.
- Avanceret niveau af analyse sammen med maskinlæring og SQL-forespørgsler: Når du arbejder med komplekse arbejdsbelastninger kræver det altid brug af kontinuerlig læring og også med de opdaterede datamodeller. Den bedste del med denne komponent i Spark er, at den let kan integreres med MLib eller et andet dedikeret bibliotek for maskinlæring.
- Hurtig fiasko og også gendannelse for straggler: Fejlgenvinding og fejltolerance er en af de grundlæggende primære funktioner, der er tilgængelige i Spark-streaming.
- Belastningsafbalancering: Flaskehalserne er ofte forårsaget mellem systemerne på grund af ujævne belastninger og balancer, der udføres, og det bliver derfor meget nødvendigt at afbalancere belastningen jævnt, som automatisk håndteres af denne gnistkomponent.
- Ydeevne: På grund af dens in-memory computing-teknik, der gør brug af den interne hukommelse mere end den eksterne harddisk, er Sparks ydelse meget god og effektiv sammenlignet med andre Hadoop-systemer.
Spark Streaming-operationer
1) Transformation operationer med Spark streaming: På samme måde som data transformeres fra sættet med RDD'er her transformeres også dataene fra DStreams, og de tilbyder mange transformationer, der er tilgængelige på de normale Spark RDDs. Nogle af dem er:
- Kort (): Dette bruges til at returnere en ny form for Dstream, når hvert element passeres gennem en funktion.
For eksempel data.map (linje => (linje, linje.antal)) - flatMap (): Denne ligner kortet, men hvert element er kortlagt til 0 eller flere kortlagte enheder.
Eksempel, data.flatMap (linjer => lines.split (”“)) - filter (): Denne bruges til at returnere et nyt sæt Dstream ved at returnere de poster, der er filtreret til vores brug.
Eksempel filter (værdi => værdi == ”gnist”) - Union (): Det bruges til at returnere et nyt sæt Dstream, der består af dataene kombineret fra input Dstreams og andre Dstreams.
Eksempel Dstream1.union (Dstream2) .union (Dstream3)
2) Opdater tilstand ved nøgleafdeling
Dette giver dig mulighed for at bevare en vilkårlig tilstand, selv når den kontinuerligt opdateres med et nyt stykke information. Det kræves, at du definerer den tilstand, der kan være af vilkårlig type, og definere tilstandsopdateringsfunktionen, hvilket betyder at specificere staten ved hjælp af den forrige tilstand og også gøre brug af nye værdier fra en inputstrøm. I hvert batch-system anvender en gnist den samme tilstandsopdateringsfunktion for alle de nøgler, der er fremherskende.
Eksempel:
def-opdateringsfunktion (NV, RC):
hvis RC ikke er:
RC = 0
return sum (NV, RC) #Nv er nye værdier, og RC kører antal
Konklusion
Gniststreaming er et af de mest effektive systemer til at opbygge den rigtige streamingtype-rørledning og bruges derfor til at overvinde alle de problemer, der er stødt på ved hjælp af traditionelle systemer og metoder. Derfor er alle udviklere, der lærer at komme sig ind i gniststrømningskomponenten, trådt på det rigtigste enkelt punkt i en ramme, der kan bruges til at imødekomme alle udviklingsbehov. Derfor kan vi med sikkerhed sige, at dets anvendelse øger produktiviteten og ydeevnen i de projekter og virksomheder, der forsøger eller ser frem til at gøre brug af big data-økosystemet. Håber du kunne lide vores artikel. Hold øje med flere artikler som disse.
Anbefalede artikler
Dette er en guide til gniststreaming. Her diskuterer vi introduktionen til gniststreaming, hvordan det fungerer sammen med fordele og eksempler. Du kan også gennemgå vores andre relaterede artikler -
- Hvad er Hadoop Streaming?
- Gnistkommandoer
- Tutorials om, hvordan man installerer gnist
- Forskellen mellem Hadoop vs Spark
- Spark DataFrame | Fordele
- Top 6 komponenter af gnist