Megosztás a következőn keresztül:


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:

  1. Hozza létre újra a Spark-készlet 3.3-at az alapoktól kezdve.
  2. 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
              }
        }
    }