Για να βελτιωθεί η αποτελεσματικότητα μιας εφαρμογής Spark, είναι απαραίτητο να παρακολουθείτε την απόδοση και τη συμπεριφορά της. Σε αυτήν την ανάρτηση, δείχνουμε πώς μπορείτε να δημοσιεύσετε λεπτομερείς μετρήσεις Spark από EMR Αμαζονίου προς την amazoncloudwatch. Αυτό θα σας δώσει τη δυνατότητα να εντοπίζετε τα σημεία συμφόρησης βελτιστοποιώντας παράλληλα τη χρήση των πόρων.
Το CloudWatch παρέχει μια ισχυρή, επεκτάσιμη και οικονομικά αποδοτική λύση παρακολούθησης για πόρους και εφαρμογές AWS, με ισχυρές επιλογές προσαρμογής και απρόσκοπτη ενσωμάτωση με άλλες υπηρεσίες AWS. Από προεπιλογή, το Amazon EMR στέλνει βασικές μετρήσεις στο CloudWatch για να παρακολουθείτε τη δραστηριότητα και την υγεία ενός συμπλέγματος. Το διαμορφώσιμο σύστημα μετρήσεων του Spark επιτρέπει τη συλλογή μετρήσεων σε μια ποικιλία καταβόθρων, συμπεριλαμβανομένων των αρχείων HTTP, JMX και CSV, αλλά απαιτείται πρόσθετη διαμόρφωση για να επιτραπεί στο Spark να δημοσιεύει μετρήσεις στο CloudWatch.
Επισκόπηση λύσεων
Αυτή η λύση περιλαμβάνει διαμόρφωση Spark για αποστολή μετρήσεων σε προσαρμοσμένο νεροχύτη. Το προσαρμοσμένο νεροχύτη συλλέγει μόνο τις μετρήσεις που ορίζονται σε ένα αρχείο Metricfilter.json. Χρησιμοποιεί τον παράγοντα CloudWatch για να δημοσιεύσει τις μετρήσεις σε έναν προσαρμοσμένο χώρο ονομάτων Cloudwatch. Το σενάριο ενεργειών bootstrap που περιλαμβάνεται είναι υπεύθυνο για την εγκατάσταση και τη διαμόρφωση του παράγοντα CloudWatch και της βιβλιοθήκης μετρήσεων στο Amazon Elastic Compute Cloud (Amazon EC2) Περιστατικά EMR. Ένας πίνακας εργαλείων CloudWatch μπορεί να παρέχει άμεσες πληροφορίες για την απόδοση μιας εφαρμογής.
Το παρακάτω διάγραμμα απεικονίζει την αρχιτεκτονική λύση και τη ροή εργασίας.
Η ροή εργασίας περιλαμβάνει τα ακόλουθα βήματα:
- Οι χρήστες ξεκινούν μια εργασία Spark EMR, δημιουργώντας ένα βήμα στο σύμπλεγμα EMR. Με το Apache Spark, ο φόρτος εργασίας κατανέμεται στους διαφορετικούς κόμβους του συμπλέγματος EMR.
- Σε κάθε κόμβο (περίπτωση EC2) του συμπλέγματος, μια βιβλιοθήκη Spark συλλαμβάνει και ωθεί μετρικά δεδομένα σε έναν πράκτορα CloudWatch, ο οποίος συγκεντρώνει τα μετρικά δεδομένα πριν τα προωθήσει στο CloudWatch κάθε 30 δευτερόλεπτα.
- Οι χρήστες μπορούν να δουν τις μετρήσεις που έχουν πρόσβαση στον προσαρμοσμένο χώρο ονομάτων στην κονσόλα CloudWatch.
Παρέχουμε ένα AWS CloudFormation πρότυπο σε αυτήν την ανάρτηση ως γενικό οδηγό. Το πρότυπο δείχνει πώς να διαμορφώσετε έναν πράκτορα CloudWatch στο Amazon EMR για να προωθήσει τις μετρήσεις Spark στο CloudWatch. Μπορείτε να το ελέγξετε και να το προσαρμόσετε όπως απαιτείται για να συμπεριλάβετε τις διαμορφώσεις ασφαλείας του Amazon EMR. Ως βέλτιστη πρακτική, συνιστούμε να συμπεριλάβετε τις διαμορφώσεις ασφαλείας του Amazon EMR στο πρότυπο για κρυπτογράφηση δεδομένων κατά τη μεταφορά.
Θα πρέπει επίσης να γνωρίζετε ότι ορισμένοι από τους πόρους που αναπτύσσονται από αυτήν τη στοίβα συνεπάγονται κόστος όταν παραμένουν σε χρήση. Επιπροσθέτως, Μετρήσεις EMR μην επιβαρύνεστε με κόστος CloudWatch. Ωστόσο, οι προσαρμοσμένες μετρήσεις επιφέρουν χρεώσεις με βάση την τιμολόγηση των μετρήσεων του CloudWatch. Για περισσότερες πληροφορίες, βλ Τιμολόγηση Amazon CloudWatch.
Στις επόμενες ενότητες, ακολουθούμε τα ακόλουθα βήματα:
- Δημιουργήστε και ανεβάστε τη βιβλιοθήκη μετρήσεων, το σενάριο εγκατάστασης και τον ορισμό του φίλτρου σε ένα Απλή υπηρεσία αποθήκευσης Amazon (Amazon S3) κάδος.
- Χρησιμοποιήστε το πρότυπο CloudFormation για να δημιουργήσετε τους ακόλουθους πόρους:
- Παρακολουθήστε τις μετρήσεις Spark στην κονσόλα CloudWatch.
Προϋποθέσεις
Αυτή η ανάρτηση προϋποθέτει ότι έχετε τα εξής:
- An Λογαριασμός AWS.
- Ένας κάδος S3 για την αποθήκευση του ορισμού του σεναρίου εκκίνησης, της βιβλιοθήκης και του μετρικού φίλτρου.
- Ένα VPC που δημιουργήθηκε στο Εικονικό ιδιωτικό σύννεφο Amazon (Amazon VPC), όπου θα κυκλοφορήσει το σύμπλεγμα EMR σας.
- Προεπιλεγμένοι ρόλοι υπηρεσίας IAM για δικαιώματα Amazon EMR σε υπηρεσίες και πόρους AWS. Μπορείτε να δημιουργήσετε αυτούς τους ρόλους με την εντολή aws emr create-default-roles στο Διεπαφή γραμμής εντολών AWS (AWS CLI).
- Ένα προαιρετικό ζεύγος κλειδιών EC2, εάν σκοπεύετε να συνδεθείτε στο σύμπλεγμα σας μέσω SSH και όχι Session Manager, μια ικανότητα του Διευθυντής συστημάτων AWS.
Καθορίστε τις απαιτούμενες μετρήσεις
Για να αποφύγετε την αποστολή περιττών δεδομένων στο CloudWatch, η λύση μας εφαρμόζει ένα μετρικό φίλτρο. Αναθεωρήστε το Τεκμηρίωση Spark για να εξοικειωθείτε με τους χώρους ονομάτων και τις σχετικές μετρήσεις τους. Προσδιορίστε ποιες μετρήσεις σχετίζονται με τη συγκεκριμένη εφαρμογή και τους στόχους απόδοσης. Διαφορετικές εφαρμογές ενδέχεται να απαιτούν διαφορετικές μετρήσεις για την παρακολούθηση, ανάλογα με τον φόρτο εργασίας, τις απαιτήσεις επεξεργασίας δεδομένων και τους στόχους βελτιστοποίησης. Τα ονόματα μετρήσεων που θέλετε να παρακολουθείτε θα πρέπει να ορίζονται στο αρχείο Metricfilter.json, μαζί με τους συσχετισμένους χώρους ονομάτων τους.
Έχουμε δημιουργήσει ένα παράδειγμα ορισμού Metricfilter.json, ο οποίος περιλαμβάνει τη λήψη μετρήσεων που σχετίζονται με δεδομένα εισόδου/εξόδου, συλλογή σκουπιδιών, μνήμη και πίεση CPU και μετρήσεις εργασίας, σταδίου και εργασιών Spark.
Λάβετε υπόψη ότι ορισμένες μετρήσεις δεν είναι διαθέσιμες σε όλες τις εκδόσεις κυκλοφορίας του Spark (για παράδειγμα, το appStatus παρουσιάστηκε στο Spark 3.0).
Δημιουργήστε και ανεβάστε τα απαιτούμενα αρχεία σε έναν κάδο S3
Για περισσότερες πληροφορίες, δείτε Μεταφόρτωση αντικειμένων και Εγκατάσταση και εκτέλεση του παράγοντα CloudWatch στους διακομιστές σας.
Για να δημιουργήσετε και να ανεβάσετε το σενάριο bootstrap, ολοκληρώστε τα παρακάτω βήματα:
- Στην κονσόλα Amazon S3, επιλέξτε τον κάδο S3.
- Στις Αντικείμενα καρτέλα, επιλέξτε Μεταφόρτωση.
- Επιλέξτε Προσθήκη αρχείων, στη συνέχεια επιλέξτε το Metricfilter.json, εγκαταστάτης.sh, να examplejob.sh αρχεία.
- Επιπλέον, ανεβάστε το
emr-custom-cw-sink-0.0.1.jar
αρχείο βιβλιοθήκης μετρήσεων που αντιστοιχεί στην έκδοση έκδοσης Amazon EMR που θα χρησιμοποιήσετε: - Επιλέξτε Μεταφόρτωση, και λάβετε υπόψη τα URI S3 για τα αρχεία.
Παροχή πόρων με το πρότυπο CloudFormation
Επιλέξτε Εκκίνηση στοίβας για να εκκινήσετε μια στοίβα CloudFormation στον λογαριασμό σας και να αναπτύξετε το πρότυπο:
Αυτό το πρότυπο δημιουργεί έναν ρόλο IAM, ένα προφίλ παρουσίας IAM, ένα σύμπλεγμα EMR και έναν πίνακα εργαλείων CloudWatch. Το σύμπλεγμα ξεκινά ένα βασικό Παράδειγμα εφαρμογής Spark. Θα χρεωθείτε για τους πόρους AWS που χρησιμοποιούνται εάν δημιουργήσετε μια στοίβα από αυτό το πρότυπο.
Ο οδηγός CloudFormation θα σας ζητήσει να τροποποιήσετε ή να παρέχετε αυτές τις παραμέτρους:
- Τύπος Instance - Η τύπος περίπτωσης για όλες τις ομάδες παραδείγματος. Η προεπιλογή είναι m5.2xlarge.
- InstanceCountCore – Ο αριθμός των περιπτώσεων στην ομάδα βασικών περιπτώσεων. Η προεπιλογή είναι 4.
- EMRReleaseLabel - Η Ετικέτα κυκλοφορίας Amazon EMR θέλετε να χρησιμοποιήσετε. Η προεπιλογή είναι emr-6.9.0.
- BootstrapScriptPath – Η διαδρομή S3 του σεναρίου εκκίνησης εγκατάστασης installer.sh που αντιγράψατε νωρίτερα.
- MetricFilterPath – Η διαδρομή S3 του ορισμού Metricfilter.json που αντιγράψατε νωρίτερα.
- MetricsLibraryPath – Η διαδρομή S3 της βιβλιοθήκης CloudWatch emr-custom-cw-sink-0.0.1.jar που αντιγράψατε νωρίτερα.
- CloudWatchNamespace – Το όνομα του προσαρμοσμένου χώρου ονομάτων CloudWatch που θα χρησιμοποιηθεί.
- SparkDemoApplicationPath – Η διαδρομή S3 του σεναρίου examplejob.sh που αντιγράψατε νωρίτερα.
- Υποδίκτυο – Το υποδίκτυο EC2 όπου ξεκινά το σύμπλεγμα. Πρέπει να παρέχετε αυτήν την παράμετρο.
- EC2KeyPairName – Ένα προαιρετικό ζεύγος κλειδιών EC2 για σύνδεση με κόμβους συμπλέγματος, ως εναλλακτική λύση στο Session Manager.
Δείτε τις μετρήσεις
Μετά την επιτυχή ανάπτυξη της στοίβας CloudFormation, η εργασία του παραδείγματος ξεκινά αυτόματα και διαρκεί περίπου 15 λεπτά για να ολοκληρωθεί. Στην κονσόλα CloudWatch, επιλέξτε Dashboards στο παράθυρο πλοήγησης. Στη συνέχεια, φιλτράρετε τη λίστα με το πρόθεμα SparkMonitoring.
Το παράδειγμα πίνακα εργαλείων περιλαμβάνει πληροφορίες για το σύμπλεγμα και μια επισκόπηση των εργασιών, των σταδίων και των εργασιών Spark. Οι μετρήσεις είναι επίσης διαθέσιμες σε έναν προσαρμοσμένο χώρο ονομάτων ξεκινώντας από EMRCustomSparkCloudWatchSink
.
Περιλαμβάνονται επίσης μετρήσεις μνήμης, CPU, I/O και πρόσθετης κατανομής εργασιών.
Τέλος, αναλυτικές μετρήσεις συλλογής σκουπιδιών Java είναι διαθέσιμες ανά εκτελεστή.
εκκαθάριση
Για να αποφύγετε μελλοντικές χρεώσεις στον λογαριασμό σας, διαγράψτε τους πόρους που δημιουργήσατε σε αυτήν την αναλυτική περιγραφή. Το σύμπλεγμα EMR θα έχει χρεώσεις για όσο διάστημα το σύμπλεγμα είναι ενεργό, οπότε σταματήστε το όταν τελειώσετε. Ολοκληρώστε τα παρακάτω βήματα:
- Στην κονσόλα CloudFormation, στο παράθυρο πλοήγησης, επιλέξτε Στοίβες.
- Επιλέξτε τη στοίβα που ξεκινήσατε (
EMR-CloudWatch-Demo
), Στη συνέχεια, επιλέξτε Διαγραφή. - Αδειάστε τον κάδο S3 δημιουργήσατε.
- Διαγράψτε τον κάδο S3 δημιουργήσατε.
Συμπέρασμα
Τώρα που ολοκληρώσατε τα βήματα σε αυτήν την αναλυτική περιγραφή, ο παράγοντας CloudWatch εκτελείται στους κεντρικούς υπολογιστές του συμπλέγματος και έχει διαμορφωθεί ώστε να ωθεί τις μετρήσεις Spark στο CloudWatch. Με αυτήν τη δυνατότητα, μπορείτε να παρακολουθείτε αποτελεσματικά την υγεία και την απόδοση των εργασιών Spark που εκτελούνται στο Amazon EMR, εντοπίζοντας κρίσιμα ζητήματα σε πραγματικό χρόνο και εντοπίζοντας γρήγορα τις βασικές αιτίες.
Μπορείτε να συσκευάσετε και να αναπτύξετε αυτήν τη λύση μέσω ενός προτύπου CloudFormation όπως αυτό το παράδειγμα προτύπου, το οποίο δημιουργεί τον ρόλο προφίλ παρουσίας IAM, τον πίνακα εργαλείων CloudWatch και το σύμπλεγμα EMR. Ο πηγαίος κώδικας για τη βιβλιοθήκη είναι διαθέσιμος στο GitHub για προσαρμογή.
Για να το προχωρήσετε περαιτέρω, σκεφτείτε να χρησιμοποιήσετε αυτές τις μετρήσεις στους συναγερμούς CloudWatch. Θα μπορούσατε να τα συλλέξετε με άλλους συναγερμούς σε α σύνθετος συναγερμός ή να διαμορφώσετε ενέργειες συναγερμού, όπως η αποστολή Υπηρεσία απλών ειδοποιήσεων Amazon (Amazon SNS) ειδοποιήσεις για την ενεργοποίηση διεργασιών που βασίζονται σε συμβάντα, όπως π.χ AWS Lambda λειτουργίες.
Σχετικά με το Συγγραφέας
Le Clue Lubbe είναι Κύριος Μηχανικός στην AWS. Συνεργάζεται με τους μεγαλύτερους εταιρικούς πελάτες μας για να λύσει μερικά από τα πιο περίπλοκα τεχνικά τους προβλήματα. Οδηγεί ευρείες λύσεις μέσω της καινοτομίας για να επηρεάσει και να βελτιώσει τη ζωή των πελατών μας.
- SEO Powered Content & PR Distribution. Ενισχύστε σήμερα.
- PlatoData.Network Vertical Generative Ai. Ενδυναμώστε τον εαυτό σας. Πρόσβαση εδώ.
- PlatoAiStream. Web3 Intelligence. Ενισχύθηκε η γνώση. Πρόσβαση εδώ.
- PlatoESG. Αυτοκίνητο / EVs, Ανθρακας, Cleantech, Ενέργεια, Περιβάλλον, Ηλιακός, Διαχείριση των αποβλήτων. Πρόσβαση εδώ.
- PlatoHealth. Ευφυΐα βιοτεχνολογίας και κλινικών δοκιμών. Πρόσβαση εδώ.
- ChartPrime. Ανεβάστε το Trading Game σας με το ChartPrime. Πρόσβαση εδώ.
- BlockOffsets. Εκσυγχρονισμός της περιβαλλοντικής αντιστάθμισης ιδιοκτησίας. Πρόσβαση εδώ.
- πηγή: https://aws.amazon.com/blogs/big-data/monitor-apache-spark-applications-on-amazon-emr-with-amazon-cloudwatch/
- :είναι
- :δεν
- :που
- 1
- 100
- 107
- 15%
- 20
- 30
- 9
- a
- ικανότητα
- πρόσβαση
- Λογαριασμός
- γνωστός
- απέναντι
- Ενέργειες
- ενεργειών
- ενεργός
- δραστηριότητα
- Πρόσθετος
- Επιπλέον
- Πράκτορας
- τρομάζω
- Όλα
- επιτρέπει
- κατά μήκος
- Επίσης
- εναλλακτική λύση
- Amazon
- Amazon EC2
- EMR Αμαζονίου
- Amazon υπηρεσίες Web
- an
- και
- Apache
- Apache Spark
- Εφαρμογή
- εφαρμογές
- περίπου
- αρχιτεκτονική
- αρχιτεκτονική
- ΕΙΝΑΙ
- AS
- συσχετισμένη
- υποθέτει
- At
- συγγραφέας
- αυτομάτως
- διαθέσιμος
- αποφύγετε
- επίγνωση
- AWS
- βασίζονται
- βασικός
- BE
- πριν
- ΚΑΛΎΤΕΡΟΣ
- Bootstrap
- ευρύς
- αλλά
- by
- CAN
- ικανότητα
- συλλαμβάνει
- Καταγραφή
- αίτια
- ορισμένες
- φορτία
- Επιλέξτε
- συστάδα
- κωδικός
- συλλέγουν
- συλλογή
- συλλέγει
- πλήρης
- Ολοκληρώθηκε το
- συγκρότημα
- Υπολογίστε
- διαμόρφωση
- έχει ρυθμιστεί
- Connect
- Συνδετικός
- Εξετάστε
- πρόξενος
- πυρήνας
- αντιστοιχεί
- αποδοτική
- Δικαστικά έξοδα
- θα μπορούσε να
- CPU
- δημιουργία
- δημιουργήθηκε
- δημιουργεί
- δημιουργία
- κρίσιμης
- έθιμο
- Πελάτες
- παραμετροποίηση
- προσαρμόσετε
- ταμπλό
- ημερομηνία
- επεξεργασία δεδομένων
- Προεπιλογή
- ορίζεται
- ορισμός
- αποδεικνύουν
- καταδεικνύει
- Σε συνάρτηση
- παρατάσσω
- αναπτυχθεί
- αναπτύσσεται
- λεπτομερής
- Προσδιορίστε
- διαφορετικές
- διανέμονται
- διανομή
- γίνεται
- Μην
- δίσκους
- κάθε
- Νωρίτερα
- αποτελεσματικά
- αποδοτικότητα
- ενεργοποιήσετε
- μηχανικός
- Εταιρεία
- επιχειρηματικούς πελάτες
- ουσιώδης
- Αιθέρας (ΕΤΗ)
- παράδειγμα
- Χαρακτηριστικό
- Αρχεία
- Αρχεία
- φιλτράρισμα
- Εξής
- Για
- από
- λειτουργίες
- περαιτέρω
- μελλοντικός
- General
- παίρνω
- Δώστε
- Go
- Στόχοι
- Group
- Ομάδα
- καθοδηγήσει
- Έχω
- he
- Υγεία
- οικοδεσπότες
- Πως
- Πώς να
- Ωστόσο
- HTML
- http
- HTTPS
- IAM
- προσδιορίσει
- προσδιορισμό
- if
- απεικονίζει
- εικονογραφώντας
- Επίπτωση
- υλοποιεί
- βελτίωση
- in
- περιλαμβάνουν
- περιλαμβάνονται
- περιλαμβάνει
- Συμπεριλαμβανομένου
- πληροφορίες
- Καινοτομία
- διορατικότητα
- εγκατάσταση
- εγκατάσταση
- παράδειγμα
- στιγμή
- ολοκλήρωση
- σε
- εισήγαγε
- θέματα
- IT
- ΤΟΥ
- Java
- Δουλειά
- Θέσεις εργασίας
- json
- Κλειδί
- μεγαλύτερη
- ξεκινήσει
- ξεκίνησε
- ξεκινάει
- Βιβλιοθήκη
- ζωή
- Μου αρέσει
- γραμμή
- Λιστα
- Μακριά
- διευθυντής
- Ενδέχεται..
- Μνήμη
- μετρικός
- Metrics
- πρακτικά
- τροποποιήσει
- Παρακολούθηση
- παρακολούθηση
- περισσότερο
- πλέον
- πρέπει
- όνομα
- ονόματα
- Πλοήγηση
- που απαιτούνται
- επόμενη
- κόμβος
- κόμβων
- σημείωση
- κοινοποίηση
- κοινοποιήσεις
- αριθμός
- στόχοι
- of
- on
- αποκλειστικά
- βελτιστοποίηση
- βελτιστοποίηση
- Επιλογές
- or
- ΑΛΛΑ
- δικός μας
- επισκόπηση
- πακέτο
- ζεύγος
- παράθυρο
- παράμετρος
- παράμετροι
- μονοπάτι
- για
- επίδοση
- δικαιώματα
- σχέδιο
- Πλάτων
- Πληροφορία δεδομένων Plato
- Πλάτωνα δεδομένα
- πορτρέτο
- Θέση
- ισχυρός
- πρακτική
- χυτρα
- τιμολόγηση
- Κύριος
- ιδιωτικός
- προβλήματα
- Διεργασίες
- μεταποίηση
- Προφίλ ⬇️
- παρέχουν
- παρέχει
- δημοσιεύει
- Σπρώξτε
- ωθεί
- Δραστήριος
- γρήγορα
- μάλλον
- πραγματικός
- σε πραγματικό χρόνο
- συνιστώ
- σχετίζεται με
- απελευθερώνουν
- παραμένουν
- απαιτούν
- απαιτείται
- απαιτήσεις
- πόρος
- εκμετάλλευση πόρων
- Υποστηρικτικό υλικό
- υπεύθυνος
- ανασκόπηση
- εύρωστος
- Ρόλος
- ρόλους
- ρίζα
- τρέξιμο
- επεκτάσιμη
- αδιάλειπτη
- Τμήμα
- τμήματα
- ασφάλεια
- δείτε
- στείλετε
- αποστολή
- αποστέλλει
- υπηρεσία
- Υπηρεσίες
- Συνεδρίαση
- θα πρέπει να
- Απλούς
- So
- λύση
- Λύσεις
- SOLVE
- μερικοί
- Πηγή
- πρωτογενής κώδικας
- Σπινθήρας
- συγκεκριμένες
- σωρός
- Στάδιο
- στάδια
- Εκκίνηση
- Ξεκινήστε
- ξεκινά
- Βήμα
- Βήματα
- στάση
- χώρος στο δίσκο
- υποδίκτυο
- Επιτυχώς
- τέτοιος
- ΠΕΡΙΛΗΨΗ
- σύστημα
- συστήματα
- Πάρτε
- παίρνει
- Έργο
- εργασίες
- Τεχνικός
- πρότυπο
- από
- ότι
- Η
- Η Πηγη
- τους
- Τους
- τότε
- Αυτοί
- αυτοί
- αυτό
- Μέσω
- ώρα
- προς την
- τροχιά
- ενεργοποιούν
- υπό
- χρήση
- μεταχειρισμένος
- χρησιμοποιώντας
- χρησιμοποιεί
- ποικιλία
- εκδοχή
- Δες
- Πραγματικός
- περιδιάβαση
- θέλω
- ήταν
- we
- ιστός
- διαδικτυακές υπηρεσίες
- πότε
- Ποιό
- ενώ
- θα
- με
- ροής εργασίας
- λειτουργεί
- X
- γιαμ
- εσείς
- Σας
- zephyrnet