Udostępnij za pośrednictwem


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 wszystkie nowe klasyczne zasoby obliczeniowe automatycznie wracają do alternatywnych typów węzłów. Nie ma to wpływu na istniejące zasoby obliczeniowe ogólnego przeznaczenia. Zobacz Jak istniejące obciążenia są dotknięte?.

Aby umożliwić użycie elastycznych typów węzłów w obszarze roboczym:

  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.

Jeśli to ustawienie jest wyłączone, użytkownicy nadal mogą 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 rezerwowymi. 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": []
}

Często zadawane pytania

Jak wpływają istniejące obciążenia?

Istniejące zasoby obliczeniowe ogólnego przeznaczenia są niezmienione. Aby użyć automatycznego mechanizmu zapasowego, utwórz nowy uniwersalny zasób obliczeniowy po włączeniu ustawienia lub zaktualizuj specyfikację API zasobów obliczeniowych z niestandardową listą zapasową.

W przypadku zadań wykorzystujących obliczenia zadań, w trakcie każdego uruchomienia tworzony jest nowy zasób obliczeniowy, dlatego kolejne uruchomienia istniejących zadań automatycznie korzystają z elastycznego trybu rezerwowego.

Czy działa to z pulami wystąpień?

Tak. Elastyczne typy węzłów mają zastosowanie do konfiguracji puli wystąpień. Niektóre kwestie, które należy zwrócić uwagę:

  • Minimalna liczba bezczynnych instancji pozostaje spójna: minimalna liczba bezczynnych instancji w puli (minIdle) jest utrzymywana przy użyciu głównego typu węzła. Wszystkie nowe maszyny wirtualne uruchamiane za pośrednictwem żądania uruchamiania klastra można spełnić przy użyciu zgodnych typów węzłów rezerwowych, gdy typ podstawowy jest ograniczony.
  • Edycje puli: nie można edytować puli wystąpień po jej utworzeniu. Jeśli chcesz zmienić dowolne niestandardowe ustawienia rezerwowe, musisz utworzyć nową pulę wystąpień.
  • Widoczność interfejsu API: /api/2.0/instance-pools/get odpowiedź nie pokazuje elastyczności typu węzła, chyba że jawnie skonfigurowano niestandardową listę rezerwową w puli. Aby wyświetlić konfigurację rezerwową puli wystąpień, możesz utworzyć przykładowy klaster i wyświetlić /api/2.1/clusters/get odpowiedź.

Jak odbywa się rozliczanie?

Opłaty są naliczane na podstawie standardowych stawek jednostek obliczeniowych DBU dla typów wystąpień rzeczywiście nabytych. Wszelkie rabaty na poziomie instancji u Twojego dostawcy chmury są automatycznie stosowane do pasujących typów instancji używanych przez zasób obliczeniowy.

W jaki sposób to współdziała z limitami typów węzłów w moim obszarze roboczym?

Jeśli uruchomienie obliczeniowe zakończy się niepowodzeniem, ponieważ typ węzła podstawowego osiągnie limit "przekroczono limit przydziału", elastyczne typy węzłów mogą nadal zwiększyć niezawodność uruchamiania, automatycznie wracając do zgodnej alternatywy. Oznacza to, że w przypadku awarii związanych z limitami przydziału, Databricks zaleca traktowanie mechanizmu awaryjnego jako zabezpieczenia, zamiast podstawowej poprawki. Możesz zażądać zwiększenia limitu przydziału od dostawcy usług w chmurze, aby usługa Azure Databricks mogła konsekwentnie uzyskiwać preferowane typy wystąpień przed rozpoczęciem korzystania z alternatywnych rozwiązań lub korzystać z bezserwerowych obliczeń.

Czy mogę włączyć elastyczne typy węzłów tylko dla podzbioru moich obciążeń?

Automatycznie generowany typ węzła zastępczego jest konfigurowalny tylko na poziomie obszaru roboczego. Istnieją jednak dwie opcje kontrolowania zachowania rezerwowego określonego obciążenia:

  • (Zalecane) Aktywuj elastyczne typy węzłów dla obszaru roboczego, a następnie wyklucz określony klaster, ustawiając alternate_node_type_ids jako pustą listę [] w specyfikacji tego klastra.
  • Wyłącz elastyczne typy węzłów dla całego obszaru roboczego, a następnie optymalizuj specyfikację klastra, podając niestandardową listę rezerwową w alternate_node_type_ids, która spełnia wymagania dotyczące zgodności.