Teilen über


Verwalten von Bibliotheken für Apache Spark-Pools in Azure Synapse Analytics

Sobald Sie die Scala-, Java- oder Python-Pakete oder das R-Paket (Vorschau) identifiziert haben, die Sie für Ihre Spark-Anwendung verwenden oder aktualisieren möchten, können Sie diese in einen Spark-Pool installieren oder entfernen. Bibliotheken auf Poolebene sind für alle Notebooks und Aufträge verfügbar, die im Pool ausgeführt werden.

Es gibt zwei Hauptmethoden zum Installieren einer Bibliothek in einem Spark-Pool:

  • Installieren Sie eine Arbeitsbereichsbibliothek, die als Arbeitsbereichspaket hochgeladen wurde.
  • Stellen Sie zum Aktualisieren von Python-Paketen eine Umgebungsspezifikation requirements.txt oder Conda environment.yml bereit, um Pakete aus Repositorys wie PyPI oder Conda-Forge zu installieren. Weitere Informationen finden Sie im Abschnitt über die Umgebungsspezifikation.

Nachdem die Änderungen gespeichert wurden, wird die Installation durch einen Spark-Auftrag ausgeführt und die resultierende Umgebung zur späteren Wiederverwendung zwischengespeichert. Sobald der Auftrag fertiggestellt wurde, werden bei neuen Spark-Aufträgen oder Notebook-Sitzungen die aktualisierten Poolbibliotheken verwendet.

Wichtig

  • Wenn das Paket, das Sie installieren, groß ist oder seine Installation lange dauert, wirkt sich dies auf die Startzeit der Spark-Instanz aus.
  • Das Ändern der Version von PySpark, Python, Scala/Java, .NET, R oder Spark wird nicht unterstützt.
  • Das Installieren von Paketen aus externen Repositorys wie PyPI, Conda-Forge oder den Conda-Standardkanälen wird in DEP-fähigen Arbeitsbereichen (Data Exfiltration Protection, Schutz vor Datenexfiltration) nicht unterstützt.

Verwalten von Paketen über Synapse Studio oder das Azure-Portal

Spark-Poolbibliotheken können entweder über Synapse Studio oder über das Azure-Portal verwaltet werden.

So aktualisieren Sie Bibliotheken oder fügen sie einem Spark-Pool hinzu

  1. Navigieren Sie im Azure-Portal zu Ihrem Azure Synapse Analytics-Arbeitsbereich.

    Bei Aktualisierung über das Azure-Portal:

    • Wählen Sie im Abschnitt Synapse-Ressourcen die Registerkarte Apache Spark-Pools aus, und wählen Sie einen Spark-Pool aus der Liste aus.

    • Wählen Sie im Abschnitt Einstellungen des Spark-Pools die Option Pakete aus. Screenshot mit Schaltfläche zum Hochladen der Umgebungskonfigurationsdatei.

    Bei Aktualisierung über Synapse Studio:

    • Wählen Sie im Hauptnavigationsbereich Verwalten aus und dann Apache Spark-Pools.

    • Wählen Sie den Abschnitt Pakete für einen bestimmten Spark-Pool aus. Screenshot: Hervorhebung der Protokolle der Bibliotheksinstallation

  2. Für Python-Feedbibliotheken laden Sie die Umgebungskonfigurationsdatei mithilfe der Dateiauswahl im Abschnitt Pakete auf der Seite hoch.

  3. Sie können auch zusätzliche Arbeitsbereichspakete auswählen, um JAR-, Wheel- oder TAR.GZ-Dateien zu Ihrem Pool hinzuzufügen.

  4. Sie können auch die veralteten Pakete aus dem Abschnitt Arbeitsbereichspakete entfernen, Ihr Pool wird diese Pakete nicht mehr anfügen.

  5. Nachdem Sie Ihre Änderungen gespeichert haben, wird ein Systemauftrag ausgelöst, um die angegebenen Bibliotheken zu installieren und zwischenzuspeichern. Durch diesen Vorgang wird die Gesamtstartzeit der Sitzung reduziert.

  6. Sobald der Auftrag erfolgreich abgeschlossen wurde, werden in allen neuen Sitzungen die aktualisierten Poolbibliotheken abgerufen.

Wichtig

Wenn Sie die Option Neue Einstellungen erzwingen aktivieren, beenden Sie damit alle aktuellen Sitzungen für den ausgewählten Spark-Pool. Nachdem die Sitzungen beendet wurden, müssen Sie warten, bis der Pool neu gestartet wird.

Wenn diese Einstellung deaktiviert ist, müssen Sie warten, bis die aktuelle Spark-Sitzung beendet wird, oder sie manuell beenden. Nachdem die Sitzung beendet wurde, müssen Sie den Pool neu starten.

Nachverfolgen des Installationsstatus

Bei jeder Aktualisierung eines Pools mit einem neuen Satz von Bibliotheken wird ein vom System reservierter Spark-Auftrag initiiert. Mit diesem Spark-Auftrag können Sie den Status der Bibliotheksinstallation überwachen. Wenn bei der Installation aufgrund von Bibliothekskonflikten oder anderen Problemen ein Fehler auftritt, wird der Spark-Pool auf den vorherigen oder den Standardzustand zurückgesetzt.

Darüber hinaus können Benutzer auch die Installationsprotokolle überprüfen, um Abhängigkeitskonflikte zu identifizieren oder zu ermitteln, welche Bibliotheken während des Poolupdates installiert wurden.

So zeigen Sie diese Protokolle an

  1. Navigieren Sie auf der Registerkarte Überwachen zur Liste der Spark-Anwendungen.
  2. Wählen Sie den Spark-Systemanwendungsauftrag aus, der Ihrem Poolupdate entspricht. Diese Systemaufträge werden unter dem Titel SystemReservedJob-LibraryManagement ausgeführt. Screenshot mit vom System reservierten Bibliotheksauftrag.
  3. Wechseln Sie zur Anzeige der Protokolle driver und stdout.
  4. Innerhalb der Ergebnisse werden die Protokolle angezeigt, die sich auf die Installation Ihrer Abhängigkeiten beziehen. Screenshot mit Ergebnissen der vom System reservierten Bibliotheksaufträge.

Formate für Umgebungsspezifikationen

PIP-Datei „requirements.txt“

Sie können eine Datei requirements.txt (Ausgabe des Befehls pip freeze) verwenden, um ein Upgrade der Umgebung durchzuführen. Bei der Aktualisierung eines Pools werden die in dieser Datei aufgeführten Pakete aus PyPI heruntergeladen. Die vollständigen Abhängigkeiten werden dann zwischengespeichert und zur späteren Wiederverwendung des Pools gespeichert.

Der folgende Codeausschnitt zeigt das Format für die Anforderungsdatei. Der Name des PyPI-Pakets wird zusammen mit einer exakten Version aufgeführt. Diese Datei hält das Format ein, das in der Referenzdokumentation zu pip freeze beschrieben wird.

Dieses Beispiel verwendet eine bestimmte Version.

absl-py==0.7.0
adal==1.2.1
alabaster==0.7.10

YML-Format

Darüber hinaus können Sie auch eine Datei environment.yml bereitstellen, um die Poolumgebung zu aktualisieren. Die in dieser Datei aufgeführten Pakete werden aus den Conda-Standardkanälen „Conda-Forge“ und „PyPI“ heruntergeladen. Mithilfe der Konfigurationsoptionen können Sie andere Kanäle angeben oder die Standardkanäle entfernen.

In diesem Beispiel werden die Kanäle und die Conda-/PyPI-Abhängigkeiten angegeben.

name: stats2
channels:
- defaults
dependencies:
- bokeh
- numpy
- pip:
  - matplotlib
  - koalas==1.7.0

Ausführliche Informationen zum Erstellen einer Umgebung aus dieser Datei „environment.yml“ finden Sie unter Erstellen einer Umgebung aus einer Datei „environment.yml“.

Nächste Schritte