Introduktion till gnistströmning

Apache Spark Streaming är en av de viktigaste komponenterna i Apache Spark som är realtidsbehandling av datahjälpmedel som används för att strömma uppgifterna i realtid, till skillnad från de traditionella Hadoop-batchjobb som användes för att köra batchjobb istället av realtidsströmning av data. Den använder sig av Spark core: s snabba schemaläggningsförmåga för att utföra snabb gnistströmningsanalys, vilket i huvudsak involverar intag av data i form av mikro- och minisatser för att utföra RDD-transformationer på dessa uppsättningar av data i en viss fönsterperiod. Apache Spark-strömningen är tänkt att konsumera från många uppströmmar och därmed komplettera pipeline, t.ex. sådana som Apache Kafka, Flume, RabbitMQ, ZeroMQ, Kinesis, TCP / IP-uttag, Twitter, etc. De strukturerade datasätten som finns tillgängliga i Spark 2. x + -versioner används för strukturerad strömning.

Hur fungerar gnistströmning?

  • När det gäller gnistströmning är dataströmmarna uppdelade i fasta partier, även kallade DStreams, vilket internt är en fast typsekvens för antalet RDD: er. RDD: erna behandlas därför med hjälp av Spark API och resultaten som returneras är därför i partier. De diskretiserade strömoperationerna som är antingen statliga eller statslösa transformationer består också av dem utgångsoperationer, ingång DStream-operationer och även mottagarna. Dessa Dstreams är den grundläggande abstraktionsnivån som tillhandahålls av Apache Spark-strömning som är en kontinuerlig ström av Spark RDD: er.
  • Den tillhandahåller också funktionerna för feltolerans som kan användas för Dstreams som är ganska lik RDD: er så länge kopian av data är tillgänglig och därför kan alla tillstånd beräknas eller bringas tillbaka till det ursprungliga tillståndet genom att använda Sparks släktgrafik över uppsättning RDD: er. Poängen som ska funderas här är att Dstreams används för att översätta de grundläggande operationerna på deras underliggande uppsättning RDD: er. Dessa RDD-baserade transformationer görs och beräknas av Spark Engine. Dstream-operationerna används för att tillhandahålla den grundläggande detaljeringsnivån och ge utvecklaren en hög grad av API för utvecklingsändamål.

Fördelar med gnistströmning

Det finns olika skäl till att användningen av Spark-streaming är en extra fördel. Vi kommer att diskutera några av dem i vårt inlägg här.

  1. Enhet av ström-, batch- och interaktiva arbetsbelastningar: Datasätten kan enkelt integreras och användas med någon av de arbetsbelastningar som aldrig var en enkel uppgift att göra i kontinuerliga system och därför fungerar det som en enda motor.
  2. Avancerad analysnivå tillsammans med maskininlärning och SQL-frågor: När du arbetar med komplexa arbetsbelastningar kräver det alltid kontinuerligt lärande och även med de uppdaterade datamodellerna. Det bästa med denna komponent i Spark är att den enkelt kan integreras med MLib eller något annat speciellt maskininlärningsbibliotek.
  3. Snabbt misslyckande och även återhämtning för straggler: Felåterställning och feltolerans är en av de grundläggande primära funktionerna som finns tillgängliga i Spark streaming.
  4. Lastbalansering: Flaskhalsarna orsakas ofta mellan systemen på grund av ojämna belastningar och balanser som görs och därför blir det helt nödvändigt att balansera lasten jämnt som automatiskt hanteras av denna gnistkomponent.
  5. Prestanda: På grund av sin beräkningsteknik i minnet som använder det interna minnet mer än den externa hårddisken är Sparks prestanda mycket god och effektiv jämfört med andra Hadoop-system.

Spark Streaming-operationer

1) Transformationstransaktioner vid gnistrströmning: På samma sätt som data transformeras från uppsättningen RDD: er, här omvandlas också data från DStreams och det erbjuder många transformationer som finns tillgängliga på de normala Spark RDD: erna. Några av dem är:

  • Karta (): Detta används för att returnera en ny form av Dstream när varje element passeras genom en funktion.
    Till exempel data.map (linje => (linje, linje.antal))
  • flatMap (): Den här liknar kartan men varje objekt är mappat till 0 eller fler mappade enheter.
    Exempel, data.flatMap (rader => linjer.split (”“))
  • filter (): Den här används för att returnera en ny uppsättning Dstream genom att returnera de poster som filtreras för vårt bruk.
    Exempel, filter (värde => värde == ”gnista”)
  • Union (): Den används för att returnera en ny uppsättning Dstream som består av data kombinerade från input Dstreams och andra Dstreams.
    Exempel Dstream1.union (Dstream2) .union (Dstream3)

2) Uppdatera tillstånd med nyckelfunktion

Detta gör att du kan upprätthålla ett godtyckligt tillstånd även om det kontinuerligt uppdateras med en ny information. Du skulle behöva definiera tillståndet som kan vara av godtycklig typ och definiera tillståndsuppdateringsfunktionen vilket innebär att specificera tillståndet med det tidigare tillståndet och också använda nya värden från en ingångsström. I varje batch-system kommer en gnista att tillämpa samma tillståndsuppdateringsfunktion för alla nycklar som är rådande.

Exempel:

def-uppdateringsfunktion (NV, RC):

om RC inte är:

RC = 0

retursumma (NV, RC) #Nv är nya värden och RC kör räkningen

Slutsats

Gnistströmning är ett av de mest effektiva systemen för att bygga den verkliga strömningen av strömningstyp och används därför för att övervinna alla problem som stöds på med traditionella system och metoder. Därför har alla utvecklare som lär sig att komma in i gnistströmningskomponenten gått på den rätta punkten i en ram som kan användas för att tillgodose alla utvecklingsbehov. Därför kan vi säkert säga att dess användning förbättrar produktiviteten och prestanda i de projekt och företag som försöker eller ser fram emot att använda sig av big data-ekosystemet. Hoppas att du gillade vår artikel. Håll ögonen öppna för fler artiklar som dessa.

Rekommenderade artiklar

Detta är en guide till gnistströmning. Här diskuterar vi introduktionen till gnistströmning, hur det fungerar tillsammans med fördelar och exempel. Du kan också gå igenom våra andra relaterade artiklar -

  1. Vad är Hadoop Streaming?
  2. Gnistkommandon
  3. Handledning om hur man installerar gnista
  4. Skillnaden mellan Hadoop vs Spark
  5. Spark DataFrame | fördelar
  6. Topp 6 gnistkomponenter

Kategori: