Freigeben über


Verwenden von Azure-Pipelines mit Apache Flink® in HDInsight auf AKS

Hinweis

Azure HDInsight on AKS wird am 31. Januar 2025 eingestellt. Vor dem 31. Januar 2025 müssen Sie Ihre Workloads zu Microsoft Fabric oder einem gleichwertigen Azure-Produkt migrieren, um eine abruptes Beendigung Ihrer Workloads zu vermeiden. Die verbleibenden Cluster in Ihrem Abonnement werden beendet und vom Host entfernt.

Bis zum Einstellungsdatum ist nur grundlegende Unterstützung verfügbar.

Wichtig

Diese Funktion steht derzeit als Vorschau zur Verfügung. Die zusätzlichen Nutzungsbedingungen für Microsoft Azure-Vorschauen enthalten weitere rechtliche Bestimmungen, die für Azure-Features in Betaversionen, in Vorschauversionen oder anderen Versionen gelten, die noch nicht allgemein verfügbar gemacht wurden. Informationen zu dieser spezifischen Vorschau finden Sie unter Informationen zur Vorschau von Azure HDInsight on AKS. Bei Fragen oder Funktionsvorschlägen senden Sie eine Anfrage an AskHDInsight mit den entsprechenden Details, und folgen Sie uns für weitere Updates in der Azure HDInsight-Community.

In diesem Artikel erfahren Sie, wie Sie Azure Pipelines mit HDInsight auf AKS verwenden, um Flink-Jobs über die REST-API des Clusters zu übermitteln. Sie lernen den Prozess mithilfe einer Beispiel-YAML-Pipeline und eines PowerShell-Skripts näher kennen, die die Automatisierung der REST-API-Interaktionen optimieren.

Voraussetzungen

  • Azure-Abonnement. Sollten Sie über kein Azure-Abonnement verfügen, können Sie ein kostenloses Konto erstellen.

  • Ein GitHub-Konto, in dem Sie ein Repository erstellen können. Erstellen Sie ein kostenloses Konto.

  • Erstellen Sie das Verzeichnis .pipeline, und kopieren Sie die Dateien flink-azure-pipelines.yml und flink-job-azure-pipeline.ps1.

  • Eine Azure DevOps-Organisation. Erstellen Sie ein kostenloses Konto. Wenn Ihr Team bereits über eine solche Organisation verfügt, stellen Sie sicher, dass Sie Administrator*in des Azure DevOps-Projekts sind, das Sie verwenden möchten.

  • Die Möglichkeit zum Ausführen von Pipelines auf von Microsoft gehosteten Agents. Um von Microsoft gehostete Agents zu verwenden, muss Ihre Azure DevOps-Organisation über Zugriff auf von Microsoft gehostete Parallelaufträge verfügen. Sie können entweder einen Parallelauftrag erwerben oder einen Free-Tarif anfordern.

  • Ein Flink-Cluster. Wenn Sie über keinen verfügen, erstellen Sie einen Flink-Cluster in HDInsight on AKS.

  • Erstellen Sie ein Verzeichnis im Clusterspeicherkonto, um die JAR-Datei für den Auftrag zu kopieren. Dieses Verzeichnis müssen Sie später in der Pipeline-YAML-Datei für den Speicherort der JAR-Datei für den Auftrag (<JOB_JAR_STORAGE_PATH>) konfigurieren.

Schritte zum Einrichten der Pipeline

Erstellen eines Dienstprinzipals für Azure Pipelines

Erstellen Sie einen Microsoft Entra-Dienstprinzipal, um auf Azure zuzugreifen: Gewähren Sie die Berechtigung für den Zugriff auf den HDInsight on AKS-Cluster mit der Rolle „Mitwirkender“, und notieren Sie sich die Werte von „appId“, „password“ und „tenant“ aus der Antwort.

az ad sp create-for-rbac -n <service_principal_name> --role Contributor --scopes <Flink Cluster Resource ID>`

Beispiel:

az ad sp create-for-rbac -n azure-flink-pipeline --role Contributor --scopes /subscriptions/abdc-1234-abcd-1234-abcd-1234/resourceGroups/myResourceGroupName/providers/Microsoft.HDInsight/clusterpools/hiloclusterpool/clusters/flinkcluster`

Verweis

Hinweis

Apache, Apache Flink, Flink und zugehörige Open Source-Projektnamen sind Handelsmarken der Apache Software Foundation (ASF).

Erstellen eines Schlüsseltresors

  1. Erstellen Sie eine Azure Key Vault-Instanz. Hierzu können Sie dieses Tutorial befolgen.

  2. Erstellen Sie drei Geheimnisse:

    • Den Clusterspeicherschlüssel für den Speicherschlüssel

    • Den Dienstprinzipalschlüssel für die Client- oder App-ID des Prinzipals

    • Den geheimen Dienstprinzipalschlüssel für das Prinzipalgeheimnis

    Screenshot: Erstellen eines Schlüsseltresors

  3. Erteilen Sie dem Dienstprinzipal die Berechtigung für den Zugriff auf Azure Key Vault mit der Rolle „Geheimnisbeauftragter für Key Vault“.

Einrichten der Pipeline

  1. Navigieren Sie zu Ihrem Projekt, und klicken Sie auf „Projekteinstellungen“.

  2. Scrollen Sie nach unten, und wählen Sie „Dienstverbindungen“ und dann „Neue Dienstverbindung“ aus.

  3. Wählen Sie Azure Resource Manager aus.

    Screenshot: Auswählen einer neuen Dienstverbindung

  4. Wählen Sie in den Authentifizierungsmethoden die Option „Dienstprinzipal (manuell)“ aus.

    Screenshot: Neue Dienstverbindung

  5. Bearbeiten Sie die Eigenschaften der Dienstverbindung. Wählen Sie den Dienstprinzipal aus, den Sie kürzlich erstellt haben.

    Screenshot: Bearbeiten der Dienstverbindung

  6. Klicken Sie auf „Überprüfen“, um zu überprüfen, ob die Verbindung ordnungsgemäß eingerichtet wurde. Dabei kann die folgende Fehlermeldung auftreten:

    Screenshot: Fehlermeldung zur Dienstverbindung

  7. In diesem Fall müssen Sie dem Abonnement die Rolle „Leser“ zuweisen.

  8. Daraufhin sollte die Überprüfung erfolgreich sein.

  9. Speichern Sie die Dienstverbindung.

    Screenshot: Anzeigen der Mandanten-ID

  10. Navigieren Sie zu „Pipelines“, und klicken Sie auf „Neue Pipeline“.

    Screenshot: Erstellen einer neuen Pipeline

  11. Wählen Sie GitHub als Speicherort für Ihren Code aus.

  12. Wählen Sie das Repository aus. Weitere Informationen finden Sie auf GitHub unter Erstellen eines Repositorys. Abbildung „Auswählen eines GitHub-Repositorys“

    Screenshot: Suchen nach Ihrem Code

  13. Wählen Sie das Repository aus. Weitere Informationen finden Sie unter Erstellen eines Repositorys auf GitHub.

    Screenshot: Auswählen eines GitHub-Repositorys

  14. Sie können aus der Option „Konfigurieren Ihrer Pipeline“ Vorhandene Azure Pipelines-YAML-Datei auswählen. Wählen Sie den Branch und das Pipelineskript aus, die Sie zuvor kopiert haben. (.pipeline/flink-azure-pipelines.yml)

    Screenshot: Konfigurieren der Pipeline

  15. Ersetzen Sie den Wert im Variablenabschnitt.

    Screenshot: Ersetzen eines Werts

  16. Korrigieren Sie den Codebuildabschnitt anhand Ihrer Anforderung, und konfigurieren Sie <JOB_JAR_LOCAL_PATH> im Variablenabschnitt für den lokalen Pfad der JAR-Datei für den Auftrag.

    Screenshot: Codebuildabschnitt

  17. Fügen Sie die Pipelinevariable „action“ hinzu, und konfigurieren Sie den Wert „RUN“.

    Screenshot: Hinzufügen einer Pipelinevariablen

    Sie können die Werte der Variablen vor dem Ausführen der Pipeline ändern.

    • NEW: Dies ist der Standardwert. Er startet einen neuen Auftrag und aktualisiert den laufenden Auftrag mit der neuesten JAR-Datei, wenn der Auftrag bereits ausgeführt wird.

    • SAVEPOINT: Dieser Wert übernimmt den Speicherpunkt für den ausgeführten Auftrag.

    • DELETE: Dieser Wert bricht den ausgeführten Auftrag ab oder löscht ihn.

  18. Speichern Sie die Pipeline, und führen Sie sie aus. Sie können den ausgeführten Auftrag im Portal im Abschnitt „Flink-Aufträge“ anzeigen.

    Screenshot: Speichern und Ausführen einer Pipeline

Hinweis

Dies ist ein Beispiel zum Übermitteln des Auftrags mithilfe einer Pipeline. Sie können der Dokumentation zur Flink-REST-API folgen, um Ihren eigenen Code zum Übermitteln eines Auftrags zu schreiben.