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
Erstellen Sie eine Azure Key Vault-Instanz. Hierzu können Sie dieses Tutorial befolgen.
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
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
Navigieren Sie zu Ihrem Projekt, und klicken Sie auf „Projekteinstellungen“.
Scrollen Sie nach unten, und wählen Sie „Dienstverbindungen“ und dann „Neue Dienstverbindung“ aus.
Wählen Sie Azure Resource Manager aus.
Wählen Sie in den Authentifizierungsmethoden die Option „Dienstprinzipal (manuell)“ aus.
Bearbeiten Sie die Eigenschaften der Dienstverbindung. Wählen Sie den Dienstprinzipal aus, den Sie kürzlich erstellt haben.
Klicken Sie auf „Überprüfen“, um zu überprüfen, ob die Verbindung ordnungsgemäß eingerichtet wurde. Dabei kann die folgende Fehlermeldung auftreten:
In diesem Fall müssen Sie dem Abonnement die Rolle „Leser“ zuweisen.
Daraufhin sollte die Überprüfung erfolgreich sein.
Speichern Sie die Dienstverbindung.
Navigieren Sie zu „Pipelines“, und klicken Sie auf „Neue Pipeline“.
Wählen Sie GitHub als Speicherort für Ihren Code aus.
Wählen Sie das Repository aus. Weitere Informationen finden Sie auf GitHub unter Erstellen eines Repositorys. Abbildung „Auswählen eines GitHub-Repositorys“
Wählen Sie das Repository aus. Weitere Informationen finden Sie unter Erstellen eines Repositorys auf GitHub.
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)
Ersetzen Sie den Wert im Variablenabschnitt.
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.
Fügen Sie die Pipelinevariable „action“ hinzu, und konfigurieren Sie den Wert „RUN“.
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.
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.
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.