Azure Synapse-futtatókörnyezetek
Az Azure Synapse Apache Spark-készletei futtatókörnyezetekkel kötik össze az olyan alapvető összetevők verzióit, mint az Azure Synapse optimalizálás, csomagok és összekötők egy adott Apache Spark-verzióval. Minden futtatókörnyezetet rendszeresen frissítünk, hogy új fejlesztéseket, funkciókat és javításokat tartalmazzon. Kiszolgáló nélküli Apache Spark-készlet létrehozásakor válassza ki a megfelelő Apache Spark-verziót. Ennek alapján a készlet előre telepítve van a kapcsolódó futtatókörnyezeti összetevőkkel és csomagokkal.
A futtatókörnyezetek a következő előnyökkel rendelkeznek:
- Gyorsabb munkamenetindítási idők
- Tesztelt kompatibilitás adott Apache Spark-verziókkal
- Hozzáférés népszerű, kompatibilis összekötőkhöz és nyílt forráskódú csomagokhoz
Támogatott Azure Synapse-futtatókörnyezeti kiadások
Tipp.
Határozottan javasoljuk, hogy proaktív módon frissítse a számítási feladatokat a futtatókörnyezet újabb GA-verziójára, amely az Apache Spark 3.4 -hez készült Azure Synapse Runtime (GA)). Tekintse meg az Apache Spark migrálási útmutatót.
Az alábbi táblázat a futtatókörnyezet nevét, az Apache Spark-verziót és a támogatott Azure Synapse Runtime-kiadások kiadási dátumát sorolja fel.
Futtatókörnyezet neve | Kiadási dátum | Kiadási fázis | Támogatás megszűnésének bejelentési dátuma | A támogatás megszűnésének érvényes dátuma |
---|---|---|---|---|
Azure Synapse Runtime for Apache Spark 3.4 | 2023. nov. 21. | GA (2024. ápr. 8-ától) | 2025. második negyedév | 2026. első negyedév |
Azure Synapse Runtime for Apache Spark 3.3 | 2022. nov. 17. | támogatás megszűnése bejelentett | 2024. július 12. | 3/31/2025 |
Azure Synapse Runtime for Apache Spark 3.2 | 2022. július 8. | elavult, és hamarosan le van tiltva | 2023. július 8. | 2024. július 8. |
Azure Synapse Runtime for Apache Spark 3.1 | 2021. május 26. | elavult, és hamarosan le van tiltva | 2023. január 26. | 2024. január 26. |
Azure Synapse Runtime for Apache Spark 2.4 | 2020. december 15. | elavult, és hamarosan le van tiltva | 2022. július 29. | 2023. szeptember 29. |
Futtatókörnyezet kiadási fázisai
Az Apache Spark életciklusának és támogatási szabályzatainak teljes futásidejéhez tekintse meg a Synapse-futtatókörnyezetet az Apache Spark életciklusához és a támogatottsághoz.
Futtatókörnyezet javítása
Az Apache Spark-javításokhoz készült Azure Synapse-futtatókörnyezetek havonta jelennek meg, amelyek hiba-, funkció- és biztonsági javításokat tartalmaznak az Apache Spark core motoron, a nyelvi környezeteken, az összekötőken és a kódtárakon.
Feljegyzés
- A rendszer automatikusan alkalmazza a karbantartási frissítéseket egy adott kiszolgáló nélküli Apache Spark-készlet új munkameneteire.
- Tesztelje és ellenőrizze, hogy az alkalmazások megfelelően futnak-e új futtatókörnyezeti verziók használatakor.
Fontos
Log4j 1.2.x biztonsági javítások
A nyílt forráskódú Log4j-kódtár 1.2.x-es verziója számos ismert CVE-vel (gyakori biztonsági résekkel és kitettségekkel) rendelkezik, az itt leírtak szerint.
Az összes Synapse Spark Pool-futtatókörnyezetben kijavítottuk a Log4j 1.2.17 JAR-eket a következő CVE-k csökkentése érdekében: CVE-2019-1751, CVE-2020-9488, CVE-2021-4104, CVE-2022-23302, CVE-2022-2330, CVE-2022-23307
Az alkalmazott javítás a következő fájlok eltávolításával működik, amelyek a biztonsági rések meghívásához szükségesek:
org/apache/log4j/net/SocketServer.class
org/apache/log4j/net/SMTPAppender.class
org/apache/log4j/net/JMSAppender.class
org/apache/log4j/net/JMSSink.class
org/apache/log4j/jdbc/JDBCAppender.class
org/apache/log4j/chainsaw/*
Bár a fenti osztályokat nem használták a Synapse alapértelmezett Log4j-konfigurációiban, lehetséges, hogy egyes felhasználói alkalmazások továbbra is függhetnek attól. Ha az alkalmazásnak ezeket az osztályokat kell használnia, a Library Management használatával adja hozzá a Log4j biztonságos verzióját a Spark-készlethez. Ne használja a Log4j 1.2.17-es verzióját, mivel az újra bevezetné a biztonsági réseket.
A javítási szabályzat a futásidejű életciklus fázisa alapján különbözik:
Általánosan elérhető (GA) futtatókörnyezet: Nem kap frissítést a főverziókon (azaz 3.x -> 4.x). És frissít egy alverziót (azaz 3.x -> 3.y) mindaddig, amíg nincsenek elavulási vagy regressziós hatások.
Előzetes verziójú futtatókörnyezet: Nincs főverzió-frissítés, kivéve, ha feltétlenül szükséges. Az alverziók (3.x -> 3.y) frissítve lesznek, hogy a legújabb funkciókat hozzáadják a futtatókörnyezethez.
A hosszú távú támogatási (LTS) futtatókörnyezet csak biztonsági javításokkal van javítva.
A támogatás megszűnéséről bejelentett futtatókörnyezetben nem lesznek hiba- és funkciójavítások. A biztonsági javítások a kockázatértékelés alapján kerülnek visszajelentésre.
Migrálás az Apache Spark-verziók között – támogatás
Ez az útmutató strukturált megközelítést biztosít azOknak a felhasználóknak, akik az Azure Synapse Runtime for Apache Spark számítási feladataikat a 2.4-es, a 3.1-es, a 3.2-es vagy a 3.3-as verzióról szeretnék frissíteni a legújabb GA-verzióra, például a 3.4-es verzióra. A legújabb verzióra való frissítés lehetővé teszi, hogy a felhasználók kihasználják a teljesítménybeli fejlesztéseket, az új funkciókat és a továbbfejlesztett biztonsági intézkedéseket. Fontos megjegyezni, hogy a magasabb verzióra való áttéréshez szükség lehet a meglévő Spark-kód módosítására inkompatibilitás vagy elavult funkciók miatt.
1. lépés: Értékelés és tervezés
- Kompatibilitás felmérése: Kezdje az Apache Spark migrálási útmutatóinak áttekintésével az esetleges inkompatibilitások, elavult funkciók és új API-k azonosításához az aktuális Spark-verzió (2.4, 3.1, 3.2 vagy 3.3) és a célverzió (pl. 3.4) között.
- A Codebase elemzése: Gondosan vizsgálja meg a Spark-kódot az elavult vagy módosított API-k használatának azonosításához. Különös figyelmet kell fordítani az SQL-lekérdezésekre és a felhasználó által definiált függvényekre (UDF-ek), amelyeket érinthet a frissítés.
2. lépés: Új Spark-készlet létrehozása teszteléshez
- Új készlet létrehozása: Az Azure Synapse-ban lépjen a Spark-készletek szakaszra, és állítson be egy új Spark-készletet. Válassza ki a cél Spark-verziót (pl. 3.4), és konfigurálja a teljesítménykövetelményeknek megfelelően.
- A Spark-készlet konfigurálásának konfigurálása: Győződjön meg arról, hogy az új Spark-készlet összes kódtára és függősége frissül vagy lecserélődik, hogy kompatibilis legyen a Spark 3.4-zel.
3. lépés: A kód migrálása és tesztelése
- Kód migrálása: Frissítse a kódot, hogy megfeleljen az Apache Spark 3.4 új vagy módosított API-jának. Ez magában foglalja az elavult függvények kezelését és az új funkciók bevezetését a hivatalos Apache Spark-dokumentációban leírtak szerint.
- Tesztelés fejlesztői környezetben: A frissített kód tesztelése az Azure Synapse fejlesztői környezetében, nem helyileg. Ez a lépés elengedhetetlen a problémák azonosításához és javításához, mielőtt éles környezetbe lépne.
- Üzembe helyezés és monitorozás: A fejlesztői környezetben végzett alapos tesztelés és ellenőrzés után helyezze üzembe az alkalmazást az új Spark 3.4-készletben. Kritikus fontosságú az alkalmazás figyelése a váratlan viselkedések esetén. Használja az Azure Synapse-ban elérhető monitorozási eszközöket a Spark-alkalmazások teljesítményének nyomon követéséhez.
Kérdés: Milyen lépéseket kell tenni a 2.4-ről 3.X-re való migrálás során?
Válasz: Tekintse meg az Apache Spark migrálási útmutatót.
Kérdés: Hibaüzenetet kaptam, amikor PowerShell-parancsmaggal próbáltam frissíteni a Spark-készlet futtatókörnyezetét, amikor csatlakoztatott kódtárak vannak.
Válasz: Ne használja a PowerShell-parancsmagot, ha egyéni kódtárak vannak telepítve a Synapse-munkaterületen. Ehelyett kövesse az alábbi lépéseket:
- Hozza létre újra a Spark-készlet 3.3-at az alapoktól kezdve.
- Lépjen vissza az aktuális Spark-készlet 3.3-ról 3.1-re, távolítsa el a csatolt csomagokat, majd frissítsen újra a 3.3-ra.
Kérdés: Miért nem tudok frissíteni a 3.4-re új Spark-készlet létrehozása nélkül?
Válasz: Ez nem engedélyezett az UX-től, az ügyfél az Azure PowerShell használatával frissítheti a Spark-verziót. Használja a "ForceApplySetting" parancsot, hogy a meglévő (régi verziójú) fürtök leszerelhetők legyenek.
Mintalekérdezés:
$_target_work_space = @("workspace1", "workspace2")
Get-AzSynapseWorkspace |
ForEach-Object {
if ($_target_work_space -contains $_.Name) {
$_workspace_name = $_.Name
Write-Host "Updating workspace: $($_workspace_name)"
Get-AzSynapseSparkPool -WorkspaceName $_workspace_name |
ForEach-Object {
Write-Host "Updating Spark pool: $($_.Name)"
Write-Host "Current Spark version: $($_.SparkVersion)"
Update-AzSynapseSparkPool -WorkspaceName $_workspace_name -Name $_.Name -SparkVersion 3.4 -ForceApplySetting
}
}
}