Apache Spark az Azure Machine Learningben
Az Azure Machine Learning integrációja 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 Learning 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 Learning-környezetben. Az Azure Machine Learning 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ás eléréséhez az Azure Machine Learning-jegyzetfüzetekben a következő célokra:
- Interaktív Spark-kódfejlesztés
- Gépi tanulási folyamatok futtatása Spark-összetevővel
- Spark batch-feladatbeküldések
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 Learning és a kiszolgáló nélküli Spark-számítás használatával 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. Az Azure Synapse által támogatott automatizált kiszolgáló nélküli Spark számítási erőforrás kiépítése okozza ezt a késést. 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 egy másik Spark-munkamenet nem indul el a következő 10 percben, 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.
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 meg kell látogatni ezeket az erőforrásokat, hogy meghatározzák 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 migráljon az Apache Spark 3.4-be
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 nagy csomagot vagy hosszú telepítési időt igénylő csomagot telepít, 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 konfigurációs változót spark.hadoop.aml.enable_cache
beállíthatja úgy, hogy true
javítsa a Spark-munkamenet hideg kezdési idejét. A munkamenetszintű Conda-csomagok esetében a munkamenet hidegindítása á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.
Csatolt Synapse Spark-készlet
Az Azure Synapse-munkaterületen létrehozott Spark-készlet elérhetővé válik az Azure Machine Learning-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 Learning-munkaterülethez való csatolásához további lépésekre van szükség, mielőtt a készletet az Azure Machine Learningben használhatja a következő célokra:
- Interaktív Spark-kódfejlesztés
- Spark batch-feladat beküldése
- Gépi tanulási folyamatok futtatása Spark-összetevővel
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 Learning 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 Learning 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 is a felhasználói identitás átadására támaszkodik az interaktív adatátvétel során történő adathozzáféréshez.
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álni kívánt 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
- Synapse Spark-készlet csatolása és kezelése az Azure Machine Learningben
- Interaktív adatkonvergálás az Apache Sparkkal az Azure Machine Learningben
- Spark-feladatok küldése az Azure Machine Learningben
- Kódminták Spark-feladatokhoz az Azure Machine Learning CLI használatával
- Kódminták Spark-feladatokhoz az Azure Machine Learning Python SDK használatával