Spark Streaming - Umfassender Leitfaden für Spark-Streaming

Inhaltsverzeichnis:

Anonim

Einführung in Spark Streaming

Apache Spark-Streaming ist eine der wichtigsten Komponenten von Apache Spark. Dabei handelt es sich um die Echtzeitverarbeitung des Datendienstprogramms, mit dem die Daten in Echtzeit gestreamt werden, im Gegensatz zu den herkömmlichen Hadoop-Stapeljobs, mit denen stattdessen Stapeljobs ausgeführt wurden von Echtzeit-Streaming von Daten. Es nutzt die Schnellplanungsfunktion von Spark Core, um eine schnelle Spark-Streaming-Analyse durchzuführen, bei der die Daten im Wesentlichen in Form von Mikro- und Minibatches aufgenommen werden, um die RDD-Transformationen für diese Datensätze in einem bestimmten Fensterzeitraum durchzuführen. Das Apache Spark-Streaming soll von vielen Upstreams genutzt werden, wodurch die Pipeline vervollständigt wird, z. B. von Apache Kafka, Flume, RabbitMQ, ZeroMQ, Kinesis, TCP / IP-Sockets, Twitter usw. Die in Spark 2 verfügbaren strukturierten Datensätze. x + -Versionen werden für strukturiertes Streaming verwendet.

Wie funktioniert Spark-Streaming?

  • Beim Spark-Streaming werden die Datenströme in feste Stapel unterteilt, die auch als DStreams bezeichnet werden. Dies ist intern eine feste Typsequenz der Anzahl der RDDs. Die RDDs werden daher unter Verwendung der Spark-API verarbeitet und die zurückgegebenen Ergebnisse sind daher stapelweise. Die diskretisierten Stream-Operationen, die entweder zustandsbehaftete oder zustandslose Transformationen sind, bestehen ebenfalls aus Ausgabeoperationen, Eingabe-DStream-Operationen und auch den Empfängern. Diese Dstreams stellen die grundlegende Abstraktionsebene dar, die durch Apache Spark-Streaming bereitgestellt wird. Hierbei handelt es sich um einen kontinuierlichen Stream der Spark-RDDs.
  • Es bietet auch die Möglichkeit, Fehlertoleranz für Dstreams zu verwenden, die den RDDs sehr ähnlich sind, solange die Kopie der Daten verfügbar ist. Daher kann jeder Status neu berechnet oder auf den ursprünglichen Status zurückgesetzt werden, indem das Lineage-Diagramm von Spark über das verwendet wird Satz von RDDs. Der Punkt, über den hier nachgedacht werden muss, ist, dass die Dstreams verwendet werden, um die Grundoperationen für den zugrunde liegenden Satz von RDDs zu übersetzen. Diese RDD-basierten Transformationen werden von der Spark Engine durchgeführt und berechnet. Die Dstream-Vorgänge werden verwendet, um die grundlegende Detailebene bereitzustellen und dem Entwickler eine hohe API-Ebene für Entwicklungszwecke bereitzustellen.

Vorteile von Spark Streaming

Es gibt verschiedene Gründe, warum die Verwendung von Spark-Streaming ein zusätzlicher Vorteil ist. Wir werden einige von ihnen in unserem Beitrag hier diskutieren.

  1. Vereinheitlichung von Stream-, Batch- und interaktiven Workloads: Die Datasets können problemlos in alle Workloads integriert und verwendet werden, die in kontinuierlichen Systemen nie leicht zu erledigen waren, sodass diese als Single-Engine fungieren.
  2. Fortgeschrittenes Analyselevel zusammen mit maschinellem Lernen und SQL-Abfragen: Wenn Sie an komplexen Workloads arbeiten, müssen Sie immer kontinuierlich lernen und die Datenmodelle aktualisieren. Das Beste an dieser Spark-Komponente ist, dass sie sich problemlos in die MLib oder eine andere dedizierte Bibliothek für maschinelles Lernen integrieren lässt.
  3. Schneller Ausfall und auch Wiederherstellung für Straggler: Die Wiederherstellung nach Fehlern und Fehlertoleranz ist eine der Hauptfunktionen, die beim Spark-Streaming zur Verfügung stehen.
  4. Lastausgleich: Die Engpässe werden häufig durch ungleichmäßige Lasten und Ausgleichsvorgänge zwischen den Systemen verursacht. Daher ist es durchaus erforderlich, die Last gleichmäßig auszugleichen, die von dieser Spark-Komponente automatisch verarbeitet wird.
  5. Leistung: Aufgrund seiner In-Memory-Berechnungstechnik, bei der der interne Speicher stärker genutzt wird als die externe Festplatte, ist die Leistung von Spark im Vergleich zu anderen Hadoop-Systemen sehr gut und effizient.

Spark-Streaming-Vorgänge

1) Transformationsoperationen beim Spark-Streaming: Auf die gleiche Weise, wie Daten aus dem RDD-Satz transformiert werden, werden auch hier die Daten aus DStreams transformiert und bieten viele Transformationen, die für normale Spark-RDDs verfügbar sind. Einige von ihnen sind:

  • Map (): Dies wird verwendet, um eine neue Form von Dstream zurückzugeben, wenn jedes Element eine Funktion durchläuft.
    Zum Beispiel data.map (line => (line, line.count))
  • flatMap (): Dieses Element ähnelt der Karte, aber jedes Element ist 0 oder mehr zugeordneten Einheiten zugeordnet.
    Beispiel data.flatMap (lines => lines.split (”“))
  • filter (): Dieser Befehl wird verwendet, um einen neuen Satz von Dstream zurückzugeben, indem die Datensätze zurückgegeben werden, die für unsere Verwendung gefiltert wurden.
    Beispiel Filter (Wert => Wert == ”Funke”)
  • Union (): Wird verwendet, um einen neuen Satz von Dstreams zurückzugeben, der aus den Daten besteht, die aus den Eingabe-Dstreams und anderen Dstreams kombiniert wurden.
    Beispiel, Dstream1.union (Dstream2) .union (Dstream3)

2) Status durch Tastenbedienung aktualisieren

Auf diese Weise können Sie einen beliebigen Status beibehalten, auch wenn dieser ständig mit einer neuen Information aktualisiert wird. Sie müssten den Zustand definieren, der von einem beliebigen Typ sein kann, und die Zustandsaktualisierungsfunktion definieren, was bedeutet, dass der Zustand unter Verwendung des vorherigen Zustands angegeben und auch neue Werte aus einem Eingabestream verwendet werden. In jedem Batch-System wendet ein Funke dieselbe Statusaktualisierungsfunktion für alle vorherrschenden Schlüssel an.

Beispiel:

Def Update Funktion (NV, RC):

Wenn RC None ist:

RC = 0

Rückgabesumme (NV, RC) #Nv ist ein neuer Wert und RC zählt

Fazit

Spark-Streaming ist eines der effizientesten Systeme zum Aufbau der Pipeline vom realen Streaming-Typ und wird daher verwendet, um alle Probleme zu überwinden, die bei der Verwendung herkömmlicher Systeme und Methoden auftreten. Daher haben alle Entwickler, die lernen, in die Spark-Streaming-Komponente einzusteigen, den richtigen Punkt in einem Framework erreicht, mit dem alle Entwicklungsanforderungen erfüllt werden können. Daher können wir mit Sicherheit sagen, dass der Einsatz die Produktivität und Leistung in Projekten und Unternehmen steigert, die das Big-Data-Ökosystem nutzen wollen oder wollen. Ich hoffe, Ihnen hat unser Artikel gefallen. Bleiben Sie dran für weitere Artikel wie diese.

Empfohlene Artikel

Dies ist eine Anleitung zum Spark-Streaming. Hier diskutieren wir die Einführung in Spark Streaming, wie es zusammen mit Vorteilen und Beispielen funktioniert. Sie können auch unsere anderen verwandten Artikel durchgehen -

  1. Was ist Hadoop Streaming?
  2. Spark-Befehle
  3. Anleitungen zur Installation von Spark
  4. Unterschied zwischen Hadoop vs Spark
  5. Spark DataFrame | Vorteile
  6. Top 6 Komponenten von Spark