Was sind Initskripts?
Ein Initskript (Initialisierungsskript) ist ein Shellskript, das beim Start der einzelnen Clusterknoten ausgeführt wird, bevor die JVM des Apache Spark-Treibers oder -Executors gestartet wird. Dieser Artikel enthält Empfehlungen für Initialisierungsskripts und Konfigurationsinformationen, wenn Sie sie verwenden müssen.
Empfehlungen für init-Skripts
Databricks empfiehlt, wann immer möglich integrierte Plattformfunktionen anstelle von Initialisierungsskripts zu verwenden. Die weit verbreitete Verwendung von Init-Skripts kann die Migration zu neuen Databricks-Runtime-Versionen verlangsamen und die Akzeptanz einiger Databricks-Optimierungen verhindern.
Wichtig
Wenn Sie von Initialisierungsskripts auf DBFS migrieren müssen, lesen Sie Migrieren von Initialisierungsskripts aus DBFS.
Die folgenden Databricks-Features behandeln einige der gängigen Anwendungsfälle für init-Skripts:
- Verwenden Sie Computerichtlinien, um Systemeigenschaften, Umgebungsvariablen und Spark-Konfigurationsparameter festzulegen. Siehe Computerichtlinienreferenz.
- Fügen Sie Bibliotheken zu Clusterrichtlinien hinzu. Weitere Informationen finden Sie unter Hinzufügen von Bibliotheken zu einer Richtlinie.
Wenn Sie Initialisierungsskripts verwenden müssen:
- Verwalten von Initialisierungsskripts mithilfe von Compute-Richtlinien oder Initialisierungsskripts im Clusterbereich anstelle von globalen Initialisierungsskripts. Siehe Typen von Initialisierungsskripts.
- Verwalten Sie die Bibliotheksinstallation für Produktions- und interaktive Umgebungen mithilfe von Compute-Richtlinien. Installieren Sie keine Bibliotheken mithilfe von Init-Skripts.
- Verwenden Sie den Zugriffsmodus „Freigegeben“ für alle Workloads. Verwenden Sie nur den Einzelbenutzerzugriffsmodus, wenn die erforderliche Funktionalität nicht vom Modus für den freigegebenen Zugriff unterstützt wird.
- Verwendung neuer Databricks-Runtime-Versionen und des Unity-Katalogs für alle Workloads.
Die folgende Tabelle enthält Empfehlungen nach Databricks-Runtime-Version und Unity Catalog-Aktivierung organisiert.
Environment | Empfehlung |
---|---|
Databricks Runtime 13.3 LTS und höher mit Unity-Katalog | Speichern von Initialisierungsskripten in Unity-Katalog-Volumes. |
Databricks Runtime 11.3 LTS und höher ohne Unity-Katalog | Speichern von Initialisierungsskripten in Arbeitsbereichsdateien. (Die Dateigröße ist auf 500 GB begrenzt). |
Databricks Runtime 10.4 LTS und niedriger | Speichern von Initialisierungsskripten mithilfe des Cloudobjektspeichers. |
Welche Arten von Initskripts unterstützt Azure Databricks?
Azure Databricks unterstützt zwei Arten von Initialisierungsskripts: Clusterbereich und global, aber die Verwendung von Cluster-bezogenen Initialisierungsskripts wird empfohlen.
- Clusterspezifisch: Clusterspezifische Skripts werden in allen Clustern ausgeführt, die mit dem Skript konfiguriert wurden. Dies ist die empfohlene Methode für das Ausführen eines Initialisierungsskripts. Weitere Informationen finden Sie unter Verwenden von Initialisierungsskripts im Clusterbereich.
- Global: wird in allen Clustern im Arbeitsbereich ausgeführt, die mit dem Einzelbenutzerzugriffsmodus oder freigegebenen Zugriffsmodus ohne Isolation konfiguriert sind. Diese Initialisierungsskripts können unerwartete Probleme verursachen, z. B. Bibliothekskonflikte. Globale Initialisierungsskripts können nur von Arbeitsbereichsadministrator-Benutzern erstellt werden. Weitere Informationen finden Sie unter Verwenden von globalen Initskripts.
Bei jeder Änderung des Initialisierungsskripttyps müssen Sie alle Cluster, die von dem jeweiligen Skript betroffen sind, neu starten.
Globale Initialisierungsskripts werden vor clusterbezogenen Initialisierungsskripts ausgeführt.
Wichtig
Legacy globale und Legacy Cluster-benannte Initskripts werden vor anderen Initskripts ausgeführt. Diese Initialisierungsskripts werden nicht mehr unterstützt, sind jedoch möglicherweise in Arbeitsbereichen vorhanden, die vor dem 21. Februar 2023 erstellt wurden. Siehe Cluster-benannte Initialisierungsskripts (Legacy) und globale Initialisierungsskripts (Legacy).
Wo können Initialisierungsskripts installiert werden?
Sie können Initialisierungsskripts aus Arbeitsbereichsdateien, Unity-Katalogvolumen und Cloudobjektspeichern speichern und konfigurieren. Initialisierungsskripts werden jedoch nicht für alle Clusterkonfigurationen unterstützt, und nicht auf alle Dateien kann von Initialisierungsskripts verwiesen werden. Empfehlungen zur Umgebung für init-Skripts finden Sie unter Empfehlungen für init-Skripts.
Die folgende Tabelle gibt die Unterstützung für Initialisierungsskripts basierend auf dem Quellspeicherort und dem Clusterzugriffsmodus an. Die aufgeführte Databricks Runtime-Version ist die Mindestversion, die für die Verwendung der Kombination erforderlich ist. Informationen zu Clusterzugriffsmodi finden Sie unter Zugriffsmodi.
Hinweis
Der Modus für den freigegebenen Zugriff erfordert, dass ein Administrator Initialisierungsskripts zu allowlist
hinzufügen kann. Weitere Informationen finden Sie unter Positivliste von Bibliotheken und Initialisierungsskripts auf freigegebenem Compute.
Zugriffsmodus „Freigegeben“ | Einzelzugriffsmodus | Zugriffsmodus „keine Isolation, freigegeben“ | |
---|---|---|---|
Arbeitsbereichsdateien | Nicht unterstützt | Alle unterstützten Databricks Runtime-Versionen. In Versionen unter 11.3 LTS werden init-Skripts, die auf andere Arbeitsbereichsdateien verweisen, nicht unterstützt. |
Alle unterstützten Databricks Runtime-Versionen. |
Volumes | 13.3 LTS und höher | 13.3 LTS und höher | Nicht unterstützt |
Cloudspeicher | 13.3 LTS und höher | Alle unterstützten Databricks Runtime-Versionen | Alle unterstützten Databricks Runtime-Versionen |
Migrieren von Initialisierungsskripts aus DBFS
Warnung
Initialisierungsskripts auf DBFS haben das Ende der Lebensdauer erreicht und können nicht mehr verwendet werden. Sie müssen Ihre Initialisierungsskripts zu einem unterstützten Speicherort migrieren, bevor Sie mit der Berechnung beginnen können. Speichern Sie Initialisierungsskripts auf Unity Catalog-Volumes als Arbeitsbereichsdateien oder im Cloudobjektspeicher.
Benutzer*innen, die Initialisierungsskripts aus DBFS migrieren müssen, können die folgenden Leitfäden verwenden. Stellen Sie sicher, dass Sie das richtige Ziel für Ihre Konfiguration identifiziert haben. Weitere Informationen finden Sie unter Empfehlungen für Initialisierungsskripts.