Apache Spark v základních konceptech Azure Synapse Analytics

Apache Spark je architektura paralelního zpracování, která podporuje zpracování v paměti za účelem zvýšení výkonu analytických aplikací pro velké objemy dat. Apache Spark v Azure Synapse Analytics je jednou z implementací Apache Sparku Microsoftu v cloudu.

Azure Synapse usnadňuje vytváření a konfiguraci funkcí Sparku v Azure. Azure Synapse poskytuje jinou implementaci těchto funkcí Sparku, které jsou zde popsané.

Fondy Sparku

V Azure Portal se vytvoří bezserverový fond Apache Sparku. Jedná se o definici fondu Sparku, který se při vytváření instancí používá k vytvoření instance Sparku, která zpracovává data. Když se vytvoří fond Sparku, existuje pouze jako metadata a žádné prostředky se nevyužívají, spouštějí nebo se účtují poplatky. Fond Spark má řadu vlastností, které řídí charakteristiky instance Sparku. Mezi tyto charakteristiky patří název, velikost, chování škálování, doba života.

Vzhledem k tomu, že k vytváření fondů Sparku nejsou spojené žádné náklady na prostředky, můžete vytvořit libovolný počet s libovolným počtem různých konfigurací. Oprávnění se dají použít také u fondů Sparku, které uživatelům umožňují přístup jenom k některým a ne jiným.

Osvědčeným postupem je vytvořit menší fondy Sparku, které se dají použít pro vývoj a ladění a pak větší fondy pro spouštění produkčních úloh.

V Azure Synapse Analytics si můžete přečíst, jak vytvořit fond Sparku a zobrazit zde všechny jejich vlastnosti Začínáme s fondy Sparku.

Instance Sparku

Instance Sparku se vytvoří, když se připojíte k fondu Sparku, vytvoříte relaci a spustíte úlohu. Protože více uživatelů může mít přístup k jednomu fondu Sparku, vytvoří se nová instance Sparku pro každého uživatele, který se připojí.

Když odešlete druhou úlohu, pokud je ve fondu kapacita, má stávající instance Sparku také kapacitu. Stávající instance pak zpracuje úlohu. Pokud je kapacita dostupná na úrovni fondu, vytvoří se nová instance Sparku.

Příklady

Příklad 1

  • Vytvoříte fond Sparku s názvem SP1; má pevnou velikost clusteru 20 uzlů.
  • Odešlete úlohu poznámkového bloku J1, která k zpracování úlohy používá 10 uzlů, instanci Sparku, SI1.
  • Teď odešlete jinou úlohu J2, která používá 10 uzlů, protože fond stále má kapacitu a instanci J2 zpracovává SI1.
  • Pokud by J2 požádal o 11 uzlů, nebyla by kapacita v sp1 nebo SI1. V takovém případě, pokud J2 pochází z poznámkového bloku, úloha bude odmítnuta; Pokud J2 pochází z dávkové úlohy, bude zařazen do fronty.

Příklad 2

  • Vytvoříte volání fondu Spark SP2; Má povolené automatické škálování 10 – 20 uzlů.
  • Odešlete úlohu poznámkového bloku J1, která k zpracování úlohy používá 10 uzlů, instanci Sparku SI1.
  • Teď odešlete další úlohu J2, která používá 10 uzlů, protože ve fondu je stále kapacita, instance se automaticky zvětšuje na 20 uzlů a procesů J2.

Příklad 3

  • Vytvoříte fond Sparku s názvem SP1; má pevnou velikost clusteru 20 uzlů.
  • Odešlete úlohu poznámkového bloku J1, která k zpracování úlohy používá 10 uzlů, instanci Sparku, SI1.
  • Jiný uživatel U2 odešle úlohu J3, která k zpracování úlohy používá 10 uzlů, novou instanci Sparku, SI2.
  • Teď odešlete jinou úlohu J2, která používá 10 uzlů, protože fond stále má kapacitu a instance J2 zpracovává SI1.

Kvóty a omezení prostředků v Apache Sparku pro Azure Synapse

Úroveň pracovního prostoru

Každý pracovní prostor Azure Synapse má výchozí kvótu virtuálních jader, kterou je možné použít pro Spark. Kvóta se rozdělí mezi kvótu uživatele a kvótu toku dat, aby žádný ze vzorů využití nevyužil všechny virtuální jádra v pracovním prostoru. Kvóta se liší v závislosti na typu předplatného, ale je symetrická mezi uživatelem a tokem dat. Pokud však požadujete více virtuálních jader, než zbývá v pracovním prostoru, zobrazí se následující chyba:

Failed to start session: [User] MAXIMUM_WORKSPACE_CAPACITY_EXCEEDED
Your Spark job requested 480 vcores.
However, the workspace only has xxx vcores available out of quota of yyy vcores.
Try reducing the numbers of vcores requested or increasing your vcore quota. Click here for more information - https://go.microsoft.com/fwlink/?linkid=213499

Odkaz ve zprávě odkazuje na tento článek.

Následující článek popisuje, jak požádat o navýšení kvóty virtuálních jader pracovního prostoru.

  • Jako typ služby vyberte Azure Synapse Analytics.
  • V okně s podrobnostmi o kvótě vyberte Apache Spark (vCore) na pracovní prostor.

Vyžádání navýšení kapacity prostřednictvím Azure Portal

Úroveň fondu Sparku

Když definujete fond Sparku, efektivně definujete kvótu pro jednotlivé uživatele pro tento fond, pokud spustíte více poznámkových bloků nebo úloh nebo kombinaci 2, můžete kvótu fondu vyčerpat. Pokud ano, vygeneruje se chybová zpráva podobná následující:

Failed to start session: Your Spark job requested xx vcores.
However, the pool is consuming yy vcores out of available zz vcores.Try ending the running job(s) in the pool, reducing the numbers of vcores requested, increasing the pool maximum size or using another pool

Pokud chcete tento problém vyřešit, musíte před odesláním nové žádosti o prostředek snížit využití prostředků fondu spuštěním poznámkového bloku nebo úlohy.

Další kroky