Zlepšení spolehlivosti spouštění výpočetních prostředků s využitím flexibilních typů uzlů

Klasické výpočetní prostředky v Azure Databricks používají flexibilní typy uzlů, které vašemu výpočetnímu prostředku umožňují vrátit se k alternativním kompatibilním typům instancí, pokud zadaný typ instance není k dispozici.

Toto chování zlepšuje spolehlivost spouštění výpočetních prostředků snížením počtu selhání kapacity (chyb skladových zásob) během spouštění výpočetních prostředků. U spotových instancí s mechanismem přechodu mohou flexibilní typy uzlů opakovaně zkoušet získat instance napříč různými typy instancí, než přejdou na instance na vyžádání. Výsledkem je vyšší procento instancí spuštěných jako spot než na vyžádání, což snižuje celkové náklady na výpočetní prostředky.

Jak fungují flexibilní typy uzlů

Když spustíte výpočetní prostředek, poskytovatel cloudu někdy vyčerpá kapacitu pro zadaný typ instance. Výsledkem je chyba vyskladnění:

CLOUD_PROVIDER_RESOURCE_STOCKOUT

I když jsou tyto chyby častější u spotových instancí, mohou se vyskytnout i u instancí na vyžádání.

S povolenými flexibilními typy uzlů Azure Databricks automaticky generuje nebo používá zadaný záložní seznam kompatibilních typů instancí. Pokud váš upřednostňovaný typ instance není dostupný, Azure Databricks se pokusí získat tyto záložní typy instancí, místo aby okamžitě selhal.

Povolení flexibilních typů uzlů v pracovním prostoru

Správci pracovního prostoru můžou v nastavení správce pracovního prostoru povolit flexibilní typy uzlů. Pokud je tato možnost povolená, všechny nové klasické výpočetní prostředky se automaticky vrátí k alternativním typům uzlů. Stávající výpočetní prostředky pro všechny účely nejsou ovlivněny. Podívejte se na jak jsou ovlivněny stávající úlohy.

Povolení flexibilních typů uzlů v pracovním prostoru:

  1. Jako správce pracovního prostoru přejděte na stránku nastavení.
  2. Klikněte na kartu Výpočty .
  3. Přepněte nastavení Povolit automatické flexibilní typy uzlů :
    • Povoleno: Všechny nové klasické výpočetní prostředky automaticky používají flexibilní typy uzlů, pokud nejsou explicitně zakázané.
    • Zakázáno: Klasické výpočetní prostředky používají flexibilní typy uzlů pouze v případě, že explicitně konfigurujete node_type_flexibility v konfiguraci výpočetních prostředků.

Pokud je toto nastavení zakázané, uživatelé můžou i nadále konfigurovat flexibilní typy uzlů pro jednotlivé výpočetní prostředky tím, že explicitně nakonfigurují worker_node_type_flexibility pole nebo driver_node_type_flexibility pole s vlastními záložními seznamy. Aby uživatelé nemohli tato pole konfigurovat, můžou správci pracovního prostoru používat zásady výpočetních prostředků. Podívejte se na příklady zásad flexibilního typu uzlu.

Zadání vlastního záložního seznamu

Pokud jsou ve vašem pracovním prostoru povolené flexibilní typy uzlů, Azure Databricks automaticky vygeneruje záložní seznam kompatibilních typů instancí pro nové výpočetní prostředky.

Pokud nechcete používat automaticky vygenerovaný záložní seznam, můžete místo toho zadat vlastní záložní seznam. Navíc, pokud jsou v pracovním prostoru zakázány flexibilní typy uzlů, stále můžete pro své výpočetní prostředky zadat vlastní seznam náhradních možností. Kompatibilní jsou pouze určité typy instancí. Viz požadavky na typ záložní instance. Referenční informace o kompatibilních typech instancí najdete v referenčních informacích o kompatibilitě flexibilního typu uzlu.

Vlastní záložní seznamy se podporují jenom při konfiguraci výpočetních prostředků pomocí rozhraní API. Podívejte se na referenční dokumentaci k rozhraní API clusterů.

Například následující konfigurace určuje, na jaký typ instance se výpočetní prostředek v případě potřeby vrátí:


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

Požadavky na typ náhradní instance

Záložní typy instancí musí být kompatibilní s preferovaným typem instance výpočetních prostředků. Seznam záložních typů instancí musí splňovat následující požadavky:

  • Stejný počet vCPU a paměť jako upřednostňovaný typ instance (záložní instance musí mít 100% až 110% paměti upřednostňovaného typu instance).
  • Stejný počet místních disků a velikosti disku jako upřednostňovaný typ instance
  • Stejná architektura procesoru jako upřednostňovaný typ instance (všechny ARM nebo všechny x86)
  • Stejný obrázek operačního systému a podpora Photon jako upřednostňovaný typ instance
  • Žádné typy instancí GPU (gpu se nepodporují)
  • Maximálně 5 jedinečných typů záložních instancí
  • Všechny typy instancí musí mít konzistentní podporu úložiště: buď všechny podporují úložiště PREMIUM_LRS, nebo žádné.

Použití flexibilních typů uzlů s pooly

Můžete také přizpůsobit záložní seznam poolů. V API fondů nastavte node_type_flexibility pole k určení typů záložních instancí. Například:

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

Fondy nepodporují použití flexibilních typů instancí k zachování minimálního počtu nečinnosti. Fond může spouštět virtuální počítače pouze pomocí záložních typů instancí při pokusu o spuštění výpočetních prostředků z fondu. Předběžné zahřátí počtu minIdle používá pouze preferovaný typ instance.

Zobrazit typy získaných instancí

Při použití flexibilních typů uzlů se výpočetní prostředek může skládat z kombinace různých typů instancí. Všechny typy záložních instancí jsou kompatibilní s vaším upřednostňovaným typem a udržují stejný počet virtuálních procesorů, paměť, rozložení disku, architekturu procesoru a image operačního systému, aby se zajistilo správné spuštění úloh.

Můžete zobrazit, které typy instancí byly získány pro váš výpočetní prostředek:

  1. Na stránce s podrobnostmi o výpočetních prostředcích klikněte na tři tečky vedle tlačítka Ukončit a vyberte Zobrazit JSON.
  2. Zkontrolujte pole node_type_id pro jednotlivé prováděče a zjistěte, které typy instancí aktuálně běží.

K programovému načtení těchto informací můžete použít také rozhraní API Získat informace o clusterech . Uživatelé s oprávněním pro přístup k systémovým tabulkám se také můžou dotazovat na node_timelines tabulku. Viz schéma tabulky časové osy uzlu .

Zakázání flexibilních typů uzlů ve výpočetním prostředku

Poznámka:

Databricks doporučuje udržovat flexibilní typy uzlů povolené, pokud nemáte přísné požadavky na konkrétní typ instance.

Pokud dáváte přednost tomu, aby spuštění výpočetních prostředků selhalo raději než přechodu na alternativní typ instance, můžete zakázat flexibilní chování uzlů na úrovni jednotlivých výpočetních zdrojů. To se podporuje jenom při použití rozhraní API clusterů. Pokud chcete zakázat flexibilní typy uzlů, nastavte pole flexibilního typu uzlu jako prázdná v konfiguraci výpočetních prostředků. Například:

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

Nejčastější dotazy

Jak jsou ovlivněné stávající úlohy?

Stávající výpočetní prostředky pro všechny účely se nemění. Pokud chcete použít automatický náhradní prostředek, vytvořte po povolení nastavení nový výpočetní prostředek pro všechny účely nebo aktualizujte specifikaci rozhraní API výpočetních prostředků vlastním záložním seznamem.

U úloh využívajících výpočetní prostředky úloh vytvoří každé spuštění nový výpočetní prostředek, takže následná spuštění existujících úloh automaticky používají flexibilní náhradní prostředky.

Funguje to s fondy instancí?

Ano. Flexibilní typy uzlů se vztahují na konfigurace fondu instancí. Některé body k poznámce:

  • Minimální počet nečinných instancí zůstává stejný: Minimální počet nečinných instancí fondu je udržován pomocí vašeho primárního typu uzlu. Všechny nové virtuální počítače spuštěné prostřednictvím žádosti o spuštění clusteru je možné splnit pomocí kompatibilních typů náhradních uzlů, pokud je primární typ omezen.
  • Úpravy skupiny: Skupinu instancí nelze upravit po jejím vytvoření. Pokud chcete změnit vlastní záložní nastavení, musíte vytvořit nový fond instancí.
  • Viditelnost rozhraní API: Odpověď /api/2.0/instance-pools/get nezobrazuje flexibilitu typu uzlu, pokud jste explicitně nenakonfigurovali vlastní záložní seznam ve fondu. Pokud chcete zobrazit náhradní konfiguraci fondu instancí, můžete vytvořit testovací cluster a zobrazit odpověď /api/2.1/clusters/get.

Jak funguje fakturace?

Je vám účtováno na základě standardních sazeb DBU pro typy instancí, které jste skutečně získali. Všechny slevy na úrovni instance, které máte u svého poskytovatele cloudu, se automaticky vztahují na odpovídající typy instancí používané výpočetním prostředkem.

Jak tato interakce ovlivňuje kvóty typu uzlu ve vašem pracovním prostoru?

Pokud se spuštění výpočetních prostředků nezdaří, protože váš primární typ uzlu dosáhne limitu překročení kvóty, můžou flexibilní typy uzlů zvýšit spolehlivost spuštění tím, že se automaticky vrátí k kompatibilní alternativě. To znamená, že v případě selhání založených na kvótách doporučuje Databricks místo primární opravy považovat náhradní řešení za záchrannou síť. Od svého poskytovatele cloudu můžete požádat o navýšení kvóty, aby služba Azure Databricks před použitím alternativ získala upřednostňované typy instancí nebo používala bezserverové výpočetní prostředky.

Můžu povolit flexibilní typy uzlů jenom pro podmnožinu úloh?

Automaticky generovaný náhradní typ uzlu lze konfigurovat pouze na úrovni pracovního prostoru. Máte ale dvě možnosti, jak řídit záložní chování konkrétní úlohy:

  • (Doporučeno) Povolte flexibilní typy uzlů pro pracovní prostor a odhlaste konkrétní cluster nastavením alternate_node_type_ids na prázdný seznam [] ve specifikaci daného clusteru.
  • Zakažte flexibilní typy uzlů pro celý pracovní prostor, poté nakonfigurujte konkrétní specifikaci clusteru tím, že poskytnete vlastní alternativní seznam v alternate_node_type_ids, který splňuje požadavky na kompatibilitu.