Κοινοποίηση μέσω


Ανάλυση εργασιών Spark με τη βιβλιοθήκη Job Insight (Προεπισκόπηση)

Το 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 υπάρχει ήδη Χρησιμοποιήστε μια νέα διαδρομή που δεν υπάρχει ήδη για κάθε κλήση για ανάλυση().