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.

  • Fond Spark: Všechny spuštěné artefakty můžou používat balíčky na úrovni fondu Sparku. K odpovídajícím fondům Sparku můžete například připojit definice úloh poznámkového bloku a 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.

  • Relace: Instalace na úrovni relace vytvoří prostředí pro konkrétní relaci poznámkového bloku. 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 spuštění kanálu.
  • Správa knihoven na úrovni relace vám může pomoct s rychlou iterací nebo řešením častých změn knihovny. Stabilita instalace na úrovni relace však není slibována. Příkazy v řádku, jako je %pip a %conda, jsou také při spuštění kanálu zakázané. 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í do všech relací fondu Sparku.

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.

V případě knihoven Pythonu používají fondy Azure Synapse Spark k instalaci a správě závislostí balíčků Pythonu conda. Knihovny Pythonu na úrovni fondu můžete zadat tak, že zadáte requirements.txt nebo environment.yml soubor. Tento konfigurační soubor prostředí se používá při každém vytvoření instance Sparku z tohoto fondu Sparku. Balíčky pracovního prostoru můžete také připojit k fondů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ích prostorů a nainstalujte je do fondu Sparku.

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.2 (oznámila ukončení podpory) a Apache Spark 3.3 (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. Vytiskne názvy nových souborů a závislostí kol pro požadavky 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ů s vymezeným oborem 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 balíčky s vymezeným relacím k přidávání, správě a aktualizaci závislostí relací.

Balíčky s oborem relace umožňují uživatelům definovat závislosti balíčků na začátku relace. Při instalaci balíčku s vymezeným oborem relace má přístup pouze k zadaným balíčkům. V důsledku toho tyto balíčky s vymezeným relacím nemají vliv na jiné relace nebo úlohy, 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ů s vymezeným relacím najdete v následujících článcích:

  • Balíčky relací Pythonu: Na začátku relace poskytují 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: Na začátku relace zadejte seznam .jar souborů, které se mají nainstalovat pomocí %%configure.

  • Balíčky relací jazyka R: V rámci relace můžete balíčky nainstalovat 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:

Další kroky