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
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.
Bei Aktualisierung über Synapse Studio:
Für Python-Feedbibliotheken laden Sie die Umgebungskonfigurationsdatei mithilfe der Dateiauswahl im Abschnitt Pakete auf der Seite hoch.
Sie können auch zusätzliche Arbeitsbereichspakete auswählen, um JAR-, Wheel- oder TAR.GZ-Dateien zu Ihrem Pool hinzuzufügen.
Sie können auch die veralteten Pakete aus dem Abschnitt Arbeitsbereichspakete entfernen, Ihr Pool wird diese Pakete nicht mehr anfügen.
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.
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
- Navigieren Sie auf der Registerkarte Überwachen zur Liste der Spark-Anwendungen.
- Wählen Sie den Spark-Systemanwendungsauftrag aus, der Ihrem Poolupdate entspricht. Diese Systemaufträge werden unter dem Titel SystemReservedJob-LibraryManagement ausgeführt.
- Wechseln Sie zur Anzeige der Protokolle driver und stdout.
- Innerhalb der Ergebnisse werden die Protokolle angezeigt, die sich auf die Installation Ihrer Abhängigkeiten beziehen.
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
- Anzeigen der Standardbibliotheken: Versionsunterstützung für Apache Spark
- Beheben von Fehler bei der Bibliotheksinstallation: Beheben von Fehlern bei der Bibliotheksinstallation