Σημείωση
Η πρόσβαση σε αυτή τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να συνδεθείτε ή να αλλάξετε καταλόγους.
Η πρόσβαση σε αυτή τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να αλλάξετε καταλόγους.
Το Job insight είναι μια βιβλιοθήκη διαγνωστικών που βασίζεται σε Java και έχει σχεδιαστεί για να σας βοηθά να αναλύετε αλληλεπιδραστικά ολοκληρωμένες εφαρμογές Spark στο Microsoft Fabric. Το Job insight σάς επιτρέπει να αποκτήσετε βαθύτερες πληροφορίες σχετικά με τις εργασίες Spark ανακτώντας δομημένα δεδομένα εκτέλεσης, όπως ερωτήματα, εργασίες, στάδια, εργασίες και εκτελεστές στα σημειωματάρια Fabric Spark χρησιμοποιώντας το Scala.
Είτε αντιμετωπίζετε προβλήματα απόδοσης είτε πραγματοποιείτε προσαρμοσμένα διαγνωστικά, η βιβλιοθήκη πληροφοριών εργασίας σάς επιτρέπει να εργάζεστε με την τηλεμετρία Spark ως εγγενή σύνολα δεδομένων Spark, διευκολύνοντας την αντιμετώπιση προβλημάτων απόδοσης και την εξερεύνηση πληροφοριών εκτέλεσης.
Σημείωμα
Η πρόσβαση στη βιβλιοθήκη πληροφοριών εργασίας χρησιμοποιώντας το PySpark δεν υποστηρίζεται ακόμα.
Προϋποθέσεις
Υποστηρίζεται μόνο η Scala.
Απαιτείται Fabric Runtime 1.3 ή νεότερη έκδοση (με Spark 3.5+).
Το PySpark δεν υποστηρίζει πρόσβαση στη βιβλιοθήκη Job Insight.
Βασικές δυνατότητες
Ανάλυση εργασιών Interactive Spark: Αποκτήστε πρόσβαση σε μετρήσεις εκτέλεσης Spark, συμπεριλαμβανομένων λεπτομερειών εργασίας, σταδίου και εκτελεστή.
Μετρήσεις μόνιμης εκτέλεσης: Αποθηκεύστε τις μετρήσεις εκτέλεσης εργασιών Spark σε πίνακες λιμνών για αναφορές και ενσωμάτωση.
Αντίγραφο αρχείου καταγραφής συμβάντων Spark: Εξαγωγή αρχείων καταγραφής συμβάντων στο OneLake ή στο Azure Data Storage.
Δείγμα σημειωματαρίου
Μπορείτε να χρησιμοποιήσετε το παρεχόμενο δείγμα σημειωματαρίου (δείγμα αρχείου ipynb) για να ξεκινήσετε. Το σημειωματάριο περιλαμβάνει:
- Δείγμα
analyze()καιloadJobInsight()κώδικας - Εμφάνιση εντολών (για παράδειγμα,
queries.show()) - Παραδείγματα αντιγραφής αρχείου καταγραφής συμβάντων.
Έναρξη
1. Αναλύστε μια ολοκληρωμένη εργασία Spark
Εξαγωγή δομημένων δεδομένων εκτέλεσης από μια ολοκληρωμένη εργασία Spark με το analyze API:
import com.microsoft.jobinsight.diagnostic.SparkDiagnostic
val jobInsight = SparkDiagnostic.analyze(
$workspaceId,
$artifactId,
$livyId,
$jobType,
$stateStorePath,
$attemptId
)
val queries = jobInsight.queries
val jobs = jobInsight.jobs
val stages = jobInsight.stages
val tasks = jobInsight.tasks
val executors = jobInsight.executors
2. Αποθηκεύστε μετρήσεις και αρχεία καταγραφής σε ένα σπίτι λίμνης
Αποθηκεύστε την έξοδο ανάλυσης σε πίνακες λιμνών για αναφορά ή ενσωμάτωση:
val df = jobInsight.queries
df.write
.format("delta")
.mode("overwrite")
.saveAsTable("sparkdiagnostic_lh.Queries")
Εφαρμόστε την ίδια λογική σε άλλα στοιχεία, όπως εργασίες, στάδια ή εκτελεστές.
3. Επαναφορτώστε την προηγούμενη ανάλυση
Εάν έχετε ήδη εκτελέσει μια ανάλυση και έχετε αποθηκεύσει την έξοδο, φορτώστε την ξανά χωρίς να επαναλάβετε τη διαδικασία:
import com.microsoft.jobinsight.diagnostic.SparkDiagnostic
val jobInsight = SparkDiagnostic.loadJobInsight(
$stateStorePath
)
val queries = jobInsight.queries
val jobs = jobInsight.jobs
val stages = jobInsight.stages
val tasks = jobInsight.tasks
val executors = jobInsight.executors
4. Αντιγράψτε τα αρχεία καταγραφής συμβάντων σπινθήρα
Αντιγράψτε τα αρχεία καταγραφής συμβάντων Spark σε μια θέση ABFSS (όπως OneLake ή Azure Data Lake Storage (ADLS) Gen2) με αυτό το API:
import com.microsoft.jobinsight.diagnostic.LogUtils
val contentLength = LogUtils.copyEventLog(
$workspaceId,
$artifactId,
$livyId,
$jobType,
$targetDirectory,
$asyncMode,
$attemptId
)
Βέλτιστες πρακτικές
Βεβαιωθείτε ότι έχετε τα σωστά δικαιώματα ανάγνωσης/εγγραφής για όλες τις διαδρομές ABFSS.
Αποθηκεύστε
analyze()τις εξόδους σε μια ανθεκτική τοποθεσία για επαναχρησιμοποίηση.Χρησιμοποιήστε το
asyncMode = trueκατά την αντιγραφή αρχείων καταγραφής για μεγάλες εργασίες για να μειώσετε τον λανθάνοντα χρόνο.Παρακολούθηση μεγέθους και δομής αρχείου καταγραφής συμβάντων, για την αποφυγή προβλημάτων αποσειριοποίησης.
Αντιμετώπιση προβλημάτων
| Ζήτημα | Επίλυση |
|---|---|
| Δεν επιτρέπεται η εγγραφή πρόσβασης | Ελέγξτε τα δικαιώματα εγγραφής για τον κατάλογο προορισμού ABFSS. |
| stateStorePath υπάρχει ήδη | Χρησιμοποιήστε μια νέα διαδρομή που δεν υπάρχει ήδη για κάθε κλήση για ανάλυση(). |