Apache Spark ve službě Azure Machine Learning

Integrace služby Azure Machine Learning s 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

S architekturou Apache Spark je nejjednodušší způsob, jak v prostředí Azure Machine Learning provádět distribuované výpočetní úlohy. Azure Machine Learning nabízí plně spravovaný výpočetní cluster Apache Spark na vyžádání bez serveru. Nemusíte vytvářet pracovní prostor Azure Synapse ani fond Synapse Spark.

Můžete definovat prostředky, včetně typu instance a verze modulu runtime Apache Spark. Tyto prostředky použijte pro přístup k bezserverovým výpočetním prostředkům Sparku v poznámkových blocích Azure Machine Learning 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. Pokud ale chcete učinit informované rozhodnutí, zvažte 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:

  • Trvalý metastore Hive není. Výpočetní prostředí Spark bez serveru podporuje pouze Spark SQL v paměti.
  • Žádné dostupné tabulky ani databáze.
  • Žádná 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 Learning 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. K tomuto zpoždění dochází, protože automatizovaný bezserverový výpočetní prostředek Spark, podporovaný službou Azure Synapse, potřebuje čas na přípravu. Po zřízení bezserverového výpočetního prostředí Spark a spuštění relace Apache Sparku se u následných spuštění kódu (warm start) toto zpoždění nevyskytuje.

Konfigurace relace Sparku nabízí možnost, která definuje časový limit relace (v minutách). Relace Sparku končí 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, systém uvolní prostředky zřízené pro bezserverový Spark výpočet.

Jakmile systém odstraní výpočetní prostředek Sparku bez serverů, odeslání další úlohy vyžaduje studený start. Následující vizualizace ukazuje některé scénáře období nečinnosti relace a scénáře ukončení 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. Zkontrolujte, jestli už je požadovaný balíček v základní imagi Azure Synapse k dispozici. Pokud to chcete udělat, navštivte tyto prostředky a zjistěte balíčky dostupné v základním obrazu pro používanou verzi Apache Spark:

Poznámka:

Balíček Conda na úrovni relace:

  • Studený start potřebuje asi 10 až 15 minut.
  • Teplé zahájení, s použitím stejného balíčku Conda, potřebuje asi jednu minutu.
  • Teplý start s jiným balíčkem Conda trvá asi 10 až 15 minut.
  • Pokud nainstalujete velký balíček nebo balíček, který 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

Nastavte konfigurační proměnnou spark.hadoop.aml.enable_cache na true pro zlepšení času studeného spuštění relace Sparku. U session-level Conda balíčků se studeným startem obvykle trvá 10 až 15 minut, když se relace poprvé spouští. 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

Když vytvoříte fond Sparku v pracovním prostoru Azure Synapse, budete k němu mít přístup v pracovním prostoru Azure Machine Learning s připojeným fondem Synapse Spark. Tato možnost je vhodná pro uživatele, kteří chtějí znovu použít existující fond Synapse Spark.

Pokud chcete k pracovnímu prostoru Azure Machine Learning připojit fond Synapse Spark, musíte před použitím fondu ve službě Azure Machine Learning provést další kroky :

Připojený fond Synapse Spark poskytuje přístup k nativním funkcím Azure Synapse. Zodpovídáte 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 Sparku služby Azure Machine Learning můžete definovat velikost clusteru Spark se třemi hodnotami parametrů:

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

Vezměte v úvahu exekutor Apache Spark služby Azure Machine Learning jako ekvivalent pracovních uzlů Azure Sparku. Příklad může tyto parametry vysvětlit. Pokud definujete počet exekutorů jako 6 (ekvivalentní šesti pracovním uzlům), počet jader exekutoru jako 4 a paměť exekutoru jako 28 GB, má vaše úloha Spark 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 úloh 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 závisí výpočetní prostředí Spark bez serveru i připojený fond Synapse Spark na 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 role Přispěvatel aPřispěvatel dat objektů blob úložiště (v účtu úložiště Azure používaném pro vstup a výstup dat) k identitě, kterou používáte pro odeslání úlohy Sparku.
  • 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 pomáhá zajistit přístup k datům.

Další kroky