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 egy újabb GA-verziójára, amely az Apache Spark 3.5-höz 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 Futtatókörnyezet az Apache Spark 3.5-höz 2025. október 13. GA 2026. október 31. 2027. október 31.
Azure Synapse Futtatókörnyezet az Apache Spark 3.4 2023. nov. 21. elavult, és hamarosan le lesz tiltva 2025. április 30. 2026. március 31., kedd
Azure Synapse Futtatókörnyezet az Apache Spark 3.3 2022. nov. 17. elavult, és hamarosan le lesz tiltva 2024. július 12. 2025. március 31.

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 kínál azoknak a felhasználóknak, akik Azure Synapse Runtime-jukat Apache Spark munkaterheléséhez szeretnék frissíteni a legújabb GA verzióra, például a 3.5-re. 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

  • A kompatibilitás értékelése: Kezdje az Apache Spark migrációs útmutatóinak áttekintésével, hogy azonosítsd a lehetséges inkompatibilisséget, elavult funkciókat és új API-kat a jelenlegi Spark verzió és a célverzió (például 3.5) 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álaszd ki a cél Spark verziót (például 3.5), és állítsd be a teljesítményigényeid szerint.
  • Spark Pool konfigurációjának konfigurálása: Győződj meg róla, hogy az új Spark poolod összes könyvtára és függősége frissítve vagy cserélődjön ki, hogy kompatibilis legyen a Spark 3.5-tel.

3. lépés: A kód migrálása és tesztelése

  • Migrációs kód: Frissítsd a kódodat, hogy megfeleljen az Apache Spark 3.5 új vagy módosított API-ival. 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.
  • Telepítés és figyelés: Alapos tesztelés és validáció után telepítsd az alkalmazásodat az új Spark 3.5 poolba. 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 végrehajtani a 3.X-re való migráláshoz?

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észletet az alapoktól kezdve.
  2. Leminősítsd a jelenlegi Spark Poolt, távolítsd el a csatolt csomagokat, majd frissítsd újra a legfrissebb GA verzióra, például 3.5-re

Kérdés: Miért nem tudok 3.5-ösre frissíteni anélkül, hogy újra létrehoznék egy új Spark poolt?

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.5 -ForceApplySetting
              }
        }
    }