Apache Spark ve službě Azure Machine Učení

Integrace služby Azure Machine Učení se službou Azure Synapse Analytics poskytuje snadný přístup k distribuovaným výpočetním prostředkům prostřednictvím architektury Apache Spark. Tato integrace nabízí tyto výpočetní prostředí Apache Sparku:

  • Výpočetní prostředí Spark bez serveru
  • Připojený fond Synapse Spark

Výpočetní prostředí Spark bez serveru

Díky architektuře Apache Spark je služba Azure Machine Učení bezserverové výpočetní prostředí Spark nejjednodušší způsob, jak provádět distribuované výpočetní úlohy v prostředí Azure Machine Učení. Azure Machine Učení nabízí plně spravovaný výpočetní cluster Apache Spark na vyžádání bez serveru. Jeho uživatelé se můžou vyhnout nutnosti vytvářet pracovní prostor Azure Synapse a fond Synapse Spark.

Uživatelé mohou definovat prostředky, včetně typu instance a verze modulu runtime Apache Spark. Tyto prostředky pak můžou použít k přístupu k bezserverovým výpočetním prostředkům Sparku v poznámkových blocích Azure Machine Učení pro:

Body ke zvážení

Výpočetní prostředí Spark bez serveru funguje dobře pro většinu uživatelských scénářů, které vyžadují rychlý přístup k distribuovaným výpočetním prostředkům prostřednictvím Apache Sparku. Aby se však uživatelé rozhodli informovaně, měli by zvážit výhody a nevýhody tohoto přístupu.

Výhody:

  • Žádné závislosti na vytváření dalších prostředků Azure pro Apache Spark (infrastruktura Azure Synapse funguje pod kapotou).
  • Žádná požadovaná oprávnění předplatného k vytváření prostředků souvisejících s Azure Synapse.
  • Není nutné provádět kvóty fondu SQL.

Nevýhody:

  • Chybí trvalý metastor Hive. Výpočetní prostředí Spark bez serveru podporuje pouze Spark SQL v paměti.
  • Žádné dostupné tabulky ani databáze.
  • Chybí integrace Azure Purview.
  • Nejsou dostupné propojené služby.
  • Méně zdrojů dat a konektorů
  • Žádná konfigurace na úrovni fondu.
  • Žádná správa knihoven na úrovni fondu.
  • Pouze částečná podpora pro mssparkutils.

Konfigurace sítě

Pokud chcete používat izolaci sítě se službou Azure Machine Učení a bezserverovým výpočetním prostředím Spark, použijte spravovanou virtuální síť.

Období nečinnosti a mechanismus odbourání

Při prvním spuštění může bezserverový výpočetní prostředek Sparku (studený start) potřebovat tři až pět minut, aby se spustila samotná relace Sparku. Toto zpoždění způsobuje automatizované bezserverové zřizování výpočetních prostředků Sparku, které podporuje Azure Synapse. Po zřízení bezserverového výpočetního prostředí Sparku a spuštění relace Apache Sparku nebudou k tomuto zpoždění docházet k následným spuštěním kódu (teplé spuštění).

Konfigurace relace Sparku nabízí možnost, která definuje časový limit relace (v minutách). Relace Sparku skončí po období nečinnosti, která překračuje časový limit definovaný uživatelem. Pokud se během následujících 10 minut nespustí jiná relace Sparku, prostředky zřízené pro bezserverové výpočetní prostředky Sparku se odtrhnou.

Jakmile dojde k odstranění výpočetního prostředku Sparku bez serveru, odeslání další úlohy bude vyžadovat studený start. Následující vizualizace ukazuje některé scénáře nečinnosti relace a scénáře odbourání clusteru.

Rozbalitelný diagram znázorňující scénáře pro období nečinnosti relace Apache Sparku a roztrhání clusteru

Balíčky Conda na úrovni relace

Soubor YAML závislostí Conda může definovat mnoho balíčků Conda na úrovni relace v konfiguraci relace. Relace vyprší, pokud k instalaci balíčků Conda definovaných v souboru YAML potřebuje více než 15 minut. Nejprve je důležité zkontrolovat, jestli je požadovaný balíček již k dispozici v základní imagi Azure Synapse. K tomu by uživatelé měli postupovat podle odkazu a určit balíčky dostupné v základní imagi pro verzi Apache Sparku, která se používá:

Důležité

Azure Synapse Runtime pro Apache Spark: Oznámení

  • Azure Synapse Runtime pro Apache Spark 3.2:
    • Datum oznámení EOLA: 8. července 2023
    • Datum ukončení podpory: 8. července 2024. Po tomto datu bude modul runtime zakázán.
  • Pokud chcete pokračovat v podpoře a optimálním výkonu, doporučujeme provést migraci na

Poznámka:

Balíček Conda na úrovni relace:

  • Studená start bude potřebovat asi deset až patnáct minut.
  • Teplé zahájení, pomocí stejného balíčku Conda, bude potřebovat asi jednu minutu.
  • Teplé zahájení, s jiným balíčkem Conda, bude také potřebovat asi deset až patnáct minut.
  • Pokud je balíček, který instalujete, velký nebo potřebuje dlouhou dobu instalace, může mít vliv na dobu spuštění instance Sparku.
  • Změna verze PySpark, Python, Scala/Java, .NET nebo Spark se nepodporuje.
  • Image Dockeru nejsou podporované.

Zlepšení doby spuštění relace při používání balíčků Conda na úrovni relace

Relaci Sparku můžete zkrátit tak , že nastavíte konfigurační proměnnou spark.hadoop.aml.enable_cache na truehodnotu . Při prvním spuštění relace s balíčky Conda na úrovni relace obvykle trvá 10 až 15 minut. Následující relace však začne trvat tři až pět minut. Definujte konfigurační proměnnou v uživatelském rozhraní Konfigurace relace v části Nastavení konfigurace.

Rozbalitelný diagram znázorňující značku konfigurace relace Sparku, která umožňuje ukládání do mezipaměti

Připojený fond Synapse Spark

Fond Sparku vytvořený v pracovním prostoru Azure Synapse se zpřístupní v pracovním prostoru Azure Machine Učení s připojeným fondem Synapse Spark. Tato možnost může být vhodná pro uživatele, kteří chtějí znovu použít existující fond Synapse Spark.

Příloha fondu Synapse Sparku k pracovnímu prostoru azure machine Učení vyžaduje další kroky před použitím fondu ve službě Azure Machine Učení pro:

Připojený fond Synapse Spark poskytuje přístup k nativním funkcím Azure Synapse. Uživatel zodpovídá za zřizování, připojení, konfiguraci a správu fondu Synapse Spark.

Konfigurace relace Sparku pro připojený fond Synapse Spark nabízí také možnost definovat časový limit relace (v minutách). Chování časového limitu relace se podobá popisu v předchozí části s tím rozdílem, že přidružené prostředky se po vypršení časového limitu relace nikdy neodtrhnou.

Definování velikosti clusteru Spark

V úlohách Azure Machine Učení Spark můžete definovat velikost clusteru Spark se třemi hodnotami parametrů:

  • Počet exekutorů
  • Jádra exekutoru
  • Paměť exekutoru

Měli byste zvážit Učení exekutoru Apache Spark v Azure jako ekvivalent pracovních uzlů Azure Sparku. Příklad může tyto parametry vysvětlit. Řekněme, že jste definovali počet exekutorů jako 6 (ekvivalent šesti pracovních uzlů), počet jader exekutoru jako 4 a paměť exekutoru 28 GB. Vaše úloha Sparku pak má přístup ke clusteru s celkem 24 jádry a 168 GB paměti.

Zajištění přístupu k prostředkům pro úlohy Sparku

Pro přístup k datům a dalším prostředkům může úloha Sparku používat spravovanou identitu nebo předávací identitu uživatele. Tato tabulka shrnuje mechanismy, které úlohy Sparku používají pro přístup k prostředkům.

Fond Sparku Podporované identity Výchozí identita
Výpočetní prostředí Spark bez serveru Identita uživatele, spravovaná identita přiřazená uživatelem připojená k pracovnímu prostoru Identita uživatele
Připojený fond Synapse Spark Identita uživatele, spravovaná identita přiřazená uživatelem připojená k připojenému fondu Synapse Spark, spravovaná identita přiřazená systémem připojeného fondu Synapse Spark Spravovaná identita přiřazená systémem připojeného fondu Synapse Spark

Tento článek popisuje přístup k prostředkům pro úlohy Sparku. V relaci poznámkového bloku využívají výpočetní prostředí Spark bez serveru i připojený fond Synapse Sparku předávání identity uživatele pro přístup k datům během interaktivní transformace dat.

Poznámka:

  • Pokud chcete zajistit úspěšné spuštění úlohy Sparku, přiřaďte k identitě, která se použije pro odeslání úlohy Sparku, role Přispěvatel a Přispěvatel dat objektů blob úložiště (v účtu úložiště Azure používaném pro vstup a výstup dat).
  • Pokud připojený fond Synapse Spark odkazuje na fond Synapse Spark v pracovním prostoru Azure Synapse a tento pracovní prostor má přidruženou spravovanou virtuální síť, nakonfigurujte spravovaný privátní koncový bod na účet úložiště. Tato konfigurace vám pomůže zajistit přístup k datům.

Další kroky