Χρησιμοποιήστε το Livy API για την υποβολή και εκτέλεση εργασιών περιόδου λειτουργίας Spark με διαπιστευτήρια χρήστη

Ισχύει για:✅ Fabric Μηχανική Δεδομένων και Επιστήμη Δεδομένων

Το Fabric Livy API σάς επιτρέπει να υποβάλλετε εργασίες δέσμης και περιόδου λειτουργίας Spark από έναν απομακρυσμένο υπολογιστή-πελάτη απευθείας στο Fabric Spark compute, χωρίς να χρησιμοποιείτε την πύλη Fabric. Σε αυτό το άρθρο, δημιουργείτε ένα lakehouse, πραγματοποιείτε έλεγχο ταυτότητας με ένα διακριτικό Microsoft Entra, ανακαλύπτετε το τελικό σημείο API Livy και υποβάλλετε και παρακολουθείτε μια εργασία περιόδου λειτουργίας Spark.

Προαπαιτούμενα στοιχεία

Επιλέξτε έναν πελάτη REST API

Μπορείτε να αλληλεπιδράσετε με το Livy API από οποιονδήποτε πελάτη που υποστηρίζει αιτήματα HTTP, συμπεριλαμβανομένων εργαλείων όπως το curl ή οποιαδήποτε γλώσσα με βιβλιοθήκη HTTP. Τα παραδείγματα σε αυτό το άρθρο χρησιμοποιούν το Visual Studio Code με τα σημειωματάρια Jupyter, PySpark και το Microsoft Authentication Library (MSAL) για το Python.

Πώς να εξουσιοδοτήσετε τα αιτήματα Livy API

Για να χρησιμοποιήσετε το Livy API, πρέπει να ελέγξετε την ταυτότητα των αιτημάτων σας χρησιμοποιώντας το Microsoft Entra ID. Υπάρχουν δύο διαθέσιμες μέθοδοι εξουσιοδότησης:

  • Entra SPN Token (Service Principal): Η εφαρμογή πραγματοποιεί έλεγχο ταυτότητας ως η ίδια χρησιμοποιώντας διαπιστευτήρια, όπως μυστικό πελάτη ή πιστοποιητικό. Αυτή η μέθοδος είναι κατάλληλη για αυτοματοποιημένες διαδικασίες και υπηρεσίες παρασκηνίου όπου δεν απαιτείται αλληλεπίδραση με τον χρήστη.

  • Διακριτικό εφαρμογής Entra (Πληρεξούσιο): Η εφαρμογή ενεργεί εκ μέρους ενός συνδεδεμένου χρήστη. Αυτή η μέθοδος είναι κατάλληλη όταν θέλετε η εφαρμογή να έχει πρόσβαση σε πόρους με τα δικαιώματα του πιστοποιημένου χρήστη.

Επιλέξτε τη μέθοδο εξουσιοδότησης που ταιριάζει καλύτερα στο σενάριό σας και ακολουθήστε την αντίστοιχη ενότητα παρακάτω.

Πώς να εξουσιοδοτήσετε τα αιτήματα Livy API με ένα Microsoft Entra SPN Token

Για να εργαστείτε με Fabric API, συμπεριλαμβανομένου του Livy API, πρέπει πρώτα να δημιουργήσετε μια εφαρμογή Microsoft Entra και να δημιουργήσετε ένα μυστικό και να χρησιμοποιήσετε αυτό το μυστικό στον κώδικά σας. Η εφαρμογή σας πρέπει να καταχωρηθεί και να ρυθμιστεί επαρκώς για την εκτέλεση κλήσεων API στο Fabric. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Προσθήκη και διαχείριση διαπιστευτηρίων εφαρμογής στο Microsoft Entra ID

  1. Μετά τη δημιουργία της καταχώρησης της εφαρμογής, δημιουργήστε έναν μυστικό κωδικό προγράμματος-πελάτη.

    Στιγμιότυπο οθόνης που δείχνει Microsoft Entra εγγραφή εφαρμογής και προσθήκη μυστικού κωδικού προγράμματος-πελάτη.

  2. Καθώς δημιουργείτε τον μυστικό κωδικό προγράμματος-πελάτη, βεβαιωθείτε ότι έχετε αντιγράψει την τιμή. Αυτό το χρειάζεστε αργότερα στον κώδικα και δεν θα μπορείτε να το δείτε ξανά. Χρειάζεστε επίσης το αναγνωριστικό εφαρμογής (πελάτης) και τον κατάλογο (αναγνωριστικό μισθωτή) εκτός από τον μυστικό κωδικό στον κώδικά σας.

  3. Στη συνέχεια, προσθέστε την κύρια υπηρεσία στον χώρο εργασίας σας.

    Στιγμιότυπο οθόνης που εμφανίζει τη Διαχείριση επιλογών πρόσβασης στις ρυθμίσεις του Lakehouse.

  4. Αναζητήστε την εφαρμογή Microsoft Entra χρησιμοποιώντας το αναγνωριστικό ή το όνομα εφαρμογής (προγράμματος-πελάτη), προσθέστε την στον χώρο εργασίας και βεβαιωθείτε ότι η κύρια υπηρεσία έχει δικαιώματα συμβάλλουντος.

    Στιγμιότυπο οθόνης που εμφανίζει την προσθήκη της νέας κύριας υπηρεσίας SPN στον χώρο εργασίας.

Πώς μπορείτε να εξουσιοδοτήσετε τις αιτήσεις API Livy με ένα διακριτικό εφαρμογής Entra

Για να εργαστείτε με Fabric API, συμπεριλαμβανομένου του Livy API, πρέπει πρώτα να δημιουργήσετε μια εφαρμογή Microsoft Entra και να αποκτήσετε ένα διακριτικό. Η εφαρμογή σας πρέπει να καταχωρηθεί και να ρυθμιστεί επαρκώς για την εκτέλεση κλήσεων API στο Fabric. Για περισσότερες πληροφορίες, ανατρέξτε στο Καταχώριση αίτησης στο Πλατφόρμα ταυτοτήτων της Microsoft.

Τα ακόλουθα δικαιώματα εμβέλειας Microsoft Entra απαιτούνται για την εκτέλεση εργασιών Livy API:

Στιγμιότυπο οθόνης που δείχνει τα δικαιώματα Livy API στο Κέντρο διαχείρισης Microsoft Entra.

Απαιτούμενα πεδία

Πεδίο εφαρμογής Περιγραφή
Lakehouse.Execute.All Εκτελέστε εργασίες σε Fabric lakehouses.
Lakehouse.Read.All Διαβάστε τα μετα-δεδομένα του lakehouse.
Code.AccessFabric.All Επιτρέπει τη λήψη διακριτικών πρόσβασης στο Fabric. Απαιτείται για όλες τις λειτουργίες του Livy API.
Code.AccessStorage.All Επιτρέπει τη λήψη διακριτικών πρόσβασης στον χώρο αποθήκευσης OneLake και Azure. Απαιτείται για την ανάγνωση και εγγραφή δεδομένων σε lakehouses.

Προαιρετικός κώδικας.* πεδία

Προσθέστε αυτές τις εμβέλειες μόνο εάν οι εργασίες Spark πρέπει να έχουν πρόσβαση στις αντίστοιχες υπηρεσίες Azure κατά τον χρόνο εκτέλεσης.

Πεδίο εφαρμογής Περιγραφή Πότε να χρησιμοποιήσετε
Code.AccessAzureKeyvault.All Επιτρέπει τη λήψη διακριτικών πρόσβασης στο Azure Key Vault. Ο κώδικας Spark ανακτά μυστικά, κλειδιά ή πιστοποιητικά από το Azure Key Vault.
Code.AccessAzureDataLake.All Επιτρέπει τη λήψη διακριτικών πρόσβασης στο Azure Data Lake Storage Gen1. Ο κώδικας Spark διαβάζει ή γράφει σε λογαριασμούς Azure Data Lake Storage Gen1.
Code.AccessAzureDataExplorer.All Επιτρέπει τη λήψη διακριτικών πρόσβασης στην Azure Data Explorer (Kusto). Ο κώδικας Spark υποβάλλει ερωτήματα ή προσλαμβάνει δεδομένα προς/από συμπλέγματα Azure Data Explorer.
Code.AccessSQL.All Επιτρέπει τη λήψη διακριτικών πρόσβασης στο Azure SQL. Ο κώδικας Spark πρέπει να συνδεθεί σε βάσεις δεδομένων Azure SQL.

Όταν καταχωρείτε την εφαρμογή σας, χρειάζεστε τόσο το αναγνωριστικό εφαρμογής (προγράμματος-πελάτη) όσο και το αναγνωριστικό καταλόγου (μισθωτή).

Στιγμιότυπο οθόνης που δείχνει την επισκόπηση της εφαρμογής Livy API στο Κέντρο διαχείρισης Microsoft Entra.

Ο εξουσιοδοτημένος χρήστης που καλεί το API Livy πρέπει να είναι μέλος του χώρου εργασίας όπου βρίσκονται τόσο το API όσο και τα στοιχεία προέλευσης δεδομένων με ρόλο Συμβάλλοντα. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Παροχή πρόσβασης στους χρήστες σε χώρους εργασίας.

Κατανόηση των πεδίων Code.* για το Livy API

Όταν οι εργασίες Spark εκτελούνται μέσω του Livy API, τα Code.* πεδία ελέγχουν σε ποιες εξωτερικές υπηρεσίες μπορεί να έχει πρόσβαση το Spark Runtime για λογαριασμό του χρήστη που έχει υποβληθεί σε έλεγχο ταυτότητας. Απαιτούνται δύο. Τα υπόλοιπα είναι προαιρετικά ανάλογα με τον φόρτο εργασίας σας.

Απαιτούμενος κώδικας.* πεδία

Πεδίο εφαρμογής Περιγραφή
Code.AccessFabric.All Επιτρέπει τη λήψη διακριτικών πρόσβασης στο Fabric. Απαιτείται για όλες τις λειτουργίες του Livy API.
Code.AccessStorage.All Επιτρέπει τη λήψη διακριτικών πρόσβασης στον χώρο αποθήκευσης OneLake και Azure. Απαιτείται για την ανάγνωση και εγγραφή δεδομένων σε lakehouses.

Προαιρετικός κώδικας.* πεδία

Προσθέστε αυτές τις εμβέλειες μόνο εάν οι εργασίες Spark πρέπει να έχουν πρόσβαση στις αντίστοιχες υπηρεσίες Azure κατά τον χρόνο εκτέλεσης.

Πεδίο εφαρμογής Περιγραφή Πότε να χρησιμοποιήσετε
Code.AccessAzureKeyvault.All Επιτρέπει τη λήψη διακριτικών πρόσβασης στο Azure Key Vault. Ο κώδικας Spark ανακτά μυστικά, κλειδιά ή πιστοποιητικά από το Azure Key Vault.
Code.AccessAzureDataLake.All Επιτρέπει τη λήψη διακριτικών πρόσβασης στο Azure Data Lake Storage Gen1. Ο κώδικας Spark διαβάζει ή γράφει σε λογαριασμούς Azure Data Lake Storage Gen1.
Code.AccessAzureDataExplorer.All Επιτρέπει τη λήψη διακριτικών πρόσβασης στην Azure Data Explorer (Kusto). Ο κώδικας Spark υποβάλλει ερωτήματα ή προσλαμβάνει δεδομένα προς/από συμπλέγματα Azure Data Explorer.
Code.AccessSQL.All Επιτρέπει τη λήψη διακριτικών πρόσβασης στο Azure SQL. Ο κώδικας Spark πρέπει να συνδεθεί σε βάσεις δεδομένων Azure SQL.

Σημείωμα

Τα Lakehouse.Execute.All πεδία και Lakehouse.Read.All απαιτούνται επίσης, αλλά δεν αποτελούν μέρος της Code.* οικογένειας. Χορηγούν άδεια εκτέλεσης λειτουργιών και ανάγνωσης μεταδεδομένων από Fabric lakehouses αντίστοιχα.

Πώς να ανακαλύψετε το τελικό σημείο του Fabric Livy API

Απαιτείται ένα στοιχείο lakehouse για πρόσβαση στο τελικό σημείο Livy. Μόλις δημιουργηθεί το lakehouse, το τελικό σημείο Livy API μπορεί να βρίσκεται στον πίνακα ρυθμίσεων.

Στιγμιότυπο οθόνης που εμφανίζει τελικά σημεία Livy API στις ρυθμίσεις lakehouse.

Το τελικό σημείο του API Livy θα ακολουθήσει το εξής μοτίβο:

https://api.fabric.microsoft.com/v1/workspaces/><ws_id>/lakehouses/<lakehouse_id>/livyapi/versions/2023-12-01/

Η διεύθυνση URL προσαρτάται με <περιόδους λειτουργίας> ή <δέσμες> ανάλογα με αυτό που επιλέγετε.

Λήψη των αρχείων Livy API Swagger

Τα πλήρη αρχεία swagger για το API Livy είναι διαθέσιμα εδώ.

Υψηλές συνεδρίες ταυτοχρονισμού

Η υποστήριξη υψηλής ταυτόχρονης εκτέλεσης (HC) επιτρέπει την ταυτόχρονη εκτέλεση Spark, επιτρέποντας στους υπολογιστές-πελάτες να αποκτήσουν πολλαπλά ανεξάρτητα περιβάλλοντα εκτέλεσης, που ονομάζονται περίοδοι λειτουργίας υψηλής ταυτόχρονης εκτέλεσης.

Κάθε περίοδος λειτουργίας HC αντιπροσωπεύει ένα λογικό περιβάλλον εκτέλεσης που αντιστοιχίζεται σε ένα Spark REPL (Read-Eval-Print Loop). Οι δηλώσεις Spark που υποβάλλονται σε διαφορετικές συνεδρίες HC μπορούν να εκτελεστούν ταυτόχρονα.

Αυτό επιτρέπει:

  • Παράλληλη εκτέλεση σε όλες τις συνεδρίες HC
  • Προβλέψιμη χρήση πόρων
  • Απομόνωση μεταξύ ταυτόχρονων αιτήσεων
  • Χαμηλότερη επιβάρυνση σε σύγκριση με τη δημιουργία νέας συνεδρίας ανά αίτημα

Η χρήση μιας μεμονωμένης περιόδου λειτουργίας για όλες τις αιτήσεις προκαλεί τη διαδοχική εκτέλεση των εντολών. Η δημιουργία μιας νέας συνεδρίας για κάθε αίτημα εισάγει περιττά γενικά έξοδα και υποχρησιμοποίηση πόρων.

Σημείωμα

Η απόκτηση συνεδρίας HC δεν είναι ανίκανη. Πολλαπλά αιτήματα απόκτησης με το ίδιο sessionTag επιστρέφουν διαφορετικά αναγνωριστικά περιόδου λειτουργίας HC, ακόμη και όταν υποστηρίζονται από την ίδια υποκείμενη περίοδο λειτουργίας Livy.

Για μια αναλυτική παρουσίαση με παράδειγμα κώδικα, ανατρέξτε στο Ξεκινήστε με το Livy API για Fabric περιόδους σύνδεσης υψηλής ταυτόχρονης εκτέλεσης. Για μια εννοιολογική επισκόπηση, δείτε Υψηλή υποστήριξη ταυτοχρονισμού στο Fabric Livy API.

Υποβολή εργασιών API Livy

Τώρα που ολοκληρώθηκε η εγκατάσταση του API Livy, μπορείτε να επιλέξετε να υποβάλετε εργασίες δέσμης ή περιόδου λειτουργίας.

Ενοποίηση με περιβάλλοντα Fabric

Από προεπιλογή, αυτή η περίοδος λειτουργίας API Livy εκτελείται σε σχέση με την προεπιλεγμένη ομάδα εκκίνησης για τον χώρο εργασίας. Εναλλακτικά, μπορείτε να χρησιμοποιήσετε το Fabric Environments Δημιουργήστε, ρυθμίστε τις παραμέτρους και χρησιμοποιήστε ένα περιβάλλον στο Fabric για να προσαρμόσετε το χώρο συγκέντρωσης Spark που χρησιμοποιεί η περίοδος λειτουργίας Livy API για αυτές τις εργασίες Spark.

Για να χρησιμοποιήσετε ένα περιβάλλον Fabric σε μια περίοδο λειτουργίας Livy Spark, ενημερώστε το json για να συμπεριλάβετε αυτό το ωφέλιμο φορτίο.

create_livy_session = requests.post(livy_base_url, headers = headers, json={
    "conf" : {
        "spark.fabric.environmentDetails" : "{\"id\" : \""EnvironmentID""}"}
    }
)

Για να χρησιμοποιήσετε ένα περιβάλλον Fabric σε μια περίοδο λειτουργίας δέσμης Livy Spark, ενημερώστε το ωφέλιμο φορτίο json όπως φαίνεται εδώ:

payload_data = {
"name":"livybatchdemo_with"+ newlakehouseName,
"file":"abfss://YourABFSPathToYourPayload.py", 
"conf": {
    "spark.targetLakehouse": "Fabric_LakehouseID",
    "spark.fabric.environmentDetails" : "{\"id\" : \""EnvironmentID"\"}"  # Replace "EnvironmentID" with your environment ID, or remove this line to use starter pools instead of an environment
    }
}

Τρόπος παρακολούθησης του ιστορικού αιτήσεων

Μπορείτε να χρησιμοποιήσετε το Κέντρο παρακολούθησης για να δείτε τις προηγούμενες υποβολές σας API Livy και να εντοπίσετε σφάλματα στις υποβολές σας.

Στιγμιότυπο οθόνης που εμφανίζει προηγούμενες υποβολές API Livy στο Κέντρο παρακολούθησης.