Apache Spark az Azure Machine Tanulás

Az Azure Machine Tanulás Integráció az Azure Synapse Analyticsszel egyszerű hozzáférést biztosít az elosztott számítási erőforrásokhoz az Apache Spark-keretrendszeren keresztül. Ez az integráció a következő Apache Spark-számítási funkciókat kínálja:

  • Kiszolgáló nélküli Spark-számítás
  • Csatolt Synapse Spark-készlet

Kiszolgáló nélküli Spark-számítás

Az Apache Spark-keretrendszerrel az Azure Machine Tanulás kiszolgáló nélküli Spark-számítás a legegyszerűbb módja az elosztott számítási feladatok elvégzésének az Azure Machine Tanulás környezetben. Az Azure Machine Tanulás teljes mértékben felügyelt, kiszolgáló nélküli, igény szerinti Apache Spark számítási fürtöt kínál. A felhasználók elkerülhetik az Azure Synapse-munkaterület és a Synapse Spark-készlet létrehozását.

A felhasználók meghatározhatják az erőforrásokat, beleértve a példánytípust és az Apache Spark futtatókörnyezet verzióját. Ezeket az erőforrásokat használhatják a kiszolgáló nélküli Spark-számításhoz az Azure Machine Tanulás jegyzetfüzetekben a következő célokra:

Megfontolandó szempontok

A kiszolgáló nélküli Spark-számítás a legtöbb olyan felhasználói forgatókönyv esetében jól működik, amely gyors hozzáférést igényel az elosztott számítási erőforrásokhoz az Apache Sparkon keresztül. Ha azonban megalapozott döntést szeretne hozni, a felhasználóknak figyelembe kell venniük ennek a megközelítésnek az előnyeit és hátrányait.

Előnyök:

  • Nincs függőség az Apache Sparkhoz készült egyéb Azure-erőforrások létrehozásához (az Azure Synapse-infrastruktúra a kapucni alatt működik).
  • Nincs szükség előfizetési engedélyekre az Azure Synapse-hoz kapcsolódó erőforrások létrehozásához.
  • Nincs szükség SQL-készletkvótákra.

Hátrányok:

  • Hiányzik egy állandó Hive-metaadattár. A kiszolgáló nélküli Spark-számítás csak a memóriában lévő Spark SQL-t támogatja.
  • Nincsenek elérhető táblák vagy adatbázisok.
  • Hiányzó Azure Purview-integráció.
  • Nincs elérhető társított szolgáltatás.
  • Kevesebb adatforrás és összekötő.
  • Nincs készletszintű konfiguráció.
  • Nincs készletszintű erőforrástár-kezelés.
  • Csak részleges támogatás a mssparkutils.

Hálózati konfiguráció

Ha a hálózatelkülönítést az Azure Machine Tanulás és a kiszolgáló nélküli Spark-számítással szeretné használni, használjon felügyelt virtuális hálózatot.

Inaktivitási időszakok és lebontási mechanizmus

Első indításkor előfordulhat, hogy egy kiszolgáló nélküli Spark-számítási (hidegindítási) erőforrásnak 3-5 percre van szüksége a Spark-munkamenet elindításához. Ezt a késést az Azure Synapse által támogatott automatikus kiszolgáló nélküli Spark-számítási kiépítés okozza. A kiszolgáló nélküli Spark-számítás kiépítése és az Apache Spark-munkamenet indítása után a későbbi kódvégrehajtások (meleg kezdés) nem fogják tapasztalni ezt a késést.

A Spark-munkamenet konfigurációja olyan lehetőséget kínál, amely meghatározza a munkamenet időtúllépését (percekben). A Spark-munkamenet egy olyan inaktivitási időszak után fejeződik be, amely meghaladja a felhasználó által megadott időtúllépést. Ha a következő 10 percben nem indul el egy újabb Spark-munkamenet, a kiszolgáló nélküli Spark-számításhoz kiosztott erőforrások le lesznek bontva.

A kiszolgáló nélküli Spark számítási erőforrás lebontása után a következő feladat elküldése hideg kezdést igényel. A következő vizualizáció néhány munkamenet-inaktivitási időszakot és fürtlebontási forgatókönyvet mutat be.

Bővíthető diagram, amely az Apache Spark-munkamenet inaktivitási időszakának és a fürt szakadásának forgatókönyveit mutatja be.

Munkamenetszintű Conda-csomagok

A Conda-függőségi YAML-fájlok számos munkamenetszintű Conda-csomagot definiálhatnak egy munkamenet-konfigurációban. A munkamenet időtúllépést eredményez, ha a YAML-fájlban definiált Conda-csomagok telepítéséhez több mint 15 perc szükséges. Fontos, hogy először ellenőrizze, hogy egy szükséges csomag már elérhető-e az Azure Synapse alaprendszerképében. Ehhez a felhasználóknak a hivatkozást követve kell meghatározniuk a használt Apache Spark-verzió alaprendszerképében elérhető csomagokat:

Fontos

Azure Synapse Runtime for Apache Spark: Announcements

  • Azure Synapse Runtime for Apache Spark 3.2:
    • EOLA közlemény dátuma: 2023. július 8.
    • Támogatási dátum vége: 2024. július 8. A dátum után a futtatókörnyezet le lesz tiltva.
  • A folyamatos támogatás és az optimális teljesítmény érdekében javasoljuk, hogy a

Feljegyzés

Munkamenetszintű Conda-csomag esetén:

  • a hidegindítás körülbelül 10-15 percet igényel.
  • A Meleg kezdés, ugyanazt a Conda-csomagot használva, körülbelül egy percre lesz szüksége.
  • a Meleg kezdet, egy másik Conda csomaggal, szintén körülbelül 10-15 percet igényel.
  • Ha a telepített csomag nagy méretű, vagy hosszú telepítési időre van szüksége, az hatással lehet a Spark-példány indítási idejére.
  • A PySpark, a Python, a Scala/Java, a .NET vagy a Spark verzió módosítása nem támogatott.
  • A Docker-rendszerképek nem támogatottak.

A munkamenet hideg kezdési idejének javítása munkamenetszintű Conda-csomagok használata közben

A Spark-munkamenet hideg kezdési idejének javításához állítsa a konfigurációs változót a spark.hadoop.aml.enable_cache következőre true: . A munkamenet hideg kezdése a munkamenetszintű Conda-csomagokkal általában 10–15 percet vesz igénybe, amikor a munkamenet első alkalommal elindul. A következő munkamenet hidegindítása azonban 3-5 percet vesz igénybe. Adja meg a konfigurációs változót a Munkamenet konfigurálása felhasználói felületén, a Konfigurációs beállítások területen.

Bővíthető diagram, amely a Gyorsítótárat engedélyező Spark-munkamenet konfigurációs címkéjét mutatja.

Csatolt Synapse Spark-készlet

Az Azure Synapse-munkaterületen létrehozott Spark-készlet elérhetővé válik az Azure Machine Tanulás-munkaterületen a csatolt Synapse Spark-készlettel. Ez a beállítás alkalmas lehet azoknak a felhasználóknak, akik egy meglévő Synapse Spark-készletet szeretnének újra felhasználni.

A Synapse Spark-készlet Azure Machine-Tanulás-munkaterülethez való csatolásához további lépésekre van szükség, mielőtt a készletet az Azure Machine Tanulás a következő célokra használhatja:

A csatolt Synapse Spark-készlet hozzáférést biztosít a natív Azure Synapse-funkciókhoz. A felhasználó felelős a Synapse Spark-készlet kiépítéséért, csatolásáért, konfigurálásáért és felügyeletéért.

A csatolt Synapse Spark-készlet Spark-munkamenet-konfigurációja szintén lehetőséget kínál a munkamenet időtúllépésének meghatározására (percekben). A munkamenet időtúllépési viselkedése hasonlít az előző szakasz leírására, azzal a kivételsel, hogy a társított erőforrások soha nem szakadnak le a munkamenet időtúllépése után.

Spark-fürt méretének meghatározása

Az Azure Machine Tanulás Spark-feladatokban a Spark-fürt méretét három paraméterértékkel határozhatja meg:

  • Végrehajtók száma
  • Végrehajtó magok
  • Végrehajtó memóriája

Az Azure Machine Tanulás Apache Spark-végrehajtót az Azure Spark feldolgozó csomópontjaival egyenértékűnek kell tekintenie. Egy példa megmagyarázhatja ezeket a paramétereket. Tegyük fel, hogy a végrehajtók számát 6-ként definiálta (ez hat feldolgozó csomópontnak felel meg), a végrehajtó magok számát 4-nek, a végrehajtói memóriát pedig 28 GB-nak. A Spark-feladat ezután 24 maggal és 168 GB memóriával rendelkező fürthöz fér hozzá.

Erőforrás-hozzáférés biztosítása Spark-feladatokhoz

Az adatok és egyéb erőforrások eléréséhez a Spark-feladatok felügyelt identitást vagy felhasználói identitás átengedést használhatnak. Ez a táblázat összefoglalja azokat a mechanizmusokat, amelyeket a Spark-feladatok az erőforrások eléréséhez használnak.

Spark-készlet Támogatott identitások Alapértelmezett identitás
Kiszolgáló nélküli Spark-számítás Felhasználói identitás, a munkaterülethez csatolt, felhasználó által hozzárendelt felügyelt identitás Felhasználói azonosító
Csatolt Synapse Spark-készlet Felhasználói identitás, a csatolt Synapse Spark-készlethez csatolt felhasználó által hozzárendelt felügyelt identitás, a csatolt Synapse Spark-készlet rendszer által hozzárendelt felügyelt identitása A csatolt Synapse Spark-készlet rendszer által hozzárendelt felügyelt identitása

Ez a cikk a Spark-feladatok erőforrás-hozzáférését ismerteti. Egy jegyzetfüzet-munkamenetben a kiszolgáló nélküli Spark-számítás és a csatolt Synapse Spark-készlet egyaránt felhasználói identitásátadást használ az adatokhoz való hozzáféréshez az interaktív adatátvétel során.

Feljegyzés

  • A Spark-feladat sikeres végrehajtásához rendeljen hozzá közreműködői és tárolási blobadat-közreműködői szerepköröket (az adatbemenethez és a kimenethez használt Azure Storage-fiókban) a Spark-feladat beküldéséhez használt identitáshoz.
  • Ha egy csatolt Synapse Spark-készlet egy Azure Synapse-munkaterület Synapse Spark-készletére mutat, és a munkaterülethez társított felügyelt virtuális hálózat tartozik, konfiguráljon egy felügyelt privát végpontot egy tárfiókra. Ez a konfiguráció segít az adathozzáférés biztosításában.

Következő lépések