Παρακολούθηση εφαρμογών Apache Spark με την ανάλυση αρχείων καταγραφής Azure (προεπισκόπηση)
Η επέκταση διαγνωστικού πομπού Fabric Apache Spark είναι μια βιβλιοθήκη που επιτρέπει στις εφαρμογές Apache Spark να εκπέμπουν αρχεία καταγραφής, αρχεία καταγραφής συμβάντων και μετρικά σε πολλούς προορισμούς, όπως ανάλυση αρχείων καταγραφής Azure, χώρο αποθήκευσης Azure και κέντρα συμβάντων Azure.
Σε αυτή την εκμάθηση, θα μάθετε πώς μπορείτε να ρυθμίσετε και να εκπέμετε αρχεία καταγραφής και μετρικά Spark στο Log analytics στο Fabric. Αφού ρυθμιστούν οι παράμετροι, μπορείτε να συλλέξετε και να αναλύσετε μετρικά εφαρμογής Apache Spark και αρχεία καταγραφής στον χώρο εργασίας σας ανάλυσης αρχείων καταγραφής.
Ρύθμιση παραμέτρων πληροφοριών χώρου εργασίας
Ακολουθήστε αυτά τα βήματα για να ρυθμίσετε τις παραμέτρους των απαραίτητων πληροφοριών στο Fabric.
Βήμα 1: Δημιουργία χώρου εργασίας log Analytics
Συμβουλευτείτε έναν από τους παρακάτω πόρους για να δημιουργήσετε αυτόν τον χώρο εργασίας:
- Δημιουργήστε έναν χώρο εργασίας στην πύλη Azure.
- Δημιουργήστε έναν χώρο εργασίας με το Azure CLI.
- Δημιουργήστε και ρυθμίστε τις παραμέτρους ενός χώρου εργασίας στο Azure Monitor χρησιμοποιώντας το PowerShell.
Βήμα 2: Δημιουργία ενός τεχνουργήματος περιβάλλοντος Fabric με ρύθμιση παραμέτρων Apache Spark
Για να ρυθμίσετε τις παραμέτρους του Spark, δημιουργήστε ένα Αντικείμενο σχεδίασης περιβάλλοντος Fabric και κάντε μία από τις ακόλουθες επιλογές:
Επιλογή 1: Ρύθμιση παραμέτρων με το αναγνωριστικό και το κλειδί χώρου εργασίας του Log Analytics
Δημιουργία ενός αντικειμένου σχεδίασης περιβάλλοντος Fabric στο Fabric
Προσθέστε τις ακόλουθες ιδιότητες Spark με τις κατάλληλες τιμές στο αντικείμενο σχεδίασης περιβάλλοντος ή επιλέξτε Προσθήκη από .yml στην κορδέλα για να κάνετε λήψη του δείγματος αρχείου yaml, το οποίο περιέχει ήδη τις απαιτούμενες ιδιότητες.
<LOG_ANALYTICS_WORKSPACE_ID>
: Αναγνωριστικό χώρου εργασίας του Log Analytics.<LOG_ANALYTICS_WORKSPACE_KEY>
: Κλειδί log Analytics. Για να το βρείτε αυτό, στην πύλη Azure, μεταβείτε στο Πρωτεύον κλειδί παραγόντων>χώρου>εργασίας του Azure Log Analytics.
spark.synapse.diagnostic.emitters: LA spark.synapse.diagnostic.emitter.LA.type: "AzureLogAnalytics" spark.synapse.diagnostic.emitter.LA.categories: "Log,EventLog,Metrics" spark.synapse.diagnostic.emitter.LA.workspaceId: <LOG_ANALYTICS_WORKSPACE_ID> spark.synapse.diagnostic.emitter.LA.secret: <LOG_ANALYTICS_WORKSPACE_KEY> spark.fabric.pools.skipStarterPools: "true" //Add this Spark property when using the default pool.
Εναλλακτικά, για να εφαρμόσετε την ίδια ρύθμιση παραμέτρων με το Azure Synapse, χρησιμοποιήστε τις ακόλουθες ιδιότητες ή επιλέξτε Προσθήκη από .yml στην κορδέλα για να κάνετε λήψη του δείγματος αρχείου yaml.
spark.synapse.logAnalytics.enabled: "true" spark.synapse.logAnalytics.workspaceId: <LOG_ANALYTICS_WORKSPACE_ID> spark.synapse.logAnalytics.secret: <LOG_ANALYTICS_WORKSPACE_KEY> spark.fabric.pools.skipStarterPools: "true" //Add this Spark property when using the default pool.
Αποθηκεύστε και δημοσιεύστε τις αλλαγές.
Επιλογή 2: Ρύθμιση παραμέτρων με το Azure Key Vault
Σημείωση
Γνωστό ζήτημα: Δεν είναι δυνατή η έναρξη μιας περιόδου λειτουργίας χρησιμοποιώντας την Επιλογή 2 προσωρινά. Προς το παρόν, η αποθήκευση μυστικών στο Key Vault αποτρέπει την έναρξη περιόδων λειτουργίας Spark. Δώστε προτεραιότητα στη ρύθμιση παραμέτρων χρησιμοποιώντας τη μέθοδο που περιγράφεται στην Επιλογή 1.
Πρέπει να εκχωρήσετε δικαιώματα ανάγνωσης μυστικού κωδικού στους χρήστες που θα υποβάλουν εφαρμογές Apache Spark. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Παροχή πρόσβασης σε κλειδιά Key Vault, πιστοποιητικά και μυστικούς κωδικούς με έναν έλεγχο πρόσβασης βάσει ρόλων Azure.
Για να ρυθμίσετε τις παραμέτρους του Azure Key Vault για να αποθηκεύσετε το κλειδί χώρου εργασίας, ακολουθήστε τα εξής βήματα:
Μεταβείτε στο Key Vault στην πύλη Azure.
Στη σελίδα ρυθμίσεων για τον θάλαμο κλειδιών, επιλέξτε Μυστικά και, στη συνέχεια , Δημιουργία/Εισαγωγή.
Στην οθόνη Δημιουργία μυστικού κωδικού, εισαγάγετε τις ακόλουθες τιμές:
- Όνομα: Εισαγάγετε ένα όνομα για τον μυστικό κωδικό. Για την προεπιλογή, πληκτρολογήστε
SparkLogAnalyticsSecret
. - Τιμή: Εισαγάγετε το
<LOG_ANALYTICS_WORKSPACE_KEY>
για τον μυστικό κωδικό. - Αφήστε τις άλλες τιμές στις προεπιλογές τους. Μετά επιλέξτε Δημιουργία.
- Όνομα: Εισαγάγετε ένα όνομα για τον μυστικό κωδικό. Για την προεπιλογή, πληκτρολογήστε
Δημιουργία ενός αντικειμένου σχεδίασης περιβάλλοντος Fabric στο Fabric
Προσθέστε τις ακόλουθες ιδιότητες Spark με τις αντίστοιχες τιμές στο αντικείμενο σχεδίασης περιβάλλοντος ή Επιλέξτε Προσθήκη από .yml στην κορδέλα στο αντικείμενο σχεδίασης περιβάλλοντος για να κάνετε λήψη του δείγματος αρχείου yaml που περιλαμβάνει τις ακόλουθες ιδιότητες Spark.
<LOG_ANALYTICS_WORKSPACE_ID>
: Το αναγνωριστικό χώρου εργασίας του Log Analytics.<AZURE_KEY_VAULT_NAME>
: Το όνομα του θαλάμου κλειδιών που ρυθμίσατε.<AZURE_KEY_VAULT_SECRET_KEY_NAME>
(προαιρετικό): Το όνομα του μυστικού κωδικού στον θάλαμο κλειδιών για το κλειδί του χώρου εργασίας. Η προεπιλογή είναιSparkLogAnalyticsSecret
.
// Spark properties for LA spark.synapse.diagnostic.emitters LA spark.synapse.diagnostic.emitter.LA.type: "AzureLogAnalytics" spark.synapse.diagnostic.emitter.LA.categories: "Log,EventLog,Metrics" spark.synapse.diagnostic.emitter.LA.workspaceId: <LOG_ANALYTICS_WORKSPACE_ID> spark.synapse.diagnostic.emitter.LA.secret.keyVault: <AZURE_KEY_VAULT_NAME> spark.synapse.diagnostic.emitter.LA.secret.keyVault.secretName: <AZURE_KEY_VAULT_SECRET_KEY_NAME> spark.fabric.pools.skipStarterPools: "true" //Add this Spark property when using the default pool.
Εναλλακτικά, για να εφαρμόσετε την ίδια ρύθμιση παραμέτρων με το Azure Synapse, χρησιμοποιήστε τις ακόλουθες ιδιότητες ή επιλέξτε Προσθήκη από .yml στην κορδέλα για να κάνετε λήψη του δείγματος αρχείου yaml.
spark.synapse.logAnalytics.enabled: "true" spark.synapse.logAnalytics.workspaceId: <LOG_ANALYTICS_WORKSPACE_ID> spark.synapse.logAnalytics.keyVault.name: <AZURE_KEY_VAULT_NAME> spark.synapse.logAnalytics.keyVault.key.secret: <AZURE_KEY_VAULT_SECRET_KEY_NAME> spark.fabric.pools.skipStarterPools: "true" //Add this Spark property when using the default pool.
Σημείωση
Μπορείτε επίσης να αποθηκεύσετε το αναγνωριστικό χώρου εργασίας στο Key Vault. Ορίστε το μυστικό όνομα σε
SparkLogAnalyticsWorkspaceId
ή χρησιμοποιήστε τη ρύθμιση παραμέτρωνspark.synapse.logAnalytics.keyVault.key.workspaceId
για να καθορίσετε το μυστικό όνομα του αναγνωριστικού χώρου εργασίας.Για μια λίστα ρυθμίσεων παραμέτρων Apache Spark, ανατρέξτε στο θέμα Διαθέσιμες ρυθμίσεις παραμέτρων Apache Spark
Αποθηκεύστε και δημοσιεύστε τις αλλαγές.
Βήμα 3: Επισυνάψτε το αντικείμενο σχεδίασης περιβάλλοντος σε σημειωματάρια ή ορισμούς εργασίας spark ή ορίστε το ως προεπιλεγμένο χώρο εργασίας
Για να επισυνάψετε το περιβάλλον σε σημειωματάρια ή ορισμούς εργασίας Spark:
- Μεταβείτε στον ορισμό εργασίας σημειωματάριου ή Spark στο Fabric.
- Επιλέξτε το μενού Περιβάλλον στην Αρχική καρτέλα και επιλέξτε το διαμορφωμένο περιβάλλον.
- Η ρύθμιση παραμέτρων θα εφαρμοστεί μετά την έναρξη μιας περιόδου λειτουργίας Spark.
Για να ορίσετε το περιβάλλον ως προεπιλεγμένο χώρο εργασίας:
- Μεταβείτε στην περιοχή Ρυθμίσεις χώρου εργασίας στο Fabric.
- Εύρεση των ρυθμίσεων Spark στις ρυθμίσεις χώρου εργασίας σας (Ρύθμιση χώρου εργασίας -> Μηχανική δεδομένων/Επιστήμη -> Ρυθμίσεις Spark)
- Επιλέξτε την καρτέλα Περιβάλλον και επιλέξτε το περιβάλλον με τις παραμέτρους των ιδιοτήτων spark διαγνωστικού ελέγχου και κάντε κλικ στο κουμπί Αποθήκευση.
Σημείωση
Μόνο οι διαχειριστές χώρου εργασίας μπορούν να διαχειρίζονται ρυθμίσεις παραμέτρων. Οι τιμές θα εφαρμοστούν σε σημειωματάρια και ορισμούς εργασίας Spark που επισυνάπτονται στις Ρυθμίσεις χώρου εργασίας. Για περισσότερες λεπτομέρειες, ανατρέξτε στο θέμα Ρυθμίσεις χώρου εργασίας Fabric.
Υποβάλετε μια εφαρμογή Apache Spark και προβάλετε τα αρχεία καταγραφής και τα μετρικά
Για να υποβάλετε μια εφαρμογή Apache Spark:
Υποβάλετε μια εφαρμογή Apache Spark, με το συσχετισμένο περιβάλλον, το οποίο έχει ρυθμιστεί στο προηγούμενο βήμα. Μπορείτε να χρησιμοποιήσετε οποιονδήποτε από τους παρακάτω τρόπους για να το κάνετε:
- Εκτελέστε ένα σημειωματάριο στο Fabric.
- Υποβάλετε μια μαζική εργασία Apache Spark μέσω ενός ορισμού εργασίας Apache Spark.
- Εκτελέστε τις δραστηριότητές σας Spark στις Διοχετεύσεις σας.
Μεταβείτε στον καθορισμένο χώρο εργασίας Του Log Analytics και προβάλετε τα μετρικά και τα αρχεία καταγραφής της εφαρμογής όταν ξεκινήσει η εκτέλεση της εφαρμογής Apache Spark.
Εγγραφή αρχείων καταγραφής προσαρμοσμένων εφαρμογών
Μπορείτε να χρησιμοποιήσετε τη βιβλιοθήκη Apache Log4j για να συντάξετε προσαρμοσμένα αρχεία καταγραφής. Ακολουθούν παραδείγματα για τη Scala και το PySpark:
Παράδειγμα Scala:
%%spark
val logger = org.apache.log4j.LogManager.getLogger("com.contoso.LoggerExample")
logger.info("info message")
logger.warn("warn message")
logger.error("error message")
//log exception
try {
1/0
} catch {
case e:Exception =>logger.warn("Exception", e)
}
// run job for task level metrics
val data = sc.parallelize(Seq(1,2,3,4)).toDF().count()
Παράδειγμα PySpark:
%%pyspark
logger = sc._jvm.org.apache.log4j.LogManager.getLogger("com.contoso.PythonLoggerExample")
logger.info("info message")
logger.warn("warn message")
logger.error("error message")
Υποβολή ερωτημάτων για δεδομένα με το Kusto
Για να υποβάλετε ερωτήματα σε συμβάντα Apache Spark:
SparkListenerEvent_CL
| where fabricWorkspaceId_g == "{FabricWorkspaceId}" and artifactId_g == "{ArtifactId}" and fabricLivyId_g == "{LivyId}"
| order by TimeGenerated desc
| limit 100
Για να υποβάλετε ερωτήματα για το πρόγραμμα οδήγησης εφαρμογής Spark και τα αρχεία καταγραφής εκτελέσεων:
SparkLoggingEvent_CL
| where fabricWorkspaceId_g == "{FabricWorkspaceId}" and artifactId_g == "{ArtifactId}" and fabricLivyId_g == "{LivyId}"
| order by TimeGenerated desc
| limit 100
Για να υποβάλετε ερωτήματα για μετρικά Apache Spark:
SparkMetrics_CL
| where fabricWorkspaceId_g == "{FabricWorkspaceId}" and artifactId_g == "{ArtifactId}" and fabricLivyId_g == "{LivyId}"
| where name_s endswith "jvm.total.used"
| summarize max(value_d) by bin(TimeGenerated, 30s), executorId_s
| order by TimeGenerated asc
Όρια δεδομένων
Το Fabric αποστέλλει δεδομένα καταγραφής στο Azure Monitor χρησιμοποιώντας το API HTTP Data Collector. Τα δεδομένα που δημοσιεύονται στο API συλλογής δεδομένων της Παρακολούθησης Azure υπόκεινται σε ορισμένους περιορισμούς:
- Έως 30 MB ανά δημοσίευση στο API Azure Monitor Data Collector. Αυτό είναι ένα όριο μεγέθους για μία μόνο δημοσίευση. Εάν τα δεδομένα από μία μεμονωμένη δημοσίευση υπερβαίνουν τα 30 MB, θα πρέπει να διαιρέσετε τα δεδομένα σε τμήματα μικρότερου μεγέθους και να τα στείλετε ταυτόχρονα.
- Μέγιστο 32 KB για τιμές πεδίου. Εάν η τιμή του πεδίου είναι μεγαλύτερη από 32 KB, τα δεδομένα περικόπτονται.
- Συνιστάται έως 50 πεδία για έναν δεδομένο τύπο. Αυτό είναι ένα πρακτικό όριο από την άποψη της χρηστικότητας και της εμπειρίας αναζήτησης.
- Οι πίνακες στους χώρους εργασίας του Log Analytics υποστηρίζουν μόνο έως 500 στήλες.
- Έως 45 χαρακτήρες για τα ονόματα στηλών.
Δημιουργία και διαχείριση ειδοποιήσεων
Οι χρήστες μπορούν να υποβάλλουν ερώτημα για να αξιολογήσουν τα μετρικά και τα αρχεία καταγραφής σε μια καθορισμένη συχνότητα και να ενεργοποιήσουν μια ειδοποίηση με βάση τα αποτελέσματα. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Δημιουργία, προβολή και διαχείριση ειδοποιήσεων αρχείου καταγραφής με χρήση του Azure Monitor.
Χώροι εργασίας Fabric με διαχειριζόμενο εικονικό δίκτυο
Το Azure Log Analytics δεν μπορεί προς το παρόν να επιλεγεί ως προορισμός για αρχεία καταγραφής Spark και εκπομπές μετρικών σε ένα διαχειριζόμενο εικονικό δίκτυο, επειδή το διαχειριζόμενο ιδιωτικό τελικό σημείο δεν υποστηρίζει το Log Analytics ως προέλευση δεδομένων.