Συλλογή αρχείων καταγραφής και μετρικών των εφαρμογών σας Apache Spark με χρήση λογαριασμού υπηρεσίας αποθήκευσης Azure (προεπισκόπηση)
Η επέκταση διαγνωστικού πομπού Apache Spark Fabric είναι μια βιβλιοθήκη που επιτρέπει στις εφαρμογές Apache Spark να εκπέμπουν αρχεία καταγραφής, αρχεία καταγραφής συμβάντων και μετρικά σε πολλούς προορισμούς, συμπεριλαμβανομένων των Azure Log Analytics, Υπηρεσίας αποθήκευσης Azure και Πλήμνες συμβάντων Azure.
Σε αυτή την εκμάθηση, θα μάθετε πώς μπορείτε να χρησιμοποιήσετε την επέκταση διαγνωστικού πομπού Fabric Apache Spark για να στείλετε αρχεία καταγραφής εφαρμογών Apache Spark, αρχεία καταγραφής συμβάντων και μετρικά στον λογαριασμό σας υπηρεσίας αποθήκευσης Azure.
Συλλογή αρχείων καταγραφής και μετρικών στο λογαριασμό χώρου αποθήκευσης
Βήμα 1: Δημιουργία λογαριασμού χώρου αποθήκευσης
Για τη συλλογή αρχείων καταγραφής διαγνωστικού ελέγχου και μετρικών, μπορείτε να χρησιμοποιήσετε έναν υπάρχοντα λογαριασμό υπηρεσίας αποθήκευσης Azure. Εάν δεν έχετε λογαριασμό, μπορείτε να δημιουργήσετε έναν λογαριασμό χώρου αποθήκευσης αντικειμένων blob Azure ή να δημιουργήσετε έναν λογαριασμό χώρου αποθήκευσης για χρήση με το Azure Data Lake Storage Gen2.
Βήμα 2: Δημιουργία ενός αντικειμένου σχεδίασης περιβάλλοντος Fabric με ρύθμιση παραμέτρων Apache Spark
Επιλογή 1: Ρύθμιση παραμέτρων με URI υπηρεσίας αποθήκευσης Azure και κλειδί πρόσβασης
Δημιουργία ενός αντικειμένου σχεδίασης περιβάλλοντος Fabric στο Fabric
Προσθέστε τις ακόλουθες ιδιότητες Spark με τις κατάλληλες τιμές στο αντικείμενο σχεδίασης περιβάλλοντος ή επιλέξτε Προσθήκη από .yml στην κορδέλα για να κάνετε λήψη του δείγματος αρχείου yaml, το οποίο περιέχει ήδη τις ακόλουθες ιδιότητες.
spark.synapse.diagnostic.emitters: MyStorageBlob spark.synapse.diagnostic.emitter.MyStorageBlob.type: "AzureStorage" spark.synapse.diagnostic.emitter.MyStorageBlob.categories: "DriverLog,ExecutorLog,EventLog,Metrics" spark.synapse.diagnostic.emitter.MyStorageBlob.uri: "https://<my-blob-storage>.blob.core.windows.net/<container-name>/<folder-name>" spark.synapse.diagnostic.emitter.MyDestination1.auth: "AccessKey" spark.synapse.diagnostic.emitter.MyDestination1.secret: <storage-access-key> spark.fabric.pools.skipStarterPools: "true" //Add this Spark property when using the default pool.
Συμπληρώστε τις παρακάτω παραμέτρους στο αρχείο ρύθμισης παραμέτρων:
<my-blob-storage>
,<container-name>
,<folder-name>
,<storage-access-key>
. Για περισσότερες λεπτομέρειες σχετικά με αυτές τις παραμέτρους, ανατρέξτε στο θέμα Ρυθμίσεις παραμέτρων υπηρεσίας αποθήκευσης Azure.
Επιλογή 2: Ρύθμιση παραμέτρων με το Azure Key Vault
Σημείωση
Γνωστό ζήτημα: Δεν είναι δυνατή η έναρξη μιας περιόδου λειτουργίας χρησιμοποιώντας την Επιλογή 2 προσωρινά. Προς το παρόν, η αποθήκευση μυστικών στο Key Vault αποτρέπει την έναρξη περιόδων λειτουργίας Spark. Δώστε προτεραιότητα στη ρύθμιση παραμέτρων χρησιμοποιώντας τη μέθοδο που περιγράφεται στην Επιλογή 1.
Βεβαιωθείτε ότι στους χρήστες που υποβάλλουν εφαρμογές Apache Spark εκχωρούνται δικαιώματα ανάγνωσης μυστικού κωδικού. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Παροχή πρόσβασης σε κλειδιά Key Vault, πιστοποιητικά και μυστικούς κωδικούς με έναν έλεγχο πρόσβασης βάσει ρόλων Azure.
Για να ρυθμίσετε τις παραμέτρους του Azure Key Vault για την αποθήκευση του κλειδιού χώρου εργασίας:
Δημιουργήστε και μεταβείτε στον θάλαμο κλειδιών σας στην πύλη Azure.
Στη σελίδα ρυθμίσεων για τον θάλαμο κλειδιών, επιλέξτε Μυστικά και, στη συνέχεια , Δημιουργία/Εισαγωγή.
Στην οθόνη Δημιουργία μυστικού κωδικού επιλέξτε τις ακόλουθες τιμές:
- Όνομα: Εισαγάγετε ένα όνομα για τον μυστικό κωδικό.
- Τιμή: Εισαγάγετε το
<storage-access-key>
για τον μυστικό κωδικό. - Αφήστε τις άλλες τιμές στις προεπιλογές τους. Μετά επιλέξτε Δημιουργία.
Δημιουργήστε ένα αντικείμενο σχεδίασης περιβάλλοντος Fabric στο Fabric.
Προσθέστε τις παρακάτω ιδιότητες Spark. Εναλλακτικά, επιλέξτε Προσθήκη από .yml στην κορδέλα για να αποστείλετε το δείγμα αρχείου yaml που περιλαμβάνει τις ακόλουθες ιδιότητες Spark.
spark.synapse.diagnostic.emitters: <MyStorageBlob> spark.synapse.diagnostic.emitter.MyStorageBlob.type: "AzureStorage" spark.synapse.diagnostic.emitter.MyStorageBlob.categories: "DriverLog,ExecutorLog,EventLog,Metrics" spark.synapse.diagnostic.emitter.MyStorageBlob.uri: "https://<my-blob-storage>.blob.core.windows.net/<container-name>/<folder-name>" spark.synapse.diagnostic.emitter.MyStorageBlob.auth: "AccessKey" spark.synapse.diagnostic.emitter.MyStorageBlob.secret.keyVault: <AZURE_KEY_VAULT_NAME> spark.synapse.diagnostic.emitter.MyStorageBlob.secret.keyVault.secretName: <AZURE_KEY_VAULT_SECRET_KEY_NAME> spark.fabric.pools.skipStarterPools: "true" //Add this Spark property when using the default pool.
Συμπληρώστε τις παρακάτω παραμέτρους στο αρχείο ρύθμισης παραμέτρων:
<my-blob-storage>
, ,<container-name>
<folder-name>
, .<AZURE_KEY_VAULT_SECRET_KEY_NAME>
<AZURE_KEY_VAULT_NAME>
Για περισσότερες λεπτομέρειες σχετικά με αυτές τις παραμέτρους, ανατρέξτε στο θέμα Ρυθμίσεις παραμέτρων υπηρεσίας αποθήκευσης Azure.Αποθηκεύστε και δημοσιεύστε τις αλλαγές.
Βήμα 3: Επισυνάψτε το αντικείμενο σχεδίασης περιβάλλοντος σε σημειωματάρια ή ορισμούς εργασίας spark ή ορίστε το ως προεπιλεγμένο χώρο εργασίας
Για να επισυνάψετε το περιβάλλον σε ορισμούς εργασιών Notebooks ή Spark:
- Μεταβείτε στον συγκεκριμένο ορισμό εργασίας σημειωματάριου ή Spark στο Fabric.
- Επιλέξτε το μενού Περιβάλλον στην Αρχική καρτέλα και επιλέξτε το περιβάλλον με τις ρυθμισμένες ιδιότητες Spark διαγνωστικού ελέγχου.
- Η ρύθμιση παραμέτρων εφαρμόζεται κατά την έναρξη μιας περιόδου λειτουργίας Spark.
Για να ορίσετε το περιβάλλον ως προεπιλεγμένο χώρο εργασίας:
- Μεταβείτε στην περιοχή Ρυθμίσεις χώρου εργασίας στο Fabric.
- Βρείτε τις ρυθμίσεις Spark στις ρυθμίσεις χώρου εργασίας σας (Ρύθμιση χώρου εργασίας -> Μηχανική δεδομένων/Επιστήμη -> Ρυθμίσεις Spark).
- Επιλέξτε την καρτέλα Περιβάλλον και επιλέξτε το περιβάλλον με τις παραμέτρους των ιδιοτήτων spark διαγνωστικού ελέγχου και κάντε κλικ στο κουμπί Αποθήκευση.
Σημείωση
Μόνο οι διαχειριστές χώρου εργασίας μπορούν να διαχειρίζονται ρυθμίσεις παραμέτρων χώρου εργασίας. Οι αλλαγές που γίνονται εδώ θα ισχύουν για όλα τα σημειωματάρια και ορισμούς εργασίας Spark που συνδέονται στις ρυθμίσεις χώρου εργασίας. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Ρυθμίσεις χώρου εργασίας Fabric.
Βήμα 4: Προβολή των αρχείων καταγραφής στον λογαριασμό υπηρεσίας αποθήκευσης Azure
Μετά την υποβολή μιας εργασίας στην περίοδο λειτουργίας Spark που έχει ρυθμιστεί, μπορείτε να προβάλετε τα αρχεία καταγραφής και μετρικών στον λογαριασμό χώρου αποθήκευσης προορισμού. Τα αρχεία καταγραφής αποθηκεύονται σε αντίστοιχες διαδρομές με βάση διαφορετικές εφαρμογές, που προσδιορίζονται από το <workspaceId>.<fabricLivyId>
. Όλα τα αρχεία καταγραφής είναι σε μορφή γραμμών JSON (γνωστή και ως JSON ή ndjson οριοθετημένη με νέα γραμμή), η οποία είναι βολική για την επεξεργασία δεδομένων.
Διαθέσιμες ρυθμίσεις παραμέτρων
Ρύθμιση παραμέτρων | Περιγραφή |
---|---|
spark.synapse.diagnostic.emitters |
Υποχρεωτικό. Τα ονόματα προορισμού διαχωρισμένων με κόμματα των διαγνωστικών εκπομπών. Για παράδειγμα, MyDest1,MyDest2 |
spark.synapse.diagnostic.emitter.<destination>.type |
Απαιτείται. Ενσωματωμένος τύπος προορισμού. Για να ενεργοποιήσετε τον προορισμό υπηρεσίας αποθήκευσης Azure, AzureStorage πρέπει να συμπεριληφθεί σε αυτό το πεδίο. |
spark.synapse.diagnostic.emitter.<destination>.categories |
Προαιρετικό. Τις κατηγορίες αρχείων καταγραφής διαχωρισμένων με κόμματα. Οι διαθέσιμες τιμές περιλαμβάνουν DriverLog τα , ExecutorLog , EventLog , Metrics . Εάν δεν οριστεί, η προεπιλεγμένη τιμή είναι όλες οι κατηγορίες. |
spark.synapse.diagnostic.emitter.<destination>.auth |
Απαιτείται. AccessKey για τη χρήση εξουσιοδότησης κλειδιού πρόσβασης λογαριασμού χώρου αποθήκευσης. SAS για εξουσιοδότηση υπογραφών κοινόχρηστων πρόσβασης. |
spark.synapse.diagnostic.emitter.<destination>.uri |
Απαιτείται. Το uri κοντέινερ αντικειμένων blob προορισμού. Θα πρέπει να συμφωνεί με το μοτίβο https://<my-blob-storage>.blob.core.windows.net/<container-name>/<folder-name> . |
spark.synapse.diagnostic.emitter.<destination>.secret |
Προαιρετικό. Το μυστικό περιεχόμενο (AccessKey ή SAS). |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault |
Απαιτείται εάν .secret δεν έχει καθοριστεί. Το όνομα του Θαλάμου κλειδιών Azure όπου είναι αποθηκευμένος ο μυστικός κωδικός (AccessKey ή SAS). |
spark.synapse.diagnostic.emitter.<destination>.secret.keyVault.secretName |
Απαιτείται εάν .secret.keyVault έχει καθοριστεί το . Το όνομα μυστικού θαλάμου κλειδιών Azure όπου αποθηκεύεται ο μυστικός κωδικός (AccessKey ή SAS). |
spark.synapse.diagnostic.emitter.<destination>.filter.eventName.match |
Προαιρετικό. Τα ονόματα των συμβάντων spark διαχωρισμένων με κόμματα, μπορείτε να καθορίσετε ποια συμβάντα θα συλλέγονται. Για παράδειγμα: SparkListenerApplicationStart,SparkListenerApplicationEnd |
spark.synapse.diagnostic.emitter.<destination>.filter.loggerName.match |
Προαιρετικό. Τα ονόματα αρχείων καταγραφής Log4j διαχωρισμένων με κόμματα, μπορείτε να καθορίσετε ποια αρχεία καταγραφής θα συλλέγετε. Για παράδειγμα: org.apache.spark.SparkContext,org.example.Logger |
spark.synapse.diagnostic.emitter.<destination>.filter.metricName.match |
Προαιρετικό. Τα επιθήματα ονόματος μετρικού διαχωρισμένων με κόμματα, μπορείτε να καθορίσετε ποια μετρικά θα συλλέγονται. Για παράδειγμα: jvm.heap.used |
spark.fabric.pools.skipStarterPools |
Απαιτείται. Αυτή η ιδιότητα Spark χρησιμοποιείται για την επιβολή μιας περιόδου λειτουργίας Spark κατ' απαίτηση. Θα πρέπει να ορίσετε την τιμή σε True όταν χρησιμοποιείτε τον προεπιλεγμένο χώρο συγκέντρωσης, προκειμένου να ενεργοποιήσετε τις βιβλιοθήκες για την ενσωμάτωση αρχείων καταγραφής και μετρικών. |
Δείγμα καταγραφής δεδομένων
Ακολουθεί ένα δείγμα εγγραφής αρχείου καταγραφής σε μορφή JSON:
{
"timestamp": "2024-09-06T03:09:37.235Z",
"category": "Log|EventLog|Metrics",
"fabricLivyId": "<fabric-livy-id>",
"applicationId": "<application-id>",
"applicationName": "<application-name>",
"executorId": "<driver-or-executor-id>",
"fabricTenantId": "<my-fabric-tenant-id>",
"capacityId": "<my-fabric-capacity-id>",
"artifactType": "SynapseNotebook|SparkJobDefinition",
"artifactId": "<my-fabric-artifact-id>",
"fabricWorkspaceId": "<my-fabric-workspace-id>",
"fabricEnvId": "<my-fabric-environment-id>",
"executorMin": "<executor-min>",
"executorMax": "<executor-max>",
"isHighConcurrencyEnabled": "true|false",
"properties": {
// The message properties of logs, events and metrics.
"timestamp": "2024-09-06T03:09:37.235Z",
"message": "Initialized BlockManager: BlockManagerId(1, vm-04b22223, 34319, None)",
"logger_name": "org.apache.spark.storage.BlockManager",
"level": "INFO",
"thread_name": "dispatcher-Executor"
//...
}
}
Χώροι εργασίας Fabric με Διαχειριζόμενο εικονικό δίκτυο
Δημιουργήστε ένα διαχειριζόμενο ιδιωτικό τελικό σημείο για τον χώρο αποθήκευσης αντικειμένων blob Azure προορισμού. Για λεπτομερείς οδηγίες, ανατρέξτε στο θέμα Δημιουργία και χρήση διαχειριζόμενων ιδιωτικών τελικών σημείων στο Microsoft Fabric - Microsoft Fabric.
Όταν εγκριθεί το διαχειριζόμενο ιδιωτικό τελικό σημείο, οι χρήστες μπορούν να ξεκινήσουν την εκπομπή αρχείων καταγραφής και μετρικών στον χώρο αποθήκευσης αντικειμένων Blob Azure προορισμού.