Verwenden von HDInsight, Spark und Kafka

Abgeschlossen

Als Data Engineer müssen Sie den idealen HDInsight-Cluster für die Erstellung Ihrer Lösung entwerfen. Spark- und Kafka-Cluster eignen sich bei kombinierter Verwendung hervorragend, um Echtzeitdatenströme zu erfassen und zu verarbeiten.

Erfassen von Echtzeitdaten mit Kafka

Apache Kafka kann als Messagingsystem, als Verleger-Abonnenten-System oder als Plattform für die Verarbeitung von Streamingdaten verwendet werden. Die Daten werden in einem Protokoll gespeichert, das in Echtzeit gelesen, nachbearbeitet und gleichzeitig von mehreren Consumern gelesen werden kann.

Verwenden von Spark Structured Streaming für die Verarbeitung von Echtzeitereignissen

Apache Spark ist eine verteilte Open-Source-Engine für die Datenverarbeitung, die in vielen Szenarios eingesetzt werden kann, um Daten im großen Stil schnell zu verarbeiten, abzufragen, zu analysieren und zu transformieren. Spark wird häufig für ETL- und SQL-Aufträge im Big-Data-Kontext, für die Verarbeitung von Streamingdaten und für maschinelles Lernen genutzt.

Spark Structured Streaming weist Features auf, die auf anderen Plattformen nicht verfügbar sind, z. B. Fehlertoleranzgarantien, die Verknüpfung von Batch- und Streamingdaten, die Verarbeitung von spät eintreffenden Daten und viele weitere Funktionen, die Sie im Laufe dieses Moduls kennenlernen werden. Zudem können Sie mit Azure HDInsight ein VNET erstellen, das sowohl Ihren Spark- als auch Ihren Kafka-Cluster enthält. Befinden sich beide Cluster in einem VNET, kann der Spark-Cluster auf einzelne Datenpartitionen innerhalb des Kafka-Clusters zugreifen, anstatt über mehrere Cluster oder Endpunkte zu kommunizieren. Durch den Zugriff auf einzelne Datenpartitionen erhöhen Sie die Parallelität von Echtzeitverarbeitungsaufträgen, was wiederum den Durchsatz steigert.

Szenarios für die Verwendung von Kafka mit Spark

Es gibt viele Echtzeitanalyseszenarios, die von dem Echtzeitstreaming von Apache Kafka und Spark profitieren würden. Alle diese Szenarios weisen sowohl eine Komponente für die Streamingdatenerfassung (die Kafka-Komponente) als auch einen analytischen Prozess auf, der für die Daten ausgeführt wird (die Spark-Komponente).

Szenarios für die Verwendung von Kafka mit Spark

  • Betrugserkennung in Echtzeit: In diesem Szenario werden Finanztransaktionsdaten erfasst und mit bisherigen Mustern von betrügerischem Verhalten verglichen.
  • Flottenmanagement und Connected-Car-Technik: In diesen Szenarios werden die Daten von IoT-Geräten erfasst und eine Reaktion ausgelöst, wenn bestimmte Sensordaten wie z. B. der Kilometerstand, die Geschwindigkeit, der Standort oder die Temperatur einen bestimmten Schwellenwert erreichen.
  • Klickstreamanalysen für E-Commerce-Lösungen: Hier wird analysiert, wie die Seitenplatzierung von Produkten Spontankäufe beeinflussen kann.
  • Echtzeitüberwachung von Patienten: Es werden z. B. Vitalwerte wie der Blutdruck und die Herzfrequenz beobachtet und Ärzte benachrichtigt, wenn sich ein Patient in einem kritischen Zustand befindet.
  • Smart-Grid-Lösungen: In diesem Szenario wird der Stromverbrauch beobachtet und reagiert, wenn sich die Nachfrage ändert.
  • Kundenverhalten in Geschäften: In diesem Fall geht es darum herauszufinden, welche Einkäufe zu welchen Tageszeiten erledigt werden. Ziel ist es, den Zeitpunkt für das Auffüllen der Regale und das Kassenpersonal effizienter zu planen.
  • IT-Infrastruktur und Netzwerküberwachung: Die Serververfügbarkeit und die Bandbreite werden überwacht und der Datenverkehr bei Bedarf umgeleitet.
  • Echtzeitnachfrage und Inventarverwaltung: In diesem Szenario muss auf niedrige Warenlagerstände geachtet werden und die Nachbestellung oder Neuauffüllung dieser Artikel angefordert werden.

Einfache Migration von der Batch- zur Streamingverarbeitung

In vielen Fällen beginnen diese Szenarios lokal oder mit der Batchverarbeitung von Daten. Da sich Lösungen und Anforderungen jedoch weiterentwickeln, wird die Batchverarbeitung auf die Streamingverarbeitung umgestellt und lokale Anwendungen in die Cloud verlegt. Wie bereits erwähnt, ist Spark Structured Streaming einzigartig in seiner Fähigkeit, Batch- und Streamingaufträge zu verarbeiten. Dies erleichtert es Ihnen, Ihre gesamte Batchverarbeitung in Echtzeitaufträge zu überführen, da zwischen beidem gewechselt werden kann, oder Batch- und Echtzeitaufträge gleichzeitig mit denselben Anwendungen und Frameworks zu verwenden.