Sdílet prostřednictvím


Optimalizujte využití clusteru deklarativních kanálů Lakeflow Spark pomocí automatického škálování.

Tento článek popisuje, jak pomocí rozšířeného automatického škálování optimalizovat kanály v Azure Databricks.

Vylepšené automatické škálování je ve výchozím nastavení povolené pro všechny nové kanály. Bezserverové kanály také používají vertikální automatické škálování. Viz Co je vertikální automatické škálování?.

U bezserverových kanálů je rozšířené automatické škálování vždy zapnuté a není možné ho zakázat. Viz Konfigurace bezserverového kanálu.

Co je vylepšené automatické škálování?

Vylepšené automatické škálování Databricks optimalizuje využití clusteru automatickým přidělováním prostředků clusteru na základě svazku úloh s minimálním dopadem na latenci zpracování dat vašich kanálů.

Vylepšené automatické škálování vylepšuje funkce automatického škálování clusteru Azure Databricks s následujícími funkcemi:

  • Vylepšené automatické škálování implementuje optimalizaci úloh streamování a přidává vylepšení pro zlepšení výkonu dávkových úloh. Vylepšené automatické škálování optimalizuje náklady přidáním nebo odebráním počítačů při změnách úloh.
  • Vylepšené automatické škálování proaktivně vypne nevyužité uzly a zaručuje, že během vypínání nejsou žádné neúspěšné úlohy. Stávající funkce automatického škálování clusteru vertikálně navyšuje kapacitu uzlů pouze v případě, že je uzel nečinný.

Vylepšené automatické škálování je výchozí režim automatického škálování při vytváření nového kanálu v uživatelském rozhraní kanálů. Rozšířené automatické škálování pro existující kanály můžete povolit úpravou nastavení kanálu v uživatelském rozhraní. Rozšířené automatické škálování můžete povolit také při vytváření nebo úpravách kanálů pomocí rozhraní REST API kanálů.

Které metriky vylepšené automatické škálování používají k rozhodování o vertikálním navýšení nebo snížení kapacity?

Vylepšené automatické škálování využívá dvě metriky k rozhodování o vertikálním navýšení nebo snížení kapacity:

  • využití slotu úloh: Jedná se o průměrný poměr počtu zaneprázdněných slotů úkolů k celkovým slotům úloh dostupným vclusteru .
  • velikost fronty úloh: Jedná se o počet úkolů čekajících na spuštění v slotech úloh.

Povolení vylepšeného automatického škálování pro potrubí

Vylepšené automatické škálování je výchozí režim automatického škálování při vytváření nového kanálu v uživatelském rozhraní kanálů. Rozšířené automatické škálování pro existující kanály můžete povolit úpravou nastavení kanálu v uživatelském rozhraní. Rozšířené automatické škálování můžete také povolit při úpravě kanálu pomocí Editoru kanálů Lakeflow.

Pokud chcete použít vylepšené automatické škálování, udělejte jednu z těchto věcí:

  • Při úpravách nastavení kanálu v Editoru kanálů Lakeflow nastavte režim clusteru na rozšířené automatické škálování .
  • Přidejte nastavení autoscale do konfigurace clusteru kanálu a nastavte pole mode na ENHANCED. Viz Konfigurace klasického výpočtu pro pipeliny.

Při konfiguraci rozšířeného automatického škálování pro produkční kanály použijte následující pokyny:

  • Ponechte výchozí nastavení Min workers.
  • Nastavte nastavení Max workers na hodnotu podle rozpočtu a priority pipeline.

Následující příklad nakonfiguruje vylepšený klastr automatického škálování s minimálním počtem 5 pracovníků a maximálním počtem 10 pracovníků. max_workers musí být větší nebo roven min_workers.

Poznámka:

  • Rozšířené automatické škálování je dostupné jenom pro clustery updates. Starší automatické škálování se používá pro clustery maintenance.
  • Konfigurace autoscale má dva režimy:
    • LEGACY: Použijte automatické škálování clusteru .
    • ENHANCED: Použijte vylepšené automatické škálování.
{
  "clusters": [
    {
      "autoscale": {
        "min_workers": 5,
        "max_workers": 10,
        "mode": "ENHANCED"
      }
    }
  ]
}

Pokud je kanál nakonfigurovaný pro průběžné spouštění, po změně konfigurace automatického škálování se automaticky restartuje. Po restartování očekáváme krátkou dobu zvýšené latence. Po uplynutí tohoto krátkého období zvýšené latence by se měla velikost clusteru aktualizovat na základě vaší konfigurace autoscale a latence kanálu by se měla vrátit k předchozím charakteristikám latence.

Omezení nákladů na kanály, které používají vylepšené automatické škálování

Poznámka:

Pracovníky nelze konfigurovat pro bezserverové pipeliny.

Nastavení parametru Max pracovníků v podokně Výpočet kanálu nastaví horní mez automatického škálování. Snížení počtu dostupných pracovníků může zvýšit latenci u některých úloh, ale zabraňuje nárůstu nákladů na výpočetní prostředky během operací náročných na výpočetní výkon.

Databricks doporučuje vyladit nastavení Maximální počet pracovníků, aby se vyrovnaly kompromisy mezi náklady a latencí pro vaše konkrétní potřeby.

panel Výpočty v uživatelském rozhraní Pipelines, kde můžete nastavit maximální počet pracovníků pro automatické škálování

Monitorování rozšířených klasických kanálů s povoleným automatickým škálováním

Pomocí protokolu událostí v uživatelském rozhraní kanálu můžete monitorovat rozšířené metriky automatického škálování pro klasické kanály. Události rozšířeného automatického škálování mají typ události autoscale. Následuje příklad událostí:

Event Message
Žádost o změnu velikosti clusteru se spustila. Scaling [up or down] to <y> executors from current cluster size of <x>
Žádost o změnu velikosti clusteru byla úspěšná. Achieved cluster size <x> for cluster <cluster-id> with status SUCCEEDED
Žádost o změnu velikosti clusteru byla částečně úspěšná. Achieved cluster size <x> for cluster <cluster-id> with status PARTIALLY_SUCCEEDED
Žádost o změnu velikosti clusteru se nezdařila. Achieved cluster size <x> for cluster <cluster-id> with status FAILED

Rozšířené události automatického škálování můžete zobrazit také přímým dotazováním protokolu událostí:

Co je vertikální automatické škálování?

Bezserverové kanály rozšiřují horizontální automatické škálování poskytované službou Databricks tím, že automaticky přidělují nejefektivnější typy instancí pro běh kanálu bez ohledu na chyby způsobené nedostatkem paměti. Vertikální automatické škálování zvyšuje velikost instancí, když jsou potřebné větší instance pro spuštění aktualizace pipeline, a snižuje velikost, když určí, že aktualizaci lze provést s menšími instancemi. Vertikální automatické škálování určuje, jestli se mají řídicí uzly, pracovní uzly nebo obojí zvýšit nebo snížit.

Vertikální automatické škálování se používá pro všechny bezserverové kanály, včetně kanálů používaných materializovanými zobrazeními Databricks SQL a tabulkami streamování.

Vertikální automatické škálování funguje zjišťováním aktualizací pipeline, které selhaly kvůli chybám způsobeným nedostatkem paměti. Vertikální automatické škálování přiděluje větší typy instancí při zjištění těchto selhání na základě dat o nedostatku paměti shromážděných z neúspěšné aktualizace. V produkčním režimu se automaticky spustí nová aktualizace, která používá nové výpočetní prostředky. V režimu vývoje se nové výpočetní prostředky použijí při ručním spuštění nové aktualizace.

Pokud vertikální automatické škálování zjistí, že paměť přidělených instancí je konzistentně nedostatečně využitá, zmenší typy instancí tak, aby byly použity v další aktualizaci pipeline.