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. Jeho uživatelé se můžou vyhnout nutnosti vytvářet pracovní prostor Azure Synapse i 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 pro přístup k bezserverovým výpočetním prostředkům Sparku v poznámkových blocích Azure Machine Learning pro:
- Interaktivní vývoj kódu Sparku
- Spouštění kanálů strojového učení s komponentou Spark
- Odesílání dávkových úloh Sparku
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 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. Toto zpoždění způsobuje zřizování automatizovaného výpočetního prostředku Spark bez serveru zálohovaného službou 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.
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. Uživatelé by k tomu měli navštívit tyto prostředky 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 migrovat na Apache Spark 3.4.
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 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
Konfigurační proměnnou spark.hadoop.aml.enable_cache
můžete nastavit tak, aby true
se zkrátila doba spuštění relace Sparku. U balíčků Conda na úrovni relace obvykle při prvním spuštění relace 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.
Připojený fond Synapse Spark
Fond Sparku vytvořený v pracovním prostoru Azure Synapse se zpřístupní v pracovním prostoru Azure Machine Learning 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 Spark do pracovního prostoru Azure Machine Learning vyžaduje další kroky , než budete moct fond ve službě Azure Machine Learning použít pro:
- Interaktivní vývoj kódu Sparku
- Odeslání dávkové úlohy Sparku
- Spouštění kanálů strojového učení s komponentou Spark
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 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
Jako ekvivalent pracovních uzlů Azure Spark byste měli zvážit exekutor Apache Spark služby Azure Machine Learning. 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 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 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) k identitě, kterou použijete 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 vám pomůže zajistit přístup k datům.
Další kroky
- Připojení a správa fondu Synapse Spark ve službě Azure Machine Learning
- Interaktivní transformace dat pomocí Apache Sparku ve službě Azure Machine Learning
- Odesílání úloh Sparku ve službě Azure Machine Learning
- Ukázky kódu pro úlohy Sparku pomocí rozhraní příkazového řádku služby Azure Machine Learning
- Ukázky kódu pro úlohy Sparku pomocí sady Azure Machine Learning Python SDK