Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Na tej stronie przedstawiono najlepsze rozwiązania dotyczące konfigurowania klasycznych zasobów obliczeniowych. W przypadku większości nowych obciążeń usługa Databricks zaleca korzystanie z bezserwerowych obliczeń, co nie wymaga konfiguracji. Jeśli obciążenie nie jest obsługiwane w przypadku obliczeń bezserwerowych (zobacz Ograniczenia bezserwerowe), skorzystaj z poniższych najlepszych rozwiązań, aby skonfigurować klasyczny zasób obliczeniowy.
Uwaga
Przepływy pracy strukturalnego przesyłania strumieniowego mają określone zalecenia dotyczące konfiguracji. Zobacz Zagadnienia dotyczące produkcji Structured Streaming.
Tryb dostępu
Klasyczne zasoby obliczeniowe można przypisać do standardowego lub dedykowanego trybu dostępu, który określa, kto może dołączać do zasobu obliczeniowego i korzystać z niego.
Usługa Databricks zaleca używanie standardowego trybu dostępu dla większości obciążeń. Standardowe zasoby obliczeniowe mogą być współużytkowane przez wielu użytkowników i grupy, jednocześnie wymuszając izolację użytkowników i wszystkie uprawnienia dostępu do danych. To sprawia, że jest to łatwiejsze w zarządzaniu i bardziej opłacalne rozwiązanie dla większości obciążeń.
Używaj trybu dedykowanego dostępu tylko wtedy, gdy obciążenie ma określone standardowe ograniczenia obliczeniowe, takie jak środowisko uruchomieniowe uczenia maszynowego na procesorze GPU, interfejsy API RDD lub R. Aby uzyskać więcej informacji, zobacz Standardowe wymagania i ograniczenia dotyczące obliczeń.
Jeśli Unity Catalog jest włączony, nie ustawiaj spark.databricks.passthrough.enabled. Przekazywanie poświadczeń to starszy tryb dostępu, który nie jest zgodny z Unity Catalog.
Zobacz tryby dostępu.
Wersja środowiska uruchomieniowego usługi Databricks
Użyj najnowszej wersji Databricks Runtime z długoterminowym wsparciem (LTS). Wersje LTS otrzymują rozszerzone poprawki zabezpieczeń i poprawki błędów, zapewniając, że obciążenia pozostają stabilne i zgodne z najnowszymi funkcjami platformy.
Wybierz tylko środowisko uruchomieniowe uczenia maszynowego, jeśli obciążenie używa procesorów GPU, rozproszonego trenowania uczenia maszynowego lub rozwiązania AutoML. Środowisko Databricks Runtime dla uczenia maszynowego instaluje duży zestaw bibliotek, które mogą powodować konflikt z własnymi zależnościami, jeśli nie są potrzebne, powodując błędy lub problemy z dyskretną poprawnością. Zobacz Trenowanie modeli sztucznej inteligencji i uczenia maszynowego.
Higiena konfiguracji
Te rozwiązania umożliwiają czyszczenie konfiguracji obliczeniowych i przenoszenie obciążeń.
Unikaj używania skryptów inicjowania
Skrypty inicjalizacyjne mogą powodować nieoczekiwane zachowania, w tym konflikty bibliotek, które zakłócają działanie obciążeń i sprawiają, że środowiska są mniej przewidywalne. Zamiast tego dodaj biblioteki do zasad obliczeniowych, użyj %pip install w notesach lub zdefiniuj zależności w specyfikacji środowiska. Zobacz Dodawanie bibliotek do zasad.
Unikaj tworzenia twardych konfiguracji platformy Spark
Unikaj trwałego kodowania konfiguracji platformy Spark (takich jak spark.executor.memory lub spark.dynamicAllocation.*) w definicjach obliczeń lub zadań. Zakodowane na stałe wartości zastępują wbudowane optymalizacje, które Azure Databricks zapewnia, co często prowadzi do marnotrawstwa wydatków lub obniżonej wydajności. Używaj konfiguracji sesji na poziomie notesu tylko wtedy, gdy masz konkretny powód, aby nadpisać ustawienie domyślne.
Unikaj lokalnych ścieżek magazynu zasobów obliczeniowych
Nie przechowuj danych na ścieżkach obliczeniowych lokalnych, które nie są utrwalane poza cyklem życia obliczeń. Zamiast tego użyj wolumenów Unity Catalog lub tymczasowej przestrzeni dyskowej. Zobacz Co to są woluminy?.
Unikanie instalacji systemu plików DBFS
Punkty montowania DBFS nie mają prawidłowych list kontroli dostępu (ACL). Zamiast tego użyj wolumenów Unity Catalog lub systemu plików obszaru roboczego (WSFS). Zobacz Co to są woluminy?.
Unikaj instalowania bibliotek przeznaczonych dla zasobów obliczeniowych
Instalowanie bibliotek na poziomie obliczeniowym powoduje dryf środowiska między zadaniami. Zamiast tego należy używać %pip install w notesach lub definiować zależności w specyfikacji środowiska. Ułatwia to również migrację klasycznych obciążeń do bezserwerowych.
Wydajność
Ocenianie, czy skorzystasz z aplikacji Photon
Wiele obciążeń korzysta z rozwiązania Photon, ale jest najbardziej korzystne w przypadku obciążeń SQL i operacji ramek danych obejmujących złożone przekształcenia, takie jak sprzężenia, agregacje i skanowanie danych w dużych tabelach. Obciążenia z częstym dostępem do dysku, szerokimi tabelami lub powtarzającym się przetwarzaniem danych również widzą lepszą wydajność.
Proste zadania ETL wsadowe, które nie obejmują szerokich przekształceń lub dużych woluminów danych, mogą mieć minimalny wpływ na włączenie funkcji Photon, zwłaszcza jeśli zapytania są zwykle wykonywane w ciągu dwóch sekund.
Używanie skalowania automatycznego
Skonfiguruj skalowanie automatyczne, aby długotrwałe zadania mogły dynamicznie dodawać i usuwać węzły robocze podczas wykonywania zadań. Zobacz Włącz skalowanie automatyczne.
Użyj pul instancji, aby skrócić czas uruchamiania
Pule wystąpień rezerwują zasoby obliczeniowe od dostawcy usług w chmurze. Pule zmniejszają czas rozpoczęcia nowego klastra i zapewniają dostępność zasobów obliczeniowych. Zobacz Referencję konfiguracji puli.
Optymalizacja kosztów
Korzystanie z zasad obliczeniowych
Azure Databricks zaleca korzystanie z zasad obliczeniowych. Zasady obliczeniowe umożliwiają tworzenie wstępnie skonfigurowanych zasobów obliczeniowych przeznaczonych do określonych celów, takich jak obliczenia osobiste, współdzielone zasoby obliczeniowe, użytkownicy zasilania i zadania. Zasady ograniczają decyzje, które należy podjąć podczas konfigurowania ustawień obliczeniowych.
Jeśli nie masz dostępu do zasad, skontaktuj się z administratorem obszaru roboczego. Zobacz Domyślne zasady i rodziny zasad.
Użyj wystąpień typu spot
Skonfiguruj instancje typu spot dla obciążeń, które mają nieścisłe wymagania dotyczące opóźnień, w celu optymalizacji kosztów. Zobacz instancje typu Spot.
Zagadnienia dotyczące ustalania rozmiaru zasobów obliczeniowych
Uwaga
Poniższe zalecenia zakładają, że masz nieograniczone tworzenie klastra. Administratorzy obszaru roboczego powinni przyznać to uprawnienie tylko użytkownikom zaawansowanym.
Ludzie często myślą o rozmiarze obliczeniowym pod względem liczby pracowników, ale istnieją inne ważne czynniki, które należy wziąć pod uwagę:
- Łączna liczba rdzeni funkcji wykonawczej (obliczenia): całkowita liczba rdzeni we wszystkich funkcjach wykonawczych. Określa to maksymalną równoległość obliczeń.
- Łączna ilość pamięci wykonawczej: łączna ilość pamięci RAM we wszystkich funkcjach wykonawczych. Określa to, ile danych można przechowywać w pamięci przed rozlaniem ich na dysk.
- Magazyn lokalny wykonawcy: typ i ilość przestrzeni na dysku lokalnym. Dysk lokalny jest używany głównie w przypadku przepełnień podczas operacji mieszania danych i buforowania.
Dodatkowe zagadnienia obejmują typ i rozmiar instancji roboczej, co również wpływa na powyższe czynniki. Podczas określania rozmiaru zasobów obliczeniowych należy wziąć pod uwagę następujące kwestie:
- Ile danych będzie zużywać obciążenie robocze?
- Jaka jest złożoność obliczeniowa obciążenia?
- Skąd odczytujesz dane?
- W jaki sposób dane są partycjonowane w magazynie zewnętrznym?
- Ile równoległości potrzebujesz?
Istnieje działanie równoważące między liczbą procesów roboczych a rozmiarem typów wystąpień procesu roboczego. Konfigurowanie obliczeń przy użyciu dwóch procesów roboczych, z których każdy ma 16 rdzeni i 128 GB pamięci RAM, ma tę samą pamięć obliczeniową i pamięć, co konfigurowanie obliczeń z 8 procesami roboczymi, z których każdy ma 4 rdzenie i 32 GB pamięci RAM.
Przykłady konfiguracji obliczeniowej
W poniższych przykładach przedstawiono zalecenia dotyczące obliczeń na podstawie określonych typów obciążeń. Te przykłady obejmują również konfiguracje, których należy unikać, oraz wyjaśnienia, dlaczego te konfiguracje nie są odpowiednie dla typów obciążeń.
Uwaga
Wszystkie przykłady w tej sekcji mogą korzystać z zasobów obliczeniowych bezserwerowych zamiast uruchamiania nowego zasobu obliczeniowego. Jeśli Twoje obciążenie nie jest obsługiwane w modelu bezserwerowym, skorzystaj z poniższych zaleceń, aby skonfigurować klasyczny zasób obliczeniowy.
Analiza danych
Analitycy danych zwykle wykonują przetwarzanie wymagające danych z wielu partycji, co prowadzi do wielu operacji mieszania. Zasób obliczeniowy z mniejszą liczbą większych węzłów może zmniejszyć zapotrzebowanie na operacje we/wy sieci i dysku potrzebne do wykonania tych przetasowań.
Obliczenia z jednym węzłem z dużym typem maszyny wirtualnej są prawdopodobnie najlepszym wyborem, szczególnie w przypadku pojedynczego analityka.
Obciążenia analityczne prawdopodobnie będą wymagać wielokrotnego odczytywania tych samych danych, dlatego zalecane typy węzłów są zoptymalizowane pod kątem przechowywania z włączoną pamięcią podręczną dysku lub instancjami z magazynem lokalnym.
Dodatkowe funkcje zalecane w przypadku obciążeń analitycznych obejmują:
- Włącz automatyczne kończenie, aby upewnić się, że obliczenia są przerywane po okresie braku aktywności.
- Rozważ włączenie skalowania automatycznego na podstawie typowego obciążenia analityka.
Podstawowa partia ETL
W przypadku prostych zadań ETL wsadowych, które nie wymagają szerokich przekształceń, takich jak sprzężenia lub agregacje, użyj wystąpień o niższych wymaganiach dotyczących pamięci i magazynu. Może to przynieść oszczędności w porównaniu z innymi typami workerów.
Złożony proces wsadowy ETL
W przypadku złożonego zadania ETL, takiego jak jedno, które wymaga związków zawodowych i sprzężeń w wielu tabelach, Azure Databricks zaleca użycie mniejszej liczby procesów roboczych w celu zmniejszenia ilości danych przetasowanych. Aby zrekompensować mniejszą liczbę pracowników, zwiększ rozmiar swoich wystąpień.
Złożone przekształcenia mogą być intensywnie obciążane obliczeniami. Jeśli zauważysz znaczne przechodzenie na dysk lub błędy OOM, zwiększ ilość pamięci dostępnej w swoich instancjach.
Opcjonalnie, użyj pul instancji, aby skrócić czas uruchamiania zasobów obliczeniowych i zmniejszyć całkowity czas wykonywania podczas uruchamiania potoków zadań.
Trenowanie modeli uczenia maszynowego
Aby wytrenować modele uczenia maszynowego, Azure Databricks zaleca utworzenie zasobu obliczeniowego przy użyciu zasad osobistych obliczeń.
Użyj pojedynczego węzła obliczeniowego z dużym typem węzła na potrzeby początkowego eksperymentowania. Zmniejszenie liczby węzłów zmniejsza wpływ mieszania.
Dodanie większej liczby procesów roboczych może pomóc w zapewnieniu stabilności, ale należy unikać dodawania ich zbyt wielu ze względu na narzut związany z przetasowywaniem danych.
Zalecane typy instancji roboczych to instancje zoptymalizowane pod kątem pamięci masowej z włączonym buforowaniem dysku lub z lokalną pamięcią, aby obsłużyć powtarzające się operacje odczytu tych samych danych i umożliwić buforowanie danych treningowych.
Dodatkowe funkcje zalecane w przypadku obciążeń uczenia maszynowego obejmują:
- Włącz automatyczne kończenie, aby upewnić się, że obliczenia są przerywane po okresie braku aktywności.
- Użyj pul wystąpień, które umożliwiają ograniczenie zasobów obliczeniowych do wstępnie zatwierdzonego typu wystąpienia.
- Zapewnij spójne konfiguracje obliczeniowe przy użyciu zasad.