Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Auf dieser Seite werden bewährte Methoden zum Konfigurieren klassischer Computeressourcen beschrieben. Für die meisten neuen Workloads empfiehlt Databricks die Verwendung von serverlosem Compute, was keine Konfiguration erfordert. Wenn Ihre Workload auf serverlosem Compute nicht unterstützt wird (siehe Serverlose Einschränkungen), verwenden Sie die folgenden bewährten Methoden, um eine klassische Computeressource zu konfigurieren.
Hinweis
Strukturierte Streaming-Workflows weisen spezifische Konfigurationsempfehlungen auf. Weitere Informationen finden Sie unter Produktionsüberlegungen für strukturiertes Streaming.
Zugriffsmodus
Klassische Computeressourcen können entweder dem Standard- oder dedizierten Zugriffsmodus zugewiesen werden, der bestimmt, wer die Computeressource anfügen und verwenden kann.
Databricks empfiehlt die Verwendung des Standardzugriffsmodus für die meisten Workloads. Standard-Rechenressourcen können von mehreren Benutzern und Gruppen gemeinsam genutzt werden, wobei die Benutzerisolation und sämtliche Datenzugriffsberechtigungen durchgesetzt werden. Dadurch wird dies für die meisten Workloads zu einer einfacheren, kostengünstigen Option.
Verwenden Sie nur den dedizierten Zugriffsmodus, wenn Ihre Workload bestimmte Standardberechnungseinschränkungen aufweist, z. B. ML-Runtime auf GPU, RDD-APIs oder R. Weitere Informationen finden Sie unter Standard compute requirements and limitations.
Wenn Unity Catalog aktiviert ist, setzen Sie spark.databricks.passthrough.enabled nicht. Der Passthrough von Anmeldeinformationen ist ein veralteter Zugriffsmodus, der mit Unity Catalog nicht kompatibel ist.
Siehe Zugriffsmodi.
Databricks Runtime-Version
Verwenden Sie die neueste Long-Term Support (LTS) Databricks Runtime-Version. LTS-Versionen erhalten erweiterte Sicherheitspatches und Bugfixes, um sicherzustellen, dass Ihre Workloads stabil und kompatibel mit den neuesten Plattformfeatures bleiben.
Wählen Sie nur eine Machine Learning Runtime aus, wenn Ihre Workload GPUs, verteilte ML-Schulungen oder AutoML verwendet. Databricks Runtime für ML installiert eine Vielzahl von Bibliotheken, die, wenn sie nicht benötigt werden, mit Ihren eigenen Abhängigkeiten in Konflikt geraten können, was zu Fehlern oder unbemerkten Korrektheitsproblemen führen kann. Siehe Trainieren von KI- und ML-Modellen.
Konfigurationshygiene
Diese Methoden sorgen dafür, dass Ihre Computekonfigurationen sauber sind und Ihre Workloads portabel sind.
Vermeiden der Verwendung von Init-Skripts
Init-Skripts können unerwartete Verhaltensweisen verursachen, einschließlich Bibliothekskonflikten, die Arbeitsauslastungen unterbrechen und Umgebungen weniger vorhersehbar machen. Fügen Sie stattdessen Ihren Rechenrichtlinien Bibliotheken hinzu, verwenden Sie %pip install in Notebooks oder definieren Sie Abhängigkeiten in einer Umgebungsspezifikation. Siehe Hinzufügen von Bibliotheken zu einer Richtlinie.
Vermeiden Sie das feste Codieren von Spark-Konfigurationen
Vermeiden Sie fest codierte Spark-Konfigurationen (wie z. B. spark.executor.memory oder spark.dynamicAllocation.*) in Compute- oder Auftragsdefinitionen. Hartcodierte Werte überschreiben die integrierten Optimierungen, die Azure Databricks bereitstellt, was häufig zu verschwendeten Ausgaben oder beeinträchtigter Leistung führt. Verwenden Sie notebookbezogene Sitzungskonfigurationen nur, wenn Sie einen bestimmten Grund haben, eine Standardeinstellung zu überschreiben.
Vermeiden lokaler Speicherpfade für Compute
Speichern Sie keine Daten auf lokalen Pfaden der Compute-Instanz, da diese nicht über deren Lebenszyklus hinaus erhalten bleiben. Verwenden Sie stattdessen Unity-Katalogvolumes oder temporären Speicher. Siehe Was sind Volumes?.
Vermeiden Sie DBFS-Mounts
DBFS-Bereitstellungen verfügen nicht über ordnungsgemäße Zugriffssteuerungslisten (ACLs). Verwenden Sie stattdessen Unity-Katalogvolumes oder Arbeitsbereichsdateisysteme (WSFS). Siehe Was sind Volumes?.
Vermeiden der Installation von Bibliotheken im Bereich Compute
Die Installation von Bibliotheken auf Compute-Ebene führt zu Abweichungen der Umgebungen zwischen Aufträgen. Verwenden Sie %pip install stattdessen in Notizbüchern oder definieren Sie Abhängigkeiten in einer Umgebungsspezifikation. Dies erleichtert auch die Migration klassischer Workloads zu serverlosen Arbeitslasten.
Leistung
Bewerten, ob Sie von Photon profitieren würden
Viele Workloads profitieren von Photon, aber am vorteilhaftesten ist es für SQL-Workloads und DataFrame-Vorgänge bei komplexen Transformationen wie Joins, Aggregationen und Datenscans bei großen Tabellen. Workloads mit häufigem Datenträgerzugriff, breiten Tabellen oder wiederholter Datenverarbeitung profitieren ebenfalls von einer verbesserten Leistung.
Einfache ETL-Batchaufträge, die keine breiten Transformationen oder große Datenvolumes umfassen, können minimale Auswirkungen auf die Aktivierung von Photon haben, insbesondere, wenn Abfragen in der Regel in weniger als zwei Sekunden abgeschlossen sind.
Verwenden der automatischen Skalierung
Konfigurieren Sie die automatische Skalierung, damit zeitintensive Aufgaben während der Ausführung des Auftrags Workerknoten dynamisch hinzufügen und entfernen können. Siehe Aktivieren der automatischen Skalierung
Verwenden von Instanzpools zur Reduzierung der Startzeiten
Instanzpools reservieren Computeressourcen von Ihrem Cloudanbieter. Pools verringern die Startzeit des neuen Clusters und stellen die Verfügbarkeit von Computeressourcen sicher. Siehe Poolkonfigurationsreferenz.
Kostenoptimierung
Rechenrichtlinien verwenden
Azure Databricks empfiehlt die Verwendung von Computingrichtlinien. Mit Richtlinien für Compute-Ressourcen können Sie vorkonfigurierte Compute-Ressourcen erstellen, die für bestimmte Zwecke vorgesehen sind, z. B. für persönliches Compute, gemeinsam genutztes Compute, Power-User und Jobs. Richtlinien beschränken die Entscheidungen, die Sie beim Konfigurieren von Computeeinstellungen treffen müssen.
Wenn Sie keinen Zugriff auf Richtlinien haben, wenden Sie sich an Ihren Arbeitsbereichsadministrator. Siehe Standardrichtlinien und Richtlinienfamilien.
Verwenden Sie Spotinstanzen
Konfigurieren Sie Spotinstanzen für Workloads mit laxen Latenzanforderungen, um Kosten zu optimieren. Weitere Informationen finden Sie unter Spot-Instanzen.
Überlegungen zur Dimensionierung der Rechenleistung
Hinweis
Die folgenden Empfehlungen gehen davon aus, dass Sie über eine uneingeschränkte Clustererstellung verfügen. Arbeitsbereichsadministratoren sollten diese Berechtigung nur erweiterten Benutzern gewähren.
Wenn es um die Größe der Rechenkapazität geht, denken viele oft an die Anzahl der Worker, aber es gibt noch andere wichtige Faktoren, die berücksichtigt werden sollten:
- Gesamtzahl der Executor-Kerne (Rechenleistung): Die Gesamtzahl der Kerne über alle Executor hinweg. Dies bestimmt die maximale Parallelität einer Berechnung.
- Gesamter Executorspeicher: Die Gesamtmenge des RAM für alle Executors. Dies bestimmt, wie viele Daten im Speicher gehalten werden können, bevor sie auf den Datenträger ausgelagert werden.
- Lokaler Executorspeicher: Der Typ und die Menge des lokalen Datenträgerspeichers. Der lokale Festplattenspeicher wird in erster Linie für den Fall verwendet, dass es bei Shuffles und Caching zu einem Überlauf kommt.
Weitere Überlegungen sind der Typ und die Größe der Workerinstanz, die sich auch auf die oben genannten Faktoren auswirken. Berücksichtigen Sie bei der Dimensionierung Ihres Rechners folgendes:
- Wie viele Daten wird Ihr Workload verbrauchen?
- Was ist die Rechenkomplexität Ihrer Workload?
- Woher lesen Sie Daten?
- Wie werden die Daten im externen Speicher partitioniert?
- Wie viel Parallelität wird benötigt?
Es gibt einen Ausgleich zwischen der Anzahl der Worker und der Größe der Workerinstanztypen. Ein Compute, das mit zwei Workern mit jeweils 16 Kernen und 128 GB RAM konfiguriert wird, verfügt über die gleiche Rechenleistung und den gleichen Speicher wie ein Compute mit 8 Workern mit jeweils 4 Kernen und 32 GB RAM.
Beispiele für Rechenkonfigurationen
Die folgenden Beispiele zeigen Compute-Empfehlungen, die auf bestimmten Arten von Workloads basieren. Diese Beispiele enthalten auch zu vermeidende Konfigurationen sowie Erläuterungen dazu, warum diese Konfigurationen für die jeweiligen Workload-Typen nicht geeignet sind.
Hinweis
Alle Beispiele in diesem Abschnitt würden davon profitieren, serverloses Computing zu verwenden, anstatt eine neue Rechenressource bereitzustellen. Wenn Ihre Workload auf serverlosen Servern nicht unterstützt wird, verwenden Sie die folgenden Empfehlungen, um die klassische Computeressource zu konfigurieren.
Datenanalyse
Datenanalysten führen in der Regel Verarbeitungsvorgänge durch, die Daten aus mehreren Partitionen erfordern, was zu vielen Shufflevorgängen führt. Eine Computeressource mit einer kleineren Anzahl größerer Knoten kann die Netzwerk- und Datenträger-E/A reduzieren, die zum Ausführen dieser Shuffles erforderlich sind.
Eine Einzelknotenberechnung mit einem großen VM-Typ ist wahrscheinlich die beste Wahl, insbesondere für einen einzelnen Analysten.
Analytische Workloads erfordern wahrscheinlich das wiederholte Lesen derselben Daten, daher sind empfohlene Knotentypen datenspeicheroptimiert, wenn Disk Cache aktiviert ist oder bei Instanzen mit lokalem Speicher.
Zu den für analytische Workloads empfohlenen zusätzlichen Features gehören:
- Aktivieren Sie die automatische Beendigung, um sicherzustellen, dass das Compute nach einem Zeitraum der Inaktivität beendet wird.
- Erwägen Sie, die automatische Skalierung basierend auf der typischen Workload des Analysten zu aktivieren.
Grundlegendes Batch-ETL
Verwenden Sie für einfache ETL-Aufträge, für die keine breiten Transformationen erforderlich sind, z. B. Verknüpfungen oder Aggregationen, Instanzen mit niedrigeren Anforderungen für Arbeitsspeicher und Speicher. Dies kann zu Kosteneinsparungen gegenüber anderen Arbeitstypen führen.
Komplexe Batch-ETL
Für einen komplexen ETL-Auftrag, z. B. eine Aufgabe, die Unions und Joins über mehrere Tabellen hinweg erfordert, empfiehlt Azure Databricks die Verwendung weniger Worker, um die Menge gemischter Daten zu reduzieren. Um weniger Worker zu haben, erhöhen Sie die Größe Ihrer Instanzen.
Komplexe Transformationen können rechenintensiv sein. Wenn Sie einen erheblichen Überlauf auf Datenträger- oder OOM-Fehler beobachten, erhöhen Sie die Menge an Arbeitsspeicher, der für Ihre Instanzen verfügbar ist.
Optional können Sie Instanzenpools verwenden, um die Rechenstartzeiten zu verringern und die Gesamtlaufzeit beim Ausführen von Auftragspipelines zu verringern.
Trainieren von Machine Learning-Modellen
Um Machine Learning-Modelle zu trainieren, empfiehlt Azure Databricks das Erstellen einer Computeressource mithilfe der Personal Compute Policy.
Verwenden Sie für erste Experimente eine Einzelknoten-Berechnung mit einem großen Knotentyp. Weniger Knoten reduzieren die Auswirkungen von Shuffles.
Das Hinzufügen weiterer Worker kann zur Stabilität beitragen, aber fügen Sie nicht zu viele Worker hinzu, da das Mischen von Daten zusätzlichen Aufwand verursacht.
Empfohlen werden datenspeicheroptimierte Worker-Typen mit aktiviertem Disk-Caching oder einer Instanz mit lokalen Speicher, um wiederholte Lesevorgänge derselben Daten zu berücksichtigen und die Zwischenspeicherung von Trainingsdaten zu ermöglichen.
Zu den zusätzlichen Features, die für Machine Learning-Workloads empfohlen werden, gehören:
- Aktivieren Sie die automatische Beendigung, um sicherzustellen, dass das Compute nach einem Zeitraum der Inaktivität beendet wird.
- Verwenden Sie Instanzpools, die das Einschränken der Berechnung auf einen vorab genehmigten Instanztyp ermöglichen.
- Stellen Sie mithilfe von Richtlinien konsistente Computekonfigurationen sicher.