Vonken streamen - Uitgebreide gids voor Spark Streaming

Inhoudsopgave:

Anonim

Introductie van Spark Streaming

Apache Spark Streaming is een van de belangrijkste essentiële componenten van Apache Spark, een realtime verwerking van gegevenshulpprogramma dat wordt gebruikt om de gegevens in realtime te streamen, in tegenstelling tot de traditionele Hadoop-batchtaken die werden gebruikt om in plaats daarvan batchtaken uit te voeren van realtime datastreaming. Het maakt gebruik van de snelle planningsmogelijkheden van Spark Core om snelle analyse van vonkenstreaming uit te voeren, waarbij in wezen de gegevens in de vorm van micro- en mini-batches worden ingenomen om de RDD-transformaties op die gegevenssets in een bepaalde vensterperiode uit te voeren. De Apache Spark-streaming is bedoeld om uit veel upstreams te consumeren, waardoor de pijplijn wordt voltooid, zoals die zoals Apache Kafka, Flume, RabbitMQ, ZeroMQ, Kinesis, TCP / IP-sockets, Twitter, enz. De gestructureerde datasets die beschikbaar zijn in Spark 2. x + -versies worden gebruikt voor gestructureerde streaming.

Hoe Spark Streaming werkt?

  • In het geval van Spark Streaming worden de gegevensstromen verdeeld in vaste batches, ook wel DStreams genoemd, die intern een reeks van het vaste type van het aantal RDD's is. De RDD's worden daarom verwerkt met behulp van Spark API en de geretourneerde resultaten zijn daarom in batches. De gediscretiseerde streambewerkingen die ofwel stateful of stateless transformaties zijn, bestaan ​​ook uit uitvoerbewerkingen, invoer DStream-bewerkingen en ook de ontvangers. Deze Dstreams zijn het basis abstractieniveau dat wordt geboden door Apache Spark-streaming, een continue stroom van de Spark RDD's.
  • Het biedt ook de mogelijkheden voor fouttolerantie die kan worden gebruikt voor Dstreams die vrij veel op RDD's lijken, zolang de kopie van de gegevens beschikbaar is en daarom elke status opnieuw kan worden berekend of teruggebracht naar de oorspronkelijke staat door gebruik te maken van Spark's lijngrafiek over de set RDD's. Het punt om hier over na te denken is dat de Dstreams worden gebruikt om de basisbewerkingen op hun onderliggende reeks RDD's te vertalen. Deze RDD-gebaseerde transformaties worden uitgevoerd en berekend door de Spark Engine. De Dstream-bewerkingen worden gebruikt om het basisniveau van details te bieden en de ontwikkelaar een hoog API-niveau te geven voor ontwikkelingsdoeleinden.

Voordelen van Spark Streaming

Er zijn verschillende redenen waarom het gebruik van Spark-streaming een bijkomend voordeel is. We gaan er enkele bespreken in onze post hier.

  1. Unificatie van stream-, batch- en interactieve workloads: de datasets kunnen eenvoudig worden geïntegreerd en worden gebruikt met alle workloads die nooit een gemakkelijke taak waren in continue systemen en daarom dient dit als een eenmotorig systeem.
  2. Geavanceerd analyseniveau, samen met machine learning en SQL-query's: wanneer u aan complexe workloads werkt, moet u voortdurend leren en ook met de bijgewerkte datamodellen. Het beste deel van dit onderdeel van Spark is dat het gemakkelijk kan worden geïntegreerd met de MLib of een andere speciale machine learning-bibliotheek.
  3. Snel falen en ook herstel voor achterblijvers: Foutherstel en fouttolerantie is een van de belangrijkste prime-functies die beschikbaar zijn in Spark-streaming.
  4. Belastingverdeling: de knelpunten worden vaak tussen systemen veroorzaakt door ongelijke belastingen en saldi die worden uitgevoerd en daarom wordt het heel noodzakelijk om de belasting gelijkmatig te balanceren, wat automatisch door dit component van Spark wordt afgehandeld.
  5. Prestaties: vanwege de in-memory-berekeningstechniek die meer gebruik maakt van het interne geheugen dan de externe harde schijf, zijn de prestaties van Spark zeer goed en efficiënt in vergelijking met andere Hadoop-systemen.

Spark Streaming-bewerkingen

1) Transformatiebewerkingen bij Spark-streaming: op dezelfde manier dat gegevens worden getransformeerd vanuit de set RDD's, worden ook de gegevens getransformeerd vanuit DStreams en het biedt veel transformaties die beschikbaar zijn op de normale Spark RDD's. Sommige ervan zijn:

  • Map (): dit wordt gebruikt om een ​​nieuwe vorm van Dstream terug te geven wanneer elk element door een functie wordt geleid.
    Bijvoorbeeld data.map (line => (line, line.count))
  • flatMap (): deze lijkt op de kaart, maar elk item is toegewezen aan 0 of meer toegewezen eenheden.
    Voorbeeld, data.flatMap (lines => lines.split (""))
  • filter (): deze wordt gebruikt om een ​​nieuwe set Dstream te retourneren door de records te retourneren die voor ons gebruik zijn gefilterd.
    Voorbeeld, filter (waarde => waarde == "vonk")
  • Union (): het wordt gebruikt om een ​​nieuwe set Dstream te retourneren die bestaat uit de gegevens gecombineerd uit de ingevoerde Dstreams en andere Dstreams.
    Voorbeeld, Dstream1.union (Dstream2) .union (Dstream3)

2) Update State by Key Operation

Hiermee kunt u een willekeurige status behouden, zelfs wanneer deze voortdurend wordt bijgewerkt met een nieuw stukje informatie. U moet de status definiëren die van een willekeurig type kan zijn en de statusupdatefunctie definiëren, wat betekent dat u de status opgeeft met de vorige status en ook gebruikmaakt van nieuwe waarden uit een invoerstroom. In elk batchsysteem zal een vonk dezelfde statusupdatefunctie toepassen voor alle gangbare toetsen.

Voorbeeld:

def update-functie (NV, RC):

als RC Geen is:

RC = 0

return sum (NV, RC) #Nv is nieuwe waarden en RC telt

Conclusie

Spark-streaming is een van de meest efficiënte systemen om de echte pijplijn van het streaming-type te bouwen en wordt daarom gebruikt om alle problemen op te lossen die zich voordoen met behulp van traditionele systemen en methoden. Daarom hebben alle ontwikkelaars die leren hun weg te vinden naar de component voor het streamen van vonken, op het juiste punt van een framework gestapt dat kan worden gebruikt om aan alle ontwikkelingsbehoeften te voldoen. Daarom kunnen we gerust zeggen dat het gebruik ervan de productiviteit en prestaties verbetert in de projecten en bedrijven die proberen het ecosysteem met big data te gebruiken of ernaar uitkijken. Ik hoop dat je ons artikel leuk vond. Blijf op de hoogte voor meer artikelen zoals deze.

Aanbevolen artikelen

Dit is een gids voor Spark Streaming. Hier bespreken we de inleiding tot Spark Streaming, hoe het werkt samen met voordelen en voorbeelden. U kunt ook onze andere gerelateerde artikelen doornemen -

  1. Wat is Hadoop Streaming?
  2. Vonkopdrachten
  3. Tutorials over hoe Spark te installeren
  4. Verschil tussen Hadoop en Spark
  5. Spark DataFrame | voordelen
  6. Top 6 componenten van Spark