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


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.

Képernyőkép az Apache Spark hibakódról részletes üzenet nélkül.

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.

Képernyőkép az Apache Spark hibakódról részletes üzenettel.

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:

  1. Felhasználó – Felhasználói hiba jelzése
  2. Rendszer – Rendszerhiba jelzése
  3. Nem egyértelmű – Lehet felhasználói vagy rendszerhiba
  4. 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.