Amazon EMR är en stordatatjänst som erbjuds av AWS för att köra Apache Spark och andra applikationer med öppen källkod på AWS för att bygga skalbara datapipelines på ett kostnadseffektivt sätt. Det är viktigt att övervaka loggarna som genereras från jobben som distribueras på EMR-kluster för att hjälpa till att upptäcka kritiska problem i realtid och snabbt identifiera grundorsaker.
Trycker in loggarna amazoncloudwatch gör det möjligt för dig att centralisera och driva handlingsbar intelligens från dina loggar för att lösa driftsproblem utan att behöva tillhandahålla servrar eller hantera programvara. Du kan direkt börja skriva frågor med aggregering, filter och reguljära uttryck. Dessutom kan du visualisera tidsseriedata, gå ner i individuella logghändelser och exportera frågeresultat till CloudWatch-instrumentpaneler.
Att inta loggar som finns kvar på Amazon Elastic Compute Cloud (Amazon EC2) instanser av ett EMR-kluster i CloudWatch, kan du använda CloudWatch-agent. Detta ger ett enkelt sätt att skicka loggar från en EC2-instans till CloudWatch.
CloudWatch-agenten är ett mjukvarupaket som körs autonomt och kontinuerligt på dina servrar. Du kan installera och konfigurera CloudWatch-agenten för att samla in system- och applikationsloggar från EC2-instanser, lokala värdar och containeriserade applikationer. CloudWatch bearbetar och lagrar loggarna som samlas in av CloudWatch-agenten, vilket ytterligare hjälper till med prestanda och hälsoövervakning av din infrastruktur och applikationer.
I det här inlägget skapar vi ett EMR-kluster och centraliserar EMR-stegloggarna för jobben i CloudWatch. Detta gör det lättare för dig att hantera ditt EMR-kluster, felsöka problem och övervaka prestanda. Denna lösning är särskilt användbar om du vill använda CloudWatch för att samla in och visualisera realtidsloggar, mätvärden och händelsedata, vilket effektiviserar din infrastruktur och applikationsunderhåll.
Översikt över lösningen
Lösningen som presenteras i det här inlägget är baserad på en specifik konfiguration där EMR-stegets samtidighetsnivå är satt till 1. Det betyder att endast ett steg körs åt gången på klustret. Det är viktigt att notera att om samtidighetsnivån för EMR-steg är inställd på ett värde större än 1, kanske lösningen inte fungerar som förväntat. Vi rekommenderar starkt att du verifierar din EMR steg samtidighet konfiguration innan du implementerar lösningen som presenteras i det här inlägget.
Följande diagram illustrerar lösningsarkitekturen.
Arbetsflödet innehåller följande steg:
- Användare startar ett Apache Spark EMR-jobb och skapar ett steg på EMR-klustret. Med Apache Spark fördelas arbetsbelastningen över de olika noderna i EMR-klustret.
- I varje nod (EC2-instans) i klustret tittar en CloudWatch-agent på olika loggkataloger, fångar nya poster i loggfilerna och skickar dem till CloudWatch.
- Användare kan se stegloggarna som kommer åt de olika logggrupperna från CloudWatch-konsolen. Stegloggarna skrivna av Amazon EMR är följande:
- styrenhet — Information om bearbetningen av steget. Om ditt steg misslyckas när du laddar, kan du hitta stackspåret i den här loggen.
- stderr — Standardfelkanalen för Spark medan den bearbetar steget.
- stdout — Standardutgångskanalen för Spark medan den bearbetar steget.
Vi tillhandahåller en AWS molnformation mall i detta inlägg som en allmän guide. Mallen visar hur man konfigurerar en CloudWatch-agent på Amazon EMR för att skicka Spark-loggar till CloudWatch. Du kan granska och anpassa den efter behov för att inkludera dina Amazon EMR-säkerhetskonfigurationer. Som en bästa praxis rekommenderar vi att du inkluderar dina Amazon EMR-säkerhetskonfigurationer i mallen till kryptera data under överföring.
Du bör också vara medveten om att vissa av resurserna som används av denna stack medför kostnader när de fortfarande används.
I nästa avsnitt går vi igenom följande steg:
- Skapa och ladda upp bootstrap-skriptet till en Amazon enkel lagringstjänst (Amazon S3) hink.
- Använd CloudFormation-mallen för att skapa följande resurser:
- Övervaka Spark-loggarna på CloudWatch-konsolen.
Förutsättningar
Det här inlägget förutsätter att du har följande:
Skapa och ladda upp bootstrap-skriptet till en S3-bucket
För mer information, se Laddar upp objekt och Installera och köra CloudWatch-agenten på dina servrar.
Utför följande steg för att skapa och ladda upp bootstrap-skriptet:
- Skapa en lokal fil med namnet
bootstrap_cloudwatch_agent.sh
med följande innehåll: - På Amazon S3-konsolen väljer du din S3-hink.
- På Objekt fliken, välj Ladda.
- Välja Lägg till filer, välj sedan bootstrap-skriptet.
- Välja Ladda, välj sedan filnamnet:
bootstrap_cloudwatch_agent.sh
. - Välja Kopiera S3 URI. Vi använder detta värde i ett senare steg.
Tillhandahålla resurser med CloudFormation-mallen
Välja Starta stack för att starta en CloudFormation-stack i ditt konto och distribuera mallen:
Den här mallen skapar en IAM-roll, IAM-instansprofil, System Manager-parameter och EMR-kluster. Klustret startar Exempelapplikation för Spark PI-uppskattning. Du kommer att faktureras för de AWS-resurser som används om du skapar en stack från den här mallen.
CloudFormation-guiden kommer att be dig att ändra eller tillhandahålla dessa parametrar:
- InstanceType - Den typ av instans för alla instansgrupper. Standard är m4.xlarge.
- InstanceCountCore – Antalet instanser i kärninstansgruppen. Standard är 2.
- EMRReaseLabel - Den Amazon EMR releaseetikett du vill använda. Standard är emr-6.9.0.
- BootstrapScriptPath – S3-sökvägen för ditt CloudWatch-agentinstallationsbootstrap-skript som du kopierade tidigare.
- subnät – EC2-undernätet där klustret startar. Du måste ange denna parameter.
- EC2KeyPairName – Ett valfritt EC2-nyckelpar för anslutning till klusternoder, som ett alternativ till Session Manager.
Övervaka loggströmmarna
När CloudFormation-stacken har distribuerats framgångsrikt väljer du på CloudWatch-konsolen Logga grupper i navigeringsfönstret. Filtrera sedan logggrupperna efter prefixet /aws/emr/master
.
ID:t i logggruppen motsvarar EC2-instans-ID för den primära EMR-noden. Om du har flera EMR-kluster kan du använda detta ID för att identifiera ett särskilt EMR-kluster, baserat på det primära nod-ID:t.
I logggruppen hittar du de tre olika loggströmmarna.
Loggströmmarna innehåller följande information:
- steg-stdout – Standardutgångskanalen för Spark medan den bearbetar steget.
- steg-stderr – Standardfelkanalen för Spark medan den bearbetar steget.
- steg-kontroller – Information om bearbetningen av steget. Om ditt steg misslyckas när du laddar, kan du hitta stackspåret i den här loggen.
Städa upp
För att undvika framtida debiteringar på ditt konto, radera resurserna du skapade i den här genomgången. EMR-klustret kommer att medföra avgifter så länge klustret är aktivt, så stoppa det när du är klar.
- På CloudFormation-konsolen, i navigeringsfönstret, välj Stacks.
- Välj den stack du startade (
EMR-CloudWatch-Demo
), sedan Välj Radera. - Töm S3-hinken du skapade.
- Ta bort S3-hinken du skapade.
Slutsats
Nu när du har slutfört stegen i den här genomgången har du CloudWatch-agenten körd på dina klustervärdar och konfigurerad att skicka EMR-stegloggar till CloudWatch. Med den här funktionen kan du effektivt övervaka hälsan och prestanda för dina Spark-jobb som körs på Amazon EMR, upptäcka kritiska problem i realtid och snabbt identifiera grundorsaker.
Du kan paketera och distribuera den här lösningen genom en CloudFormation-mall som den här exempelmallen, som skapar IAM-instansprofilens roll, Systems Manager-parametern och EMR-klustret.
För att ta detta vidare, överväg att använda dessa loggar i CloudWatch-larm för varningar på en log group-metrisk filter. Du kan samla dem med andra larm i en sammansatt larm eller konfigurera larmåtgärder som att skicka Amazon enkel meddelandetjänst (Amazon SNS) aviseringar för att trigga händelsedrivna processer som t.ex AWS Lambda funktioner.
Om författaren
Ennio Pastore är Senior Data Architect i AWS Data Lab-teamet. Han är entusiast för allt som har att göra med ny teknik som har en positiv inverkan på företag och allmänt försörjning. Ennio har över 10 års erfarenhet av dataanalys. Han hjälper företag att definiera och implementera dataplattformar över branscher, såsom telekommunikation, bank, spel, detaljhandel och försäkring.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- Platoblockchain. Web3 Metaverse Intelligence. Kunskap förstärkt. Tillgång här.
- Källa: https://aws.amazon.com/blogs/big-data/push-amazon-emr-step-logs-from-amazon-ec2-instances-to-amazon-cloudwatch-logs/
- :är
- 1
- 10
- 100
- 9
- a
- Om oss
- åtkomst
- Konto
- tvärs
- åtgärder
- aktiv
- Dessutom
- adress
- Recensioner
- larm
- varningar
- Alla
- alternativ
- amason
- Amazon EC2
- Amazon EMR
- analytics
- och
- Apache
- Apache Spark
- Ansökan
- tillämpningar
- arkitektur
- ÄR
- AS
- At
- autonomt
- AWS
- Banking
- baserat
- BE
- innan
- börja
- BÄST
- Stor
- Stora data
- Bootstrap
- SLUTRESULTAT
- företag
- by
- KAN
- Fångande
- Orsakerna
- Kanal
- avgifter
- Välja
- kluster
- samla
- Företag
- fullborda
- Avslutade
- Compute
- konfiguration
- Anslutning
- Tänk
- Konsol
- innehåll
- kontinuerligt
- Kärna
- motsvarar
- kostnadseffektiv
- Kostar
- kunde
- skapa
- skapas
- skapar
- Skapa
- kritisk
- skräddarsy
- datum
- Data Analytics
- Standard
- demonstrerar
- distribuera
- utplacerade
- vecklas ut
- olika
- kataloger
- distribueras
- ner
- driv
- varje
- Tidigare
- lättare
- missar
- effektivt
- möjliggör
- entusiast
- fel
- väsentlig
- Eter (ETH)
- händelse
- händelser
- allt
- exempel
- förväntat
- erfarenhet
- export
- uttryck
- misslyckas
- Leverans
- Fil
- Filer
- filtrera
- filter
- hitta
- efter
- följer
- För
- från
- funktioner
- ytterligare
- framtida
- Gaming
- Allmänt
- genereras
- Go
- större
- Grupp
- Gruppens
- styra
- Har
- Hälsa
- hjälpa
- hjälp
- hjälper
- höggradigt
- värdar
- Hur ser din drömresa ut
- How To
- html
- http
- HTTPS
- IAM
- ID
- identifiera
- identifiera
- Inverkan
- genomföra
- genomföra
- med Esport
- in
- innefattar
- innefattar
- Inklusive
- individuellt
- industrier
- informationen
- Infrastruktur
- installera
- installera
- exempel
- försäkring
- Intelligens
- problem
- IT
- Jobb
- Lediga jobb
- jpg
- json
- lab
- lansera
- lanserades
- lanserar
- Nivå
- tycka om
- läser in
- lokal
- Lång
- underhåll
- göra
- hantera
- chef
- sätt
- betyder
- Metrics
- modifiera
- Övervaka
- övervakning
- mer
- multipel
- namn
- Som heter
- Navigering
- behövs
- behöver
- Nya
- Ny teknik
- Nästa
- nod
- noder
- anmälan
- anmälningar
- antal
- of
- erbjuds
- on
- ONE
- öppen källkod
- operativa
- Övriga
- produktion
- paket
- panelen
- parameter
- parametrar
- särskilt
- särskilt
- bana
- prestanda
- Plattformar
- plato
- Platon Data Intelligence
- PlatonData
- positiv
- Inlägg
- praktiken
- presenteras
- primär
- processer
- bearbetning
- Profil
- ge
- ger
- tillhandahållande
- Tryck
- Tryckande
- snabbt
- verklig
- realtid
- rekommenderar
- regelbunden
- relaterad
- frigöra
- förblir
- Resurser
- Resultat
- detaljhandeln
- översyn
- Roll
- rot
- Körning
- rinnande
- skalbar
- sektioner
- säkerhet
- skicka
- senior
- Serier
- service
- session
- in
- skall
- Enkelt
- So
- Mjukvara
- lösning
- några
- Gnista
- specifik
- stapel
- standard
- starta
- Starta
- startar
- Steg
- Steg
- Sluta
- förvaring
- lagrar
- rationalisering
- strömmar
- undernät
- Framgångsrikt
- sådana
- sudo
- system
- System
- Ta
- grupp
- Tekniken
- telekommunikationer
- mall
- den där
- Smakämnen
- Dem
- Dessa
- tre
- Genom
- tid
- Tidsföljder
- till
- spåra
- utlösa
- användning
- värde
- verifiera
- utsikt
- genomgång
- klockor
- Sätt..
- som
- medan
- kommer
- med
- utan
- Arbete
- arbetsflöde
- skrivning
- skriven
- jaml
- år
- Din
- zephyrnet