Sdílet prostřednictvím


Správa knihoven pro Apache Spark v Azure Synapse Analytics.

Knihovny poskytují opakovaně použitelný kód, který můžete chtít zahrnout do programů nebo projektů pro Apache Spark ve službě Azure Synapse Analytics (Azure Synapse Spark).

Možná budete muset aktualizovat prostředí bezserverového fondu Apache Spark z různých důvodů. Můžete například zjistit, že:

  • Jedna z vašich základních závislostí vydala novou verzi.
  • K trénování modelu strojového učení nebo přípravě dat potřebujete další balíček.
  • K dispozici je lepší balíček a starší balíček už nepotřebujete.
  • Váš tým vytvořil vlastní balíček, který potřebujete k dispozici ve fondu Apache Spark.

Pokud chcete zpřístupnit kód třetích stran nebo místně vytvořený pro vaše aplikace, nainstalujte knihovnu do jednoho z bezserverových fondů Apache Spark nebo relace poznámkového bloku.

Přehled úrovní balíčků

Ve službě Azure Synapse Analytics jsou nainstalované tři úrovně balíčků:

  • Výchozí nastavení: Výchozí balíčky zahrnují úplnou instalaci Anaconda a navíc další běžně používané knihovny. Úplný seznam knihoven najdete v tématu Podpora verzí Apache Sparku.

    Při spuštění instance Sparku se tyto knihovny zahrnou automaticky. Další balíčky můžete přidat na dalších úrovních.

  • Spark pool: Všechny spuštěné artefakty můžou používat balíčky na úrovni Spark poolu. Například můžete připojit definice poznámkového bloku a úloh Sparku k odpovídajícím fondům Sparku.

    Můžete nahrát vlastní knihovny a konkrétní verzi opensourcové knihovny, kterou chcete použít ve svém pracovním prostoru Azure Synapse Analytics. Balíčky pracovních prostorů je možné nainstalovat do fondů Sparku.

  • Sezení: Instalace na úrovni sezení vytvoří prostředí pro konkrétní sezení poznámkového sešitu. Změna knihoven na úrovni relace se mezi relacemi neuchová.

Poznámka:

  • Správa knihoven na úrovni fondu může nějakou dobu trvat v závislosti na velikosti balíčků a složitosti požadovaných závislostí. Maximální doba aktualizace se nastaví na 50 minut. Úloha správy knihovny na úrovni fondu se zruší automaticky, pokud překročí horní limit 50 minut. Doporučujeme instalaci na úrovni relace pro experimentální a rychlé iterativní scénáře.
  • Správa knihoven na úrovni fondu vytvoří stabilní závislost pro spouštění vašich poznámkových bloků a definic úloh Sparku. Instalace knihovny do fondu Sparku se důrazně doporučuje pro běh pipelin.
  • Správa knihoven na úrovni jednotlivých relací vám může pomoci s rychlým uskutečňováním iterací nebo řešením častých změn v knihovnách. Stabilita instalace na úrovni relace však není slibována. Příkazy v řádku, jako jsou %pip a %conda, jsou také zakázané při spuštění zpracovávacího kanálu. Správa knihovny v relaci poznámkového bloku se doporučuje během fáze vývoje.

Správa balíčků pracovních prostorů

Když váš tým vyvíjí vlastní aplikace nebo modely, můžete vyvíjet různé artefakty kódu, jako jsou .whl, .jar nebo .tar.gz soubory pro zabalení kódu.

Důležité

  • tar.gz se podporuje jenom pro jazyk R. Jako vlastní balíček Pythonu použijte .whl .

Balíčky pracovních prostorů v Azure Synapse můžou být vlastní nebo soukromé soubory .whl nebo .jar . Tyto balíčky můžete nahrát do pracovního prostoru a později je přiřadit ke konkrétnímu bezserverovém fondu Apache Spark. Po přiřazení těchto balíčků pracovních prostorů se automaticky nainstalují ve všech sezeních fondu Spark.

Další informace o správě knihoven pracovních prostorů najdete v tématu Správa balíčků pracovních prostorů.

Správa balíčků fondu

V některých případech můžete chtít standardizovat balíčky, které se používají ve fondu Apache Spark. Tato standardizace může být užitečná, pokud více lidí ve vašem týmu často instaluje stejné balíčky.

Pomocí možností správy fondů služby Azure Synapse Analytics můžete nakonfigurovat výchozí sadu knihoven pro instalaci do bezserverového fondu Apache Spark. Tyto knihovny se instalují nad základní modul runtime.

Fondy Azure Synapse Spark používají Conda k instalaci a správě závislostí balíčků pro Python knihovny. Knihovny Pythonu na úrovni fondu můžete specifikovat poskytnutím souboru requirements.txt nebo environment.yml. Tento konfigurační soubor prostředí se používá při každém vytvoření instance Sparku z tohoto fondu Sparku. Také můžete připojit balíčky pracovního prostoru k poolům.

Další informace o těchto možnostech najdete v tématu Správa balíčků fondu Spark.

Důležité

  • Pokud je balíček, který instalujete, velký nebo trvá dlouhou dobu, než se nainstaluje, může mít vliv na dobu spuštění instance Sparku.
  • Změna verze PySpark, Python, Scala/Java, .NET nebo Spark se nepodporuje.

Správa závislostí pro fondy Azure Synapse Spark s podporou DEP

Poznámka:

Instalace balíčků z veřejného úložiště není podporována v pracovních prostorech s podporou DEP. Místo toho nahrajte všechny závislosti jako knihovny pracovního prostoru a nainstalujte je do Spark fondu.

Pokud máte potíže s identifikací požadovaných závislostí, postupujte takto:

  1. Spuštěním následujícího skriptu nastavte místní prostředí Pythonu, které je stejné jako prostředí Azure Synapse Spark. Tento skript vyžaduje soubor YAML obsahující seznam všech knihoven zahrnutých ve výchozím prostředí Pythonu pro Azure Synapse Spark. Tento soubor YAML najdete v dokumentaci pro konkrétní verze modulu runtime, jako je Apache Spark 3.4 (GA).

       # One-time Azure Synapse Python setup
       wget Synapse-Python38-CPU.yml
       sudo bash Miniforge3-Linux-x86_64.sh -b -p /usr/lib/miniforge3
       export PATH="/usr/lib/miniforge3/bin:$PATH"
       sudo apt-get -yq install gcc g++
       conda env create -n synapse-env -f Synapse-Python38-CPU.yml 
       source activate synapse-env
    
  2. Spuštěním následujícího skriptu identifikujte požadované závislosti. Skript se dá použít k předání souboru requirements.txt , který obsahuje všechny balíčky a verze, které chcete nainstalovat do fondu Spark 3.1 nebo Spark 3.2. Zobrazí názvy nových wheel souborů a závislostí pro požadavky vaší vstupní knihovny.

       # Command to list wheels needed for your input libraries.
       # This command will list only new dependencies that are
       # not already part of the built-in Azure Synapse environment.
       pip install -r <input-user-req.txt> > pip_output.txt
       cat pip_output.txt | grep "Using cached *"
    

    Poznámka:

    Tento skript ve výchozím nastavení vypíše pouze závislosti, které ještě nejsou ve fondu Sparku.

Správa balíčků se zaměřením na relace

Když provádíte interaktivní analýzu dat nebo strojové učení, můžete vyzkoušet novější balíčky nebo možná budete potřebovat balíčky, které jsou aktuálně ve fondu Apache Spark nedostupné. Místo aktualizace konfigurace fondu můžete použít relacemi vymezené balíčky k přidávání, správě a aktualizaci závislostí v relaci.

Balíčky omezené na relaci umožňují uživatelům definovat závislosti balíčků na začátku relace. Při instalaci balíčku s relacemi má k zadaným balíčkům přístup pouze aktuální relace. V důsledku toho tyto balíčky s vymezeným rozsahem relace nemají vliv na jiné relace nebo úkoly, které používají stejný fond Apache Spark. Kromě toho se tyto knihovny instalují nad balíčky základního modulu runtime a na úrovni fondu.

Další informace o správě balíčků omezených na relaci najdete v následujících článcích:

  • Balíčky pro relace Pythonu: Na začátku relace poskytněte soubor Conda environment.yml pro instalaci dalších balíčků Pythonu z oblíbených úložišť. Nebo můžete použít %pip a %conda příkazy ke správě knihoven v buňkách kódu poznámkového bloku.

    Důležité

    Nepoužívat%%sh k vyzkoušení a instalaci knihoven pomocí pip nebo conda. Chování není stejné jako %pip nebo %conda.

  • Balíčky relací Scala/Java: Při spuštění vaší relace zadejte seznam .jar souborů k instalaci pomocí .

  • Balíčky relace R: Během své relace můžete nainstalovat balíčky napříč všemi uzly ve fondu Spark pomocí install.packages nebo devtools.

Automatizace procesu správy knihoven prostřednictvím rutin Azure PowerShellu a rozhraní REST API

Pokud váš tým chce spravovat knihovny bez návštěv uživatelského rozhraní pro správu balíčků, máte možnost spravovat balíčky pracovních prostorů a aktualizace balíčků na úrovni fondu prostřednictvím rutin Azure PowerShellu nebo rozhraní REST API pro Azure Synapse Analytics.

Další informace najdete v následujících článcích: