Udostępnij przez


Zwiększanie niezawodności uruchamiania obliczeń przy użyciu elastycznych typów węzłów

Klasyczne zasoby obliczeniowe w usłudze Azure Databricks używają elastycznych typów węzłów, co umożliwia zasobom obliczeniowym powrót do alternatywnych, zgodnych typów wystąpień, gdy określony typ wystąpienia jest niedostępny.

To zachowanie zwiększa niezawodność uruchamiania zasobów obliczeniowych przez zmniejszenie liczby błędów pojemności (błędów zapasów) podczas uruchamiania obliczeń. W przypadku wystąpień typu spot z rezerwą elastyczne typy węzłów mogą wielokrotnie podejmować próby uzyskania wystąpień w różnych typach wystąpień przed powrotem do wystąpień na żądanie. Powoduje to wyższą wartość procentową wystąpień działających jako spot zamiast na żądanie, co zmniejsza łączne koszty obliczeń.

Jak działają elastyczne typy węzłów

Podczas uruchamiania zasobu obliczeniowego, dostawcy usług w chmurze czasami brakuje zasobów dla określonego typu instancji. Powoduje to błąd zapasów:

CLOUD_PROVIDER_RESOURCE_STOCKOUT

Chociaż te błędy występują częściej w przypadku wystąpień typu spot, mogą również występować w przypadku wystąpień na żądanie.

Po włączeniu dynamicznych typów węzłów usługa Azure Databricks automatycznie generuje lub używa określonej zapasowej listy zgodnych typów wystąpień. Jeśli preferowany typ wystąpienia jest niedostępny, usługa Azure Databricks próbuje uzyskać alternatywne typy wystąpień zamiast natychmiast zakończyć działanie niepowodzeniem.

pl-PL: Włącz elastyczne typy węzłów w obszarze roboczym

Administratorzy obszaru roboczego mogą włączyć elastyczne typy węzłów w ustawieniach administratora obszaru roboczego. Po włączeniu wszystkich nowych klasycznych zasobów obliczeniowych w obszarze roboczym będą używane elastyczne typy węzłów, chyba że jawnie wyłączone:

  1. Jako administrator obszaru roboczego przejdź do strony ustawień.
  2. Kliknij kartę Obliczenia .
  3. Przełącz ustawienie Włącz automatyczne typy węzłów elastycznych :
    • Włączone: wszystkie nowe klasyczne zasoby obliczeniowe automatycznie używają elastycznych typów węzłów, chyba że jawnie wyłączone.
    • Wyłączone: klasyczne zasoby obliczeniowe używają tylko elastycznych typów węzłów, jeśli jawnie konfigurujesz node_type_flexibility je w konfiguracji zasobów obliczeniowych.

To ustawienie całego obszaru roboczego nie ma wpływu na istniejące zasoby obliczeniowe. Po wyłączeniu użytkownicy mogą nadal konfigurować elastyczne typy węzłów dla poszczególnych zasobów obliczeniowych, jawnie konfigurując pola worker_node_type_flexibility lub driver_node_type_flexibility z niestandardowymi listami awaryjnymi. Aby uniemożliwić użytkownikom konfigurowanie tych pól, administratorzy obszaru roboczego mogą używać zasad obliczeniowych. Zobacz Przykłady zasad dla elastycznych typów węzłów.

Określanie niestandardowej listy rezerwowej

Gdy w obszarze roboczym są włączone elastyczne typy węzłów, usługa Azure Databricks automatycznie generuje rezerwową listę zgodnych typów wystąpień dla nowych zasobów obliczeniowych.

Jeśli nie chcesz używać automatycznie wygenerowanej listy rezerwowych, możesz zamiast tego określić własną listę rezerwową. Ponadto jeśli w obszarze roboczym są wyłączone elastyczne typy węzłów, nadal można określić niestandardową listę rezerwową dla zasobu obliczeniowego. Tylko niektóre typy wystąpień są zgodne. Zobacz Wymagania dotyczące typu wystąpienia awaryjnego. Aby uzyskać informacje o zgodnych typach wystąpień, zapoznaj się z referencją zgodności elastycznych typów węzłów.

Niestandardowe listy rezerwowe są obsługiwane tylko podczas konfigurowania obliczeń przy użyciu interfejsu API. Przejrzyj dokumentację API klastrów.

Na przykład poniższa konfiguracja określa typ instancji, do którego zasoby obliczeniowe sięgną w razie potrzeby:


  "worker_node_type_flexibility": {
    "alternate_node_type_ids": [
      "Standard_L8s_v2"
    ]
  },
  "driver_node_type_flexibility": {
    "alternate_node_type_ids": [
      "Standard_L8s_v2"
    ]
  },

Wymagania dotyczące typu wystąpienia zapasowego

Typy wystąpień rezerwowych muszą być zgodne z preferowanym typem wystąpienia obliczeniowego. Lista typów wystąpień rezerwowych musi spełniać następujące wymagania:

  • Ta sama liczba vCPU i pamięć co preferowany typ wystąpienia (wystąpienia awaryjne muszą mieć od 100% do 110% pamięci preferowanego typu wystąpienia)
  • Ta sama liczba dysków lokalnych i rozmiar dysku co preferowany typ wystąpienia
  • Ta sama architektura procesora co preferowany typ wystąpienia (wszystkie ARM lub wszystkie x86)
  • Ten sam obraz systemu operacyjnego i wsparcie Photon, co preferowany typ instancji
  • Brak typów instancji GPU (instancje GPU nie są obsługiwane)
  • Maksymalnie 5 unikatowych typów wystąpień zapasowych
  • Wszystkie typy wystąpień muszą mieć spójną obsługę magazynu: albo wszystkie obsługują magazyn PREMIUM_LRS, albo żadne z nich go nie obsługują.

Używanie elastycznych typów węzłów z pulami

Możesz również dostosować listę rezerwową dla pul. W interfejsie API pul ustaw pole node_type_flexibility, aby określić typy instancji zapasowych. Przykład:

"node_type_flexibility": {
    "alternate_node_type_ids": ["Standard_L8s_v2"]
  }

Pule nie obsługują używania elastycznych typów wystąpień w celu zachowania minimalnej liczby bezczynności. Pula może uruchamiać maszyny wirtualne tylko przy użyciu zapasowych typów instancji, gdy jest podejmowana próba uruchomienia komputerowych zasobów obliczeniowych z puli. Wstępne rozgrzewanie liczby minIdle wykorzystuje tylko preferowany typ wystąpienia.

Wyświetlanie pozyskanych typów wystąpień

W przypadku korzystania z elastycznych typów węzłów zasób obliczeniowy może składać się z różnych typów wystąpień. Wszystkie typy wystąpień rezerwowych są zgodne z preferowanym typem, zachowując tę samą liczbę vCPU, pamięć, układ dysku, architekturę CPU i obraz OS, aby upewnić się, że obciążenie działa prawidłowo.

Możesz wyświetlić, które typy wystąpień zostały uzyskane dla zasobu obliczeniowego:

  1. Na stronie szczegółów obliczeniowych kliknij trzy kropki obok przycisku Zakończ , a następnie wybierz pozycję Wyświetl kod JSON.
  2. Przejrzyj pole node_type_id dla każdego wykonawcy, aby zobaczyć, które typy instancji są uruchomione.

Możesz również użyć interfejsu API Pobierania informacji o klastrach , aby programowo pobrać te informacje. Ponadto użytkownicy z uprawnieniami dostępu do tabel systemowych mogą wykonywać zapytania dotyczące node_timelines tabeli. Zobacz schemat tabeli oś czasu węzła .

Wyłączanie elastycznych typów węzłów w zasobie obliczeniowym

Uwaga / Notatka

Usługa Databricks zaleca utrzymywanie włączonych elastycznych typów węzłów, chyba że masz ścisłe wymagania dotyczące określonego typu instancji.

Jeśli wolisz, aby uruchomienie zasobów obliczeniowych zakończyło się niepowodzeniem, zamiast przełączać się na alternatywny typ instancji, możesz wyłączyć elastyczne zachowanie węzła na poziomie pojedynczego zasobu obliczeniowego. Jest to obsługiwane tylko w przypadku korzystania z interfejsu API klastrów. Aby wyłączyć elastyczne typy węzłów, ustaw pola typu węzła jako puste w konfiguracji obliczeniowej. Przykład:

"worker_node_type_flexibility": {
  "alternate_node_type_ids": []
},
"driver_node_type_flexibility": {
  "alternate_node_type_ids": []
}