Erstellen einer Kafka- und Spark-Architektur
Wenn Sie Kafka und Spark zusammen in Azure HDInsight verwenden möchten, müssen Sie sie im gleichen VNET platzieren oder eine Peeringverbindung zwischen den VNETs herstellen, damit die Cluster die Auflösung von DNS-Namen verwenden.
Das Verfahren für die Erstellung von Clustern im gleichen VNET lautet wie folgt:
- Erstellen einer Ressourcengruppe
- Hinzufügen eines VNET zur Ressourcengruppe
- Hinzufügen eines Kafka- und eines Spark-Clusters zum gleichen VNET oder alternatives Herstellen einer Peeringverbindung zwischen den VNETs, in denen diese Dienste DNS-Namen auflösen
Es wird empfohlen, zum Herstellen einer Verbindung zwischen dem Kafka- und dem Spark-Cluster in HDInsight den nativen Spark-Kafka-Connector zu verwenden. Dieser ermöglicht es dem Spark-Cluster, auf einzelne Datenpartitionen innerhalb des Kafka-Clusters zuzugreifen, wodurch die Parallelität Ihres Echtzeitverarbeitungsauftrags gesteigert wird, und der Durchsatz sehr hoch ausfällt.
Wenn sich beide Cluster im gleichen VNET befinden, können Sie auch die vollqualifizierten Domänennamen der Kafka-Broker im Spark-Streamingcode verwenden und NSG-Regeln für die Unternehmenssicherheit im VNET erstellen.
Lösungsarchitektur
Mustern für Echtzeitstreaminganalysen in Azure liegt in der Regel die folgende Lösungsarchitektur zugrunde.
- Erfassung: Unstrukturierte oder strukturierte Daten werden in einem Kafka-Cluster in Azure HDInsight erfasst.
- Aufbereitung und Training: Daten werden aufbereitet und für das Training mit Spark in HDInsight verwendet.
- Modellierung und Bereitstellung: Die Daten werden in einem Data Warehouse wie Azure Synapse oder Interactive Query in HDInsight gespeichert.
- Intelligence: Die Daten werden für Analysedashboards wie Power BI oder Tableau bereitgestellt.
- Speicherung: Daten werden in einer Cold-Storage-Lösung wie Azure Storage abgelegt und später bereitgestellt.
Architektur für ein Beispielszenario
In der nächsten Lerneinheit beginnen Sie, die Lösungsarchitektur für eine Beispielanwendung zu erstellen. In diesem Beispiel wird eine Azure Resource Manager-Vorlagendatei verwendet, um die Ressourcengruppe, das VNET, den Spark-Cluster und den Kafka-Cluster zu erstellen.
Nachdem die Cluster bereitgestellt wurden, stellen Sie eine SSH-Verbindung zu einem der Kafka-Broker her und kopieren die Python-Producerdatei in den Hauptknoten. Diese Producerdatei gibt alle 10 Sekunden künstliche Aktienkurse aus. Außerdem schreibt sie die Partitionsnummer und den Offset der Nachricht in die Konsole.
Wenn der Producer ausgeführt wird, können Sie die Jupyter Notebook-Instanz in den Spark-Cluster hochladen. Im Notebook verbinden Sie den Spark- mit dem Kafka-Cluster und führen einige Beispielabfragen für die Daten aus, z. B. die Suche nach dem höchsten und dem niedrigsten Aktienkurs innerhalb eines Ereignisfensters.