Hibakódok értelmezése a Synapse Analyticsben
Számos tényező játszik szerepet abban, hogy egy Spark-alkalmazás miért hiúsul meg ma Azure Synapse Analyticsben. Ennek oka lehet például egy rendszerhiba vagy akár egy felhasználóval kapcsolatos hiba is. Korábban a Synapse Analytics sikertelen feladatainak megfelelő összes hiba egy általános hibakóddal jelenik meg , amely LIVY_JOB_STATE_DEAD jelenik meg. Ez a hibakód nem adott további információt a feladat sikertelenségéről. Jelentős erőfeszítést igényel a kiváltó ok azonosításához az illesztőprogram, a végrehajtó, a Spark-esemény, a Livy-naplók feltárásával és a megoldás megkeresésével.
Az előző általános üzenetet felülíró hibakódok pontosabb listáját vezettük be. Az új üzenet ismerteti a hiba okát. Ha egy feladat meghiúsul az Azure Synapse Analyticsben, a hibakezelési funkció elemzi és ellenőrzi a háttérrendszer naplóit a kiváltó ok azonosítása érdekében. Ezután egy üzenetet jelenít meg a felhasználónak a figyelési panelen, valamint a probléma megoldásának lépéseit.
Hibabesorolás engedélyezése a Synapse-ban
A hibabesorolási funkció a következő Spark-konfiguráció true
feladat- vagy false
készletszinten történő beállításával engedélyezhető vagy tiltható le:
livy.rsc.synapse.error-classification.enabled
A következő szakasz felsorol néhány jelenleg támogatott hibatípust. A modell fejlesztésével folyamatosan pontosítjuk és bővítjük ezeket a hibakódokat.
Hibakód-kategóriák
Minden hibakód a következő négy gyűjtő egyikébe tartozik:
- Felhasználó – Felhasználói hiba jelzése
- Rendszer – Rendszerhiba jelzése
- Nem egyértelmű – Lehet felhasználói vagy rendszerhiba
- Ismeretlen – Még nincs besorolás, valószínűleg azért, mert a hibatípus nem szerepel a modellben
Hibakód-példák az egyes besorolási típusokhoz
Spark_User_TypeError_TypeNotIterable
A Pythonban a hiba TypeError: argument of type 'insert type' is not iterable
akkor fordul elő, ha a tagsági operátor (in, not in) egy érték tagságának ellenőrzésére szolgál nem iterálható objektumokban, például listákban, rekordokban, szótárakban. Ezt általában az okozza, hogy egy nem iteráló objektumban keres értékeket. Lehetséges megoldások:
- Ellenőrizze, hogy az érték szerepel-e az iterálási objektumban.
- Ha egy értéket egy másiknak szeretne ellenőrizni, a Tagsági operátor helyett használjon logikai operátort.
- Ha a tagsági operátor "Nincs" értéket tartalmaz, akkor nem tud iterálni, és null értékű ellenőrzést vagy alapértelmezett hozzárendelést kell végezni.
- Ellenőrizze, hogy a használt érték típusa valóban ellenőrizhető-e, és helyes-e a beírás.
Spark_System_ABFS_OperationFailed
Az ADLS Gen2-vel végzett művelet sikertelen volt.
Ez a hiba általában engedélyekkel kapcsolatos probléma miatt fordul elő.
Győződjön meg arról, hogy a Spark-feladatban hivatkozott összes ADLS Gen2-erőforrás esetében "Storage Blobadatok közreműködője" RBAC-szerepkörrel rendelkezik azon tárfiókokon, amelyekből a feladatnak olvasása és írása várható. Ellenőrizze a Spark-alkalmazás naplóit. Lépjen a Synapse Studio, majd a bal oldali panelen válassza a Figyelés lapot. A Tevékenységek szakaszban válassza az Apache Spark-alkalmazások lehetőséget, és keresse meg a Spark-feladatot a listából. A problémát tapasztaló ADLS Gen2-tárfiók neve esetén vizsgálja meg a lap alján található Naplók lapon elérhető naplókat .
Spark_Ambiguous_ClassLoader_NoClassDefFound
A kód által igényelt osztály nem található a szkript futtatásakor.
A csomagkezelési dokumentációt a következő oldalakon találja:
Jegyzetfüzetes forgatókönyvek esetén: Az Apache Spark interaktív feladatok csomagjait kezeli
Spark batch-forgatókönyvek esetén (lásd a 6. szakaszt): Az Apache Spark kezeli a kötegfeladatok csomagjait
Győződjön meg arról, hogy az összes kódfüggőség szerepel a JARs Synapse-futtatásokban. Ha saját kóddal nem vagy nem tud harmadik féltől származó JRS-eket felvenni, győződjön meg arról, hogy az összes függőség szerepel a kódot végrehajtó Spark-készlet munkaterület-csomagjaiban, vagy szerepeljenek a Spark-kötegbeküldés "Referenciafájlok" listájában. További információért tekintse meg a fenti dokumentációt.
Spark_Unknown_Unknown_java.lang.Exception
Ismeretlen hiba miatt a modell nem tudott besorolni.
Ha ez a funkció engedélyezve van, a hibakódok (beleértve a fenti listát is) és a probléma megoldására vonatkozó hibaelhárítási utasítások megjelennek az alkalmazás Synapse Studio hibaablakában.
Megjegyzés
Ha olyan eszközt készített a Synapse monitorozási feladat köré, amely a hibakód szűrésével ellenőrzi a LIVY_JOB_STATE_DEAD
sikertelen feladatokat, az alkalmazás nem fog működni. Mivel a visszaadott hibakódok eltérnek a fent említettek szerint. Módosítsa a szkripteket ennek megfelelően a funkció használatához, vagy tiltsa le a funkciót, ha nincs rá szükség.
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: