Felhasználó által definiált C#-kód hibakeresése sikertelen U-SQL-feladatok esetén
Fontos
Az Azure Data Lake Analytics 2024. február 29-én megszűnt. További információ ezzel a bejelentéssel.
Az adatelemzéshez a szervezet használhatja a Azure Synapse Analyticset vagy a Microsoft Fabricet.
Az U-SQL bővíthetőségi modellt biztosít a C# használatával. U-SQL-szkriptekben egyszerűen hívhat C#-függvényeket, és olyan elemzési függvényeket hajthat végre, amelyeket az SQL-szerű deklaratív nyelv nem támogat. Az U-SQL bővíthetőségével kapcsolatos további információkért lásd: U-SQL programozhatósági útmutató.
A gyakorlatban bármely kódhoz szükség lehet hibakeresésre, de nehéz hibakeresést végezni egy olyan elosztott feladatban, amely egyéni kóddal rendelkezik a felhőben korlátozott naplófájlokkal. Az Azure Data Lake Tools for Visual Studio a Failed Vertex Debug (Sikertelen csúcspont hibakeresése) nevű funkciót nyújt, amely egyszerűbben segít az egyéni kódban előforduló hibák hibakeresésében. Ha az U-SQL-feladat meghiúsul, a szolgáltatás megőrzi a hiba állapotát, és az eszköz segít a felhőhibás környezet letöltésében a helyi gépre hibakeresés céljából. A helyi letöltés a teljes felhőkörnyezetet rögzíti, beleértve a bemeneti adatokat és a felhasználói kódot is.
Az alábbi videó a Sikertelen csúcspont hibakeresését mutatja be az Azure Data Lake Tools for Visual Studióban.
Fontos
A Visual Studio használatához a következő két frissítés szükséges: a Microsoft Visual C++ 2015 terjeszthető 3. frissítése és a Windows univerzális C-futtatókörnyezete.
Sikertelen csúcspont letöltése a helyi gépre
Amikor sikertelen feladatot nyit meg az Azure Data Lake Tools for Visual Studióban, egy sárga riasztási sáv jelenik meg, amely részletes hibaüzeneteket tartalmaz a hiba lapon.
Válassza a Letöltés lehetőséget az összes szükséges erőforrás és bemeneti stream letöltéséhez. Ha a letöltés nem fejeződik be, válassza az Újra elemet.
Helyi hibakeresési környezet létrehozásához válassza a Megnyitás a letöltés befejezése után lehetőséget. Ekkor megnyílik egy új hibakeresési megoldás, és ha már megnyitotta a megoldást a Visual Studióban, a hibakeresés előtt mindenképpen mentse és zárja be.
A hibakeresési környezet konfigurálása
Megjegyzés
A hibakeresés előtt ellenőrizze a gyakori nyelvi futtatókörnyezeti kivételeket a Kivételbeállítások ablakban (Ctrl + Alt + E).
Az új elindított Visual Studio-példányban előfordulhat, hogy a felhasználó által definiált C#-forráskód nem található:
A forráskód szerepel a hibakeresési megoldásban
A C#-forráskód két esetben van rögzítve:
A felhasználói kód kód mögötti fájlban van definiálva (általában egy U-SQL-projektben nevezik el
Script.usql.cs
).A felhasználói kód a U-SQL-alkalmazás C# osztálykódtár-projektjében van definiálva, és hibakeresési adatokkal szerelvényként van regisztrálva.
Ha a forráskódot importálja a megoldásba, a Visual Studio hibakeresési eszközeit (watch, változókat stb.) használhatja a probléma elhárításához:
Nyomja le az F5 billentyűt a hibakeresés megkezdéséhez. A kód addig fut, amíg egy kivétel le nem állította.
Nyissa meg a forráskódfájlt, és állítson be töréspontokat, majd nyomja le az F5 billentyűt a kód részletes hibakereséséhez.
A forráskód nem szerepel a hibakeresési megoldásban
Ha a felhasználói kód nem szerepel a kód mögötti fájlban, vagy nem regisztrálta a szerelvényt hibakeresési adatokkal, akkor a forráskód nem szerepel automatikusan a hibakeresési megoldásban. Ebben az esetben további lépésekre van szükség a forráskód hozzáadásához:
Kattintson a jobb gombbal a "VertexDebug" > Megoldás Meglévő projekt hozzáadása > elemre a szerelvény forráskódjának megkereséséhez, és adja hozzá a projektet a hibakeresési megoldáshoz.
Kérje le a FailedVertexDebugHost projekt projektmappájának elérési útját.
Right-Click a hozzáadott szerelvény forráskód projektjének > Tulajdonságai elemét, válassza a bal oldali Build lapot, és illessze be a másolt elérési utat ,bin\debug végződésű kimeneti > elérési útként. A végső kimeneti elérési út a következő:
<DataLakeTemp path>\fd91dd21-776e-4729-a78b-81ad85a4fba6\loiu0t1y.mfo\FailedVertexDebug\FailedVertexDebugHost\bin\Debug\
.
A beállítások után kezdje el a hibakeresést az F5 és a töréspontok használatával. A Visual Studio hibakeresési eszközeit (watch, változókat stb.) is használhatja a probléma elhárításához.
Megjegyzés
A kód módosítása után minden alkalommal újraépítheti a szerelvény forráskódprojektet a frissített .pdb fájlok létrehozásához.
A feladat újbóli elküldése
A hibakeresés után, ha a projekt sikeresen befejeződött, a kimeneti ablak a következő üzenetet jeleníti meg:
The Program 'LocalVertexHost.exe' has exited with code 0 (0x0).
A sikertelen feladat újbóli elküldése:
Kód mögötti megoldásokkal rendelkező feladatok esetén másolja a C#-kódot a kód mögötti forrásfájlba (általában
Script.usql.cs
).Szerelvényekkel kapcsolatos feladatok esetén kattintson a jobb gombbal a szerelvény forráskód-projektjére a hibakeresési megoldásban, és regisztrálja a frissített .dll szerelvényeket az Azure Data Lake-katalógusban.
Küldje el újra az U-SQL-feladatot.