Gniststreaming - Omfattende guide til gniststreaming

Innholdsfortegnelse:

Anonim

Introduksjon til gniststreaming

Apache Spark Streaming er en av de viktigste essensielle komponentene i Apache Spark, som er sanntidsbehandling av dataverktøyet som brukes til å streame dataene på sanntid, i motsetning til de tradisjonelle Hadoop batchjobbene som ble brukt til å kjøre batchjobber i stedet av streaming av data i sanntid. Den benytter seg av Spark Cores hurtige planleggingsevne for å utføre hurtig gniststrømningsanalyse som i hovedsak innebærer inntak av dataene i form av mikro- og mini-grupper for å utføre RDD-transformasjoner på disse datasettene i en bestemt vindusperiode. Apache Spark-streaming er ment å konsumere fra mange oppstrømmer og dermed fullføre rørledningen slik som dem som Apache Kafka, Flume, RabbitMQ, ZeroMQ, Kinesis, TCP / IP-stikkontakter, Twitter, etc. De strukturerte datasettene som er tilgjengelige i Spark 2. x + versjoner brukes til strukturert streaming.

Hvordan fungerer gniststreaming?

  • Når det gjelder Spark Streaming, er datastrømmene delt inn i faste partier, også kalt DStreams, som internt er en fast type-sekvens for antall RDD-er. RDD-ene blir derfor behandlet ved å bruke Spark API og resultatene som returneres er derfor i batches. De diskretiserte strømoperasjoner som enten er statlige eller statsløse transformasjoner, består også sammen med dem utgangsoperasjoner, input DStream-operasjoner og også mottakerne. Disse Dstreams er det grunnleggende abstraksjonsnivået levert av Apache Spark-streaming, som er en kontinuerlig strøm av Spark RDD-ene.
  • Det gir også mulighetene for feiltoleranse som kan brukes for Dstreams som er ganske lik RDD-er, så lenge kopien av dataene er tilgjengelig, og derfor kan enhver tilstand beregnes på nytt eller føres tilbake til den opprinnelige tilstanden ved å bruke Sparks linjegraf over sett med RDD-er. Poenget som skal vurderes her er at Dstreams brukes til å oversette de grunnleggende operasjonene på deres underliggende sett med RDD-er. Disse RDD-baserte transformasjonene blir utført og beregnet av Spark Engine. Dstream-operasjonene brukes til å gi det grunnleggende detaljnivået og gi utvikleren et høyt nivå av API for utviklingsformål.

Fordeler med gniststrømming

Det er forskjellige grunner til at bruk av Spark-streaming er en ekstra fordel. Vi skal diskutere noen av dem i innlegget vårt her.

  1. Unifikasjon av strøm, batch og interaktive arbeidsmengder: Datasettene kan enkelt integreres og brukes med hvilken som helst av arbeidsmengdene, som aldri var en enkel oppgave å utføres i kontinuerlige systemer, og derfor fungerer dette som en enkeltmotor.
  2. Avansert nivå av analyser sammen med maskinlæring og SQL-spørsmål: Når du jobber med komplekse arbeidsmengder, krever det alltid bruk av kontinuerlig læring og også med de oppdaterte datamodellene. Det beste med denne komponenten i Spark er at den enkelt kan integreres med MLib eller et annet dedikert bibliotek for maskinlæring.
  3. Rask svikt og også gjenoppretting for straggler: Feilgjenoppretting og feiltoleranse er en av de grunnleggende primære funksjonene som er tilgjengelige i Spark-streaming.
  4. Lastbalansering: Flaskehalsene er ofte forårsaket mellom systemene på grunn av ujevn belastning og balansering som blir gjort, og det blir derfor ganske nødvendig å balansere belastningen jevnt som automatisk håndteres av denne komponenten i Spark.
  5. Ytelse: På grunn av beregningsteknikken i minnet som gjør bruk av det interne minnet mer enn den eksterne harddisken, er Spark ytelse veldig god og effektiv sammenlignet med andre Hadoop-systemer.

Spark Streaming Operations

1) Transformasjonsoperasjoner på gniststrømming: På samme måte som data blir transformert fra settet med RDD-er, blir også dataene transformert fra DStreams, og de tilbyr mange transformasjoner som er tilgjengelige på de normale Spark RDD-ene. Noen av dem er:

  • Kart (): Dette brukes til å returnere en ny form for Dstream når hvert element føres gjennom en funksjon.
    For eksempel data.map (linje => (linje, linje.antal))
  • flatMap (): Denne ligner på kartet, men hvert element er kartlagt til 0 eller flere kartlagte enheter.
    Eksempel, data.flatMap (lines => lines.split (”“))
  • filter (): Denne brukes til å returnere et nytt sett med Dstream ved å returnere postene som er filtrert for vår bruk.
    Eksempel, filter (verdi => verdi == ”gnist”)
  • Union (): Det brukes til å returnere et nytt sett med Dstream som består av dataene kombinert fra input Dstreams og andre Dstreams.
    Eksempel Dstream1.union (Dstream2) .union (Dstream3)

2) Oppdater tilstand etter nøkkeloperasjon

Dette lar deg opprettholde en vilkårlig tilstand selv når du kontinuerlig oppdaterer dette med et nytt stykke informasjon. Det kreves at du definerer tilstanden som kan være av vilkårlig type og definere tilstandsoppdateringsfunksjonen som betyr å spesifisere tilstanden ved bruk av den forrige tilstanden og også bruke nye verdier fra en inngangsstrøm. I hvert batch-system vil en gnist bruke den samme tilstandsoppdateringsfunksjonen for alle taster som er utbredt.

Eksempel:

def oppdateringsfunksjon (NV, RC):

hvis RC ikke er:

RC = 0

retur sum (NV, RC) #Nv er nye verdier og RC kjører antall

Konklusjon

Gniststrømming er et av de mest effektive systemene for å bygge den virkelige strømningstypen rørledningen, og blir derfor brukt til å overvinne alle problemene som oppstår ved bruk av tradisjonelle systemer og metoder. Derfor har alle utviklerne som lærer å komme seg inn i gniststrømningskomponenten, tråkket mot det rette punktet i et rammeverk som kan brukes til å dekke alle utviklingsbehov. Derfor kan vi trygt si at bruken forbedrer produktiviteten og ytelsen i prosjektene og selskapene som prøver eller ser frem til å benytte seg av big data-økosystemet. Håper du likte artikkelen vår. Følg med for flere artikler som disse.

Anbefalte artikler

Dette er en guide til Spark Streaming. Her diskuterer vi introduksjonen til Spark Streaming, hvordan det fungerer sammen med fordeler og eksempler. Du kan også gå gjennom andre relaterte artikler -

  1. Hva er Hadoop Streaming?
  2. Gnistkommandoer
  3. Veiledninger for hvordan du installerer gnist
  4. Forskjellen mellom Hadoop vs Spark
  5. Spark DataFrame | Fordeler
  6. Topp 6 komponenter av gnist