Om de efficiëntie van een Spark-applicatie te verbeteren, is het essentieel om de prestaties en het gedrag ervan te monitoren. In dit bericht laten we zien hoe u gedetailleerde Spark-statistieken kunt publiceren Amazon EMR naar Amazon Cloud Watch. Dit geeft u de mogelijkheid om knelpunten te identificeren en tegelijkertijd het gebruik van resources te optimaliseren.
CloudWatch biedt een robuuste, schaalbare en kosteneffectieve monitoringoplossing voor AWS-bronnen en -applicaties, met krachtige aanpassingsopties en naadloze integratie met andere AWS-services. Standaard verzendt Amazon EMR basisstatistieken naar CloudWatch om de activiteit en gezondheid van een cluster te volgen. Met het configureerbare metrische systeem van Spark kunnen statistieken worden verzameld in verschillende sinks, waaronder HTTP-, JMX- en CSV-bestanden, maar er is aanvullende configuratie vereist om Spark in staat te stellen statistieken naar CloudWatch te publiceren.
Overzicht oplossingen
Deze oplossing omvat een Spark-configuratie om metrische gegevens naar een aangepaste sink te verzenden. De aangepaste sink verzamelt alleen de metrische gegevens die zijn gedefinieerd in een Metricfilter.json-bestand. Het maakt gebruik van de CloudWatch-agent om de statistieken te publiceren naar een aangepaste Cloudwatch-naamruimte. Het meegeleverde bootstrap-actiescript is verantwoordelijk voor het installeren en configureren van de CloudWatch-agent en de metrische bibliotheek op de Amazon Elastic Compute-cloud (Amazon EC2) EMR-instanties. Een CloudWatch dashboard kan direct inzicht geven in de prestaties van een applicatie.
Het volgende diagram illustreert de oplossingsarchitectuur en workflow.
De workflow omvat de volgende stappen:
- Gebruikers starten een Spark EMR-taak, waardoor een stap in het EMR-cluster wordt gemaakt. Met Apache Spark wordt de werklast verdeeld over de verschillende knooppunten van het EMR-cluster.
- In elk knooppunt (EC2-instantie) van het cluster legt een Spark-bibliotheek metrische gegevens vast en stuurt deze naar een CloudWatch-agent, die de metrische gegevens verzamelt voordat deze naar CloudWatch worden gepusht elke 30 seconden.
- Gebruikers kunnen de statistieken bekijken die toegang hebben tot de aangepaste naamruimte op de CloudWatch-console.
Wij bieden een AWS CloudFormatie sjabloon in dit bericht als algemene gids. De sjabloon laat zien hoe u een CloudWatch-agent op Amazon EMR configureert om Spark-statistieken naar CloudWatch te pushen. U kunt het indien nodig bekijken en aanpassen om uw Amazon EMR-beveiligingsconfiguraties op te nemen. Als best practice raden we u aan uw Amazon EMR-beveiligingsconfiguraties in de sjabloon op te nemen gegevens in transit versleutelen.
Houd er ook rekening mee dat sommige van de bronnen die door deze stapel worden ingezet, kosten met zich meebrengen als ze in gebruik blijven. Aanvullend, EMR-statistieken maak geen CloudWatch-kosten. Voor aangepaste statistieken worden echter kosten in rekening gebracht op basis van de prijzen voor CloudWatch-statistieken. Voor meer informatie, zie Amazon CloudWatch-prijzen.
In de volgende paragrafen doorlopen we de volgende stappen:
- Maak en upload de metrische bibliotheek, het installatiescript en de filterdefinitie naar een Amazon eenvoudige opslagservice (Amazon S3) emmer.
- Gebruik de CloudFormation-sjabloon om de volgende bronnen te maken:
- Bewaak de Spark-statistieken op de CloudWatch-console.
Voorwaarden
Dit bericht gaat ervan uit dat je het volgende hebt:
- An AWS-account.
- Een S3-bucket voor het opslaan van het bootstrap-script, de bibliotheek en de metrische filterdefinitie.
- Een VPC gemaakt in Amazon virtuele privécloud (Amazon VPC), waar uw EMR-cluster wordt gelanceerd.
- Standaard IAM-servicerollen voor Amazon EMR-machtigingen voor AWS-services en -bronnen. U kunt deze rollen maken met de opdracht aws emr create-default-roles in het AWS-opdrachtregelinterface (AWS CLI).
- Een optioneel EC2-sleutelpaar, als u van plan bent verbinding te maken met uw cluster via SSH in plaats van Session Manager, een vermogen van AWS-systeembeheerder.
Definieer de vereiste statistieken
Om te voorkomen dat onnodige gegevens naar CloudWatch worden verzonden, implementeert onze oplossing een metrisch filter. Bekijk de Spark-documentatie om kennis te maken met de naamruimten en de bijbehorende statistieken. Bepaal welke statistieken relevant zijn voor uw specifieke toepassing en prestatiedoelen. Voor verschillende toepassingen kunnen verschillende meetgegevens nodig zijn om te monitoren, afhankelijk van de werklast, gegevensverwerkingsvereisten en optimalisatiedoelstellingen. De metrische namen die u wilt controleren, moeten worden gedefinieerd in het bestand Metricfilter.json, samen met de bijbehorende naamruimten.
We hebben een voorbeeld van een Metricfilter.json-definitie gemaakt, die het vastleggen van metrische gegevens omvat met betrekking tot gegevens-I/O, garbagecollection, geheugen- en CPU-druk, en Spark-taak-, fase- en taakstatistieken.
Houd er rekening mee dat bepaalde metrische gegevens niet beschikbaar zijn in alle Spark-releaseversies (appStatus is bijvoorbeeld geïntroduceerd in Spark 3.0).
Maak en upload de vereiste bestanden naar een S3-bucket
Voor meer informatie, zie Objecten uploaden en De CloudWatch-agent op uw servers installeren en uitvoeren.
Voer de volgende stappen uit om het bootstrap-script te maken en te uploaden:
- Kies op de Amazon S3-console uw S3-bucket.
- Op de Objecten tabblad, kies Uploaden.
- Kies Bestanden toevoegen, kies dan de Metrischfilter.json, installateur.sh en voorbeeldjob.sh bestanden.
- Upload bovendien het
emr-custom-cw-sink-0.0.1.jar
metrics-bibliotheekbestand dat overeenkomt met de Amazon EMR-releaseversie die u gaat gebruiken: - Kies Uploadenen noteer de S3-URI's voor de bestanden.
Richt bronnen in met de CloudFormation-sjabloon
Kies Start Stack om een CloudFormation-stack in uw account te starten en de sjabloon te implementeren:
Met deze sjabloon wordt een IAM-rol, een IAM-instantieprofiel, een EMR-cluster en een CloudWatch-dashboard gemaakt. Het cluster begint een basis Spark-voorbeeldtoepassing. U wordt gefactureerd voor de gebruikte AWS-bronnen als u een stapel maakt op basis van deze sjabloon.
De CloudFormation-wizard zal u vragen om deze parameters te wijzigen of op te geven:
- instantietype - The type instantie voor alle instantiegroepen. De standaardwaarde is m5.2xgroot.
- InstanceCountCore – Het aantal instanties in de kerninstantiegroep. De standaardwaarde is 4.
- EMRReaseLabel - The EMR-vrijgavelabel van Amazon u wilt gebruiken. De standaardwaarde is emr-6.9.0.
- BootstrapScriptPath – Het S3-pad van het installatie-bootstrapscript installer.sh dat u eerder hebt gekopieerd.
- MetrischFilterPath – Het S3-pad van uw Metricfilter.json-definitie die u eerder hebt gekopieerd.
- MetriekBibliotheekPath – Het S3-pad van uw CloudWatch emr-custom-cw-sink-0.0.1.jar-bibliotheek die u eerder hebt gekopieerd.
- CloudWatchNamespace – De naam van de aangepaste CloudWatch-naamruimte die moet worden gebruikt.
- SparkDemoApplicationPath – Het S3-pad van uw voorbeeldjob.sh-script dat u eerder hebt gekopieerd.
- subnet – Het EC2-subnet waar het cluster wordt gestart. U moet deze parameter opgeven.
- EC2KeyPairNaam – Een optioneel EC2-sleutelpaar voor verbinding met clusterknooppunten, als alternatief voor Session Manager.
Bekijk de statistieken
Nadat de CloudFormation-stack met succes is geïmplementeerd, wordt de voorbeeldtaak automatisch gestart en duurt het ongeveer 15 minuten om te voltooien. Kies op de CloudWatch-console Dashboards in het navigatievenster. Filter de lijst vervolgens op het voorvoegsel SparkMonitoring.
Het voorbeelddashboard bevat informatie over het cluster en een overzicht van de Spark-taken, fasen en taken. Metrische gegevens zijn ook beschikbaar onder een aangepaste naamruimte, beginnend met EMRCustomSparkCloudWatchSink
.
Geheugen, CPU, I/O en aanvullende taakverdelingsstatistieken zijn ook inbegrepen.
Ten slotte zijn er per uitvoerder gedetailleerde Java-garbagecollection-statistieken beschikbaar.
Opruimen
Om toekomstige kosten in uw account te voorkomen, verwijdert u de bronnen die u in deze walkthrough heeft gemaakt. Voor het EMR-cluster worden kosten in rekening gebracht zolang het cluster actief is, dus stop het als u klaar bent. Voer de volgende stappen uit:
- Kies op de CloudFormation-console in het navigatievenster Stacks.
- Kies de stapel die je hebt gelanceerd (
EMR-CloudWatch-Demo
), kies dan Verwijder. - Maak de S3-emmer leeg jij hebt gemaakt.
- Verwijder de S3-bucket jij hebt gemaakt.
Conclusie
Nu u de stappen in dit scenario hebt voltooid, wordt de CloudWatch-agent op uw clusterhosts uitgevoerd en geconfigureerd om Spark-statistieken naar CloudWatch te pushen. Met deze functie kun je de gezondheid en prestaties van je Spark-taken die op Amazon EMR draaien effectief monitoren, waarbij je in realtime kritieke problemen opspoort en de hoofdoorzaken snel identificeert.
U kunt deze oplossing verpakken en implementeren via een CloudFormation-sjabloon zoals deze voorbeeldsjabloon, waarmee de IAM-instantieprofielrol, het CloudWatch-dashboard en het EMR-cluster worden gemaakt. De broncode voor de bibliotheek is beschikbaar op GitHub voor maatwerk.
Als u nog een stap verder wilt gaan, kunt u overwegen deze statistieken te gebruiken in CloudWatch-alarmen. Je zou ze samen met andere alarmen kunnen verzamelen in een samengesteld alarm of configureer alarmacties zoals verzenden Amazon eenvoudige meldingsservice (Amazon SNS) meldingen om gebeurtenisgestuurde processen te activeren, zoals AWS Lambda functies.
Over de auteur
Le Clue Lubbe is hoofdingenieur bij AWS. Hij werkt samen met onze grootste zakelijke klanten om enkele van hun meest complexe technische problemen op te lossen. Hij stimuleert brede oplossingen door middel van innovatie om het leven van onze klanten te beïnvloeden en te verbeteren.
- Door SEO aangedreven content en PR-distributie. Word vandaag nog versterkt.
- PlatoData.Network Verticale generatieve AI. Versterk jezelf. Toegang hier.
- PlatoAiStream. Web3-intelligentie. Kennis versterkt. Toegang hier.
- PlatoESG. Automotive / EV's, carbon, CleanTech, Energie, Milieu, Zonne, Afvalbeheer. Toegang hier.
- Plato Gezondheid. Intelligentie op het gebied van biotech en klinische proeven. Toegang hier.
- ChartPrime. Verhoog uw handelsspel met ChartPrime. Toegang hier.
- BlockOffsets. Eigendom voor milieucompensatie moderniseren. Toegang hier.
- Bron: https://aws.amazon.com/blogs/big-data/monitor-apache-spark-applications-on-amazon-emr-with-amazon-cloudwatch/
- :is
- :niet
- :waar
- 1
- 100
- 107
- 15%
- 20
- 30
- 9
- a
- vermogen
- toegang
- Account
- bekend
- over
- Actie
- acties
- actieve
- activiteit
- Extra
- Daarnaast
- Agent
- alarm
- Alles
- toestaat
- langs
- ook
- alternatief
- Amazone
- Amazon EC2
- Amazon EMR
- Amazon Web Services
- an
- en
- apache
- Apache Spark
- Aanvraag
- toepassingen
- ongeveer
- bouwkundig
- architectuur
- ZIJN
- AS
- geassocieerd
- gaat uit van
- At
- auteur
- webmaster.
- Beschikbaar
- vermijd
- bewust
- AWS
- gebaseerde
- basis-
- BE
- vaardigheden
- BEST
- Bootstrap
- breed
- maar
- by
- CAN
- bekwaamheid
- captures
- Het vastleggen
- oorzaken
- zeker
- lasten
- Kies
- TROS
- code
- verzamelen
- Collectie
- verzamelt
- compleet
- Voltooid
- complex
- Berekenen
- Configuratie
- geconfigureerd
- Verbinden
- Wij verbinden
- Overwegen
- troosten
- Kern
- komt overeen
- kostenefficient
- Kosten
- kon
- CPU
- en je merk te creëren
- aangemaakt
- creëert
- Wij creëren
- kritisch
- gewoonte
- Klanten
- maatwerk
- aan te passen
- dashboards
- gegevens
- gegevensverwerking
- Standaard
- gedefinieerd
- definitie
- tonen
- demonstreert
- Afhankelijk
- implementeren
- ingezet
- ontplooit
- gedetailleerd
- Bepalen
- anders
- verdeeld
- distributie
- gedaan
- Dont
- drives
- elk
- Vroeger
- effectief
- doeltreffendheid
- in staat stellen
- ingenieur
- Enterprise
- zakelijke klanten
- essentieel
- Ether (ETH)
- voorbeeld
- Kenmerk
- Dien in
- Bestanden
- filter
- volgend
- Voor
- oppompen van
- functies
- verder
- toekomst
- Algemeen
- krijgen
- Geven
- Go
- Doelen
- Groep
- Groep
- gids
- Hebben
- he
- Gezondheid
- hosts
- Hoe
- How To
- Echter
- HTML
- http
- HTTPS
- IAM
- identificeren
- het identificeren van
- if
- illustreert
- illustreren
- Impact
- gereedschap
- verbeteren
- in
- omvatten
- inclusief
- omvat
- Inclusief
- informatie
- Innovatie
- inzicht
- installatie
- installeren
- instantie
- moment
- integratie
- in
- geïntroduceerd
- problemen
- IT
- HAAR
- Java
- Jobomschrijving:
- Vacatures
- json
- sleutel
- grootste
- lancering
- gelanceerd
- lanceert
- Bibliotheek
- Life
- als
- Lijn
- Lijst
- lang
- manager
- Mei..
- Geheugen
- metriek
- Metriek
- minuten
- wijzigen
- monitor
- Grensverkeer
- meer
- meest
- Dan moet je
- naam
- namen
- Navigatie
- nodig
- volgende
- knooppunt
- knooppunten
- nota
- notificatie
- meldingen
- aantal
- doelstellingen
- of
- on
- Slechts
- optimalisatie
- optimaliseren
- Opties
- or
- Overige
- onze
- overzicht
- pakket
- paar
- brood
- parameter
- parameters
- pad
- voor
- prestatie
- permissies
- plan
- Plato
- Plato gegevensintelligentie
- PlatoData
- Portret
- Post
- krachtige
- praktijk
- druk
- prijsstelling
- Principal
- privaat
- problemen
- processen
- verwerking
- Profiel
- zorgen voor
- biedt
- publiceren
- Duwen
- duwt
- voortvarend
- snel
- liever
- vast
- real-time
- adviseren
- verwant
- los
- relevante
- blijven
- vereisen
- nodig
- Voorwaarden
- hulpbron
- gebruik van hulpbronnen
- Resources
- verantwoordelijk
- beoordelen
- robuust
- Rol
- rollen
- wortel
- lopend
- schaalbare
- naadloos
- sectie
- secties
- veiligheid
- zien
- sturen
- verzending
- verzendt
- service
- Diensten
- Sessie
- moet
- Eenvoudig
- So
- oplossing
- Oplossingen
- OPLOSSEN
- sommige
- bron
- broncode
- Vonk
- specifiek
- stack
- Stadium
- stadia
- begin
- Start
- starts
- Stap voor
- Stappen
- stop
- mediaopslag
- subnet
- Met goed gevolg
- dergelijk
- OVERZICHT
- system
- Systems
- Nemen
- neemt
- Taak
- taken
- Technisch
- sjabloon
- neem contact
- dat
- De
- De Bron
- hun
- Ze
- harte
- Deze
- ze
- dit
- Door
- niet de tijd of
- naar
- spoor
- leiden
- voor
- .
- gebruikt
- gebruik
- maakt gebruik van
- variëteit
- versie
- Bekijk
- Virtueel
- walkthrough
- willen
- was
- we
- web
- webservices
- wanneer
- welke
- en
- wil
- Met
- workflow
- Bedrijven
- X
- YAML
- u
- Your
- zephyrnet