Amazon EMR este un serviciu de date mari oferit de AWS pentru a rula Apache Spark și alte aplicații open-source pe AWS pentru a construi conducte de date scalabile într-un mod rentabil. Monitorizarea jurnalelor generate din joburile implementate pe clusterele EMR este esențială pentru a ajuta la detectarea problemelor critice în timp real și pentru a identifica rapid cauzele principale.
Împingând acele bușteni înăuntru Amazon CloudWatch vă permite să centralizați și să gestionați informații acționabile din jurnalele dvs. pentru a rezolva problemele operaționale fără a fi nevoie să furnizați servere sau să gestionați software-ul. Puteți începe instantaneu să scrieți interogări cu agregare, filtre și expresii regulate. În plus, puteți vizualiza datele serii cronologice, puteți explora evenimentele individuale din jurnal și puteți exporta rezultatele interogărilor în tablourile de bord CloudWatch.
Pentru a ingera jurnalele care sunt persistente pe Cloud Elastic de calcul Amazon (Amazon EC2) ale unui cluster EMR în CloudWatch, puteți utiliza Agent CloudWatch. Aceasta oferă o modalitate simplă de a împinge jurnalele de la o instanță EC2 în CloudWatch.
Agentul CloudWatch este un pachet software care rulează autonom și continuu pe serverele dumneavoastră. Puteți instala și configura agentul CloudWatch pentru a colecta jurnalele de sistem și aplicații de la instanțe EC2, gazde locale și aplicații containerizate. CloudWatch procesează și stochează jurnalele colectate de agentul CloudWatch, ceea ce ajută în continuare la monitorizarea performanței și a stării de sănătate a infrastructurii și aplicațiilor dvs.
În această postare, creăm un cluster EMR și centralizăm jurnalele de pași EMR ale joburilor în CloudWatch. Acest lucru vă va facilita gestionarea clusterului dvs. EMR, depanarea problemelor și monitorizarea performanței. Această soluție este deosebit de utilă dacă doriți să utilizați CloudWatch pentru a colecta și vizualiza în timp real jurnalele, valorile și datele despre evenimente, simplificând infrastructura și întreținerea aplicațiilor.
Prezentare generală a soluției
Soluția prezentată în această postare se bazează pe o configurație specifică în care nivelul de concurență al pasului EMR este setat la 1. Aceasta înseamnă că numai un pas este rulat la un moment dat pe cluster. Este important de reținut că, dacă nivelul de concurență al pasului EMR este setat la o valoare mai mare de 1, este posibil ca soluția să nu funcționeze conform așteptărilor. Vă recomandăm cu căldură să vă verificați Concurența pasului EMR configurare înainte de implementarea soluției prezentate în acest post.
Următoarea diagramă ilustrează arhitectura soluției.
Fluxul de lucru include următorii pași:
- Utilizatorii încep o lucrare Apache Spark EMR, creând un pas pe clusterul EMR. Folosind Apache Spark, sarcina de lucru este distribuită între diferitele noduri ale clusterului EMR.
- În fiecare nod (instanță EC2) al clusterului, un agent CloudWatch urmărește diferite directoare de jurnal, captând noi intrări în fișierele de jurnal și împingându-le către CloudWatch.
- Utilizatorii pot vizualiza jurnalele pasilor accesând diferitele grupuri de jurnal din consola CloudWatch. Jurnalele de pași scrise de Amazon EMR sunt următoarele:
- controlor — Informații despre procesarea etapei. Dacă pasul dvs. nu reușește în timpul încărcării, puteți găsi urmărirea stivei în acest jurnal.
- stderr — Canalul de eroare standard al Spark în timp ce procesează pasul.
- stdout — Canalul de ieșire standard al Spark în timp ce procesează pasul.
Oferim un Formarea AWS Cloud șablon din această postare ca ghid general. Șablonul demonstrează cum să configurați un agent CloudWatch pe Amazon EMR pentru a trimite jurnalele Spark către CloudWatch. Îl puteți revizui și personaliza după cum este necesar pentru a include configurațiile dvs. de securitate Amazon EMR. Ca cea mai bună practică, vă recomandăm să includeți configurațiile dvs. de securitate Amazon EMR în șablon criptați datele în tranzit.
De asemenea, ar trebui să știți că unele dintre resursele implementate de această stivă implică costuri atunci când rămân în uz.
În secțiunile următoare, parcurgem următorii pași:
- Creați și încărcați scriptul bootstrap într-un Serviciul Amazon de stocare simplă Găleată (Amazon S3)
- Utilizați șablonul CloudFormation pentru a crea următoarele resurse:
- Monitorizați jurnalele Spark pe consola CloudWatch.
Cerințe preliminare
Această postare presupune că aveți următoarele:
Creați și încărcați scriptul bootstrap într-o găleată S3
Pentru mai multe informații, consultați Încărcarea obiectelor și Instalarea și rularea agentului CloudWatch pe serverele dvs.
Pentru a crea și a încărca scriptul bootstrap, parcurgeți următorii pași:
- Creați un fișier local numit
bootstrap_cloudwatch_agent.sh
cu următorul conținut: - Pe consola Amazon S3, alegeți găleata S3.
- Pe Obiecte fila, alegeți Încărcați.
- Alege Adăugați fișiere, apoi alegeți scriptul bootstrap.
- Alege Încărcați, apoi alegeți numele fișierului:
bootstrap_cloudwatch_agent.sh
. - Alege Copiați URI-ul S3. Folosim această valoare într-o etapă ulterioară.
Furnizați resurse cu șablonul CloudFormation
Alege Lansați Stack pentru a lansa o stivă CloudFormation în contul dvs. și a implementa șablonul:
Acest șablon creează un rol IAM, un profil de instanță IAM, un parametru Systems Manager și un cluster EMR. Clusterul pornește Exemplu de aplicație de estimare Spark PI. Veți fi facturat pentru resursele AWS utilizate dacă creați o stivă din acest șablon.
Expertul CloudFormation vă va cere să modificați sau să furnizați acești parametri:
- InstanceType - tip de instanță pentru toate grupurile de instanță. Valoarea implicită este m4.xlarge.
- InstanceCountCore – Numărul de instanțe din grupul de instanțe de bază. Valoarea implicită este 2.
- EMRReaseLabel - Etichetă de lansare Amazon EMR vrei să folosești. Valoarea implicită este emr-6.9.0.
- BootstrapScriptPath – Calea S3 a scriptului de bootstrap de instalare a agentului CloudWatch pe care l-ați copiat mai devreme.
- Subrețea – Subrețeaua EC2 în care se lansează clusterul. Trebuie să furnizați acest parametru.
- EC2KeyPairName – O pereche de taste EC2 opțională pentru conectarea la nodurile cluster, ca alternativă la Session Manager.
Monitorizați fluxurile de jurnal
După ce stiva CloudFormation se implementează cu succes, pe consola CloudWatch, alegeți Grupuri de jurnal în panoul de navigare. Apoi filtrați grupurile de jurnal după prefix /aws/emr/master
.
ID-ul din grupul de jurnal corespunde ID-ului instanței EC2 al nodului primar EMR. Dacă aveți mai multe grupuri EMR, puteți utiliza acest ID pentru a identifica un anumit cluster EMR, pe baza ID-ului nodului primar.
În grupul de jurnal, veți găsi cele trei fluxuri de jurnal diferite.
Fluxurile de jurnal conțin următoarele informații:
- pas-stdout – Canalul de ieșire standard al Spark în timp ce procesează pasul.
- pas-stderr – Canalul de eroare standard al Spark în timp ce procesează pasul.
- controler-pas – Informații despre procesarea pasului. Dacă pasul dvs. nu reușește în timpul încărcării, puteți găsi urmărirea stivei în acest jurnal.
A curăța
Pentru a evita costuri viitoare în contul dvs., ștergeți resursele pe care le-ați creat în această explicație. Clusterul EMR va suporta taxe atâta timp cât clusterul este activ, așa că opriți-l când ați terminat.
- Pe consola CloudFormation, în panoul de navigare, alegeți Stive.
- Alegeți stiva pe care ați lansat-o (
EMR-CloudWatch-Demo
), atunci alege Șterge. - Goliți găleata S3 ai creat.
- Ștergeți găleata S3 ai creat.
Concluzie
Acum că ați finalizat pașii din această explicație, aveți agentul CloudWatch care rulează pe gazdele clusterului și este configurat pentru a trimite jurnalele de pași EMR către CloudWatch. Cu această funcție, puteți monitoriza în mod eficient sănătatea și performanța joburilor dvs. Spark care rulează pe Amazon EMR, detectând problemele critice în timp real și identificând rapid cauzele principale.
Puteți împacheta și implementa această soluție printr-un șablon CloudFormation, cum ar fi acest șablon exemplu, care creează rolul de profil al instanței IAM, parametrul Systems Manager și clusterul EMR.
Pentru a continua acest lucru, luați în considerare utilizarea acestor jurnale în alarmele CloudWatch pentru alerte pe a filtru de log-grup-metric. Le puteți colecta cu alte alarme într-un alarma compozita sau configurați acțiuni de alarmă, cum ar fi trimiterea Serviciul de notificare simplă Amazon (Amazon SNS) notificări pentru a declanșa procese bazate pe evenimente, cum ar fi AWS Lambdas funcții.
Despre autor
Ennio Pastore este arhitect senior de date în echipa AWS Data Lab. Este un pasionat de tot ceea ce are legătură cu noile tehnologii care au un impact pozitiv asupra afacerilor și a mijloacelor de trai în general. Ennio are peste 10 ani de experiență în analiza datelor. El ajută companiile să definească și să implementeze platforme de date în diverse industrii, cum ar fi telecomunicații, bancar, jocuri, retail și asigurări.
- Distribuție de conținut bazat pe SEO și PR. Amplifică-te astăzi.
- Platoblockchain. Web3 Metaverse Intelligence. Cunoștințe amplificate. Accesați Aici.
- Sursa: https://aws.amazon.com/blogs/big-data/push-amazon-emr-step-logs-from-amazon-ec2-instances-to-amazon-cloudwatch-logs/
- :este
- 1
- 10
- 100
- 9
- a
- Despre Noi
- accesarea
- Cont
- peste
- acțiuni
- activ
- plus
- adresa
- Agent
- alarmă
- Alerte
- TOATE
- alternativă
- Amazon
- Amazon EC2
- Amazon EMR
- Google Analytics
- și
- Apache
- Apache Spark
- aplicație
- aplicatii
- arhitectură
- SUNT
- AS
- At
- autonom
- AWS
- Bancar
- bazat
- BE
- înainte
- începe
- CEL MAI BUN
- Mare
- Datele mari
- Bootstrap
- construi
- întreprinderi
- by
- CAN
- capturarea
- cauze
- Canal
- taxe
- Alege
- Grup
- colecta
- Companii
- Completă
- Terminat
- Calcula
- Configuraţie
- Conectarea
- Lua în considerare
- Consoleze
- conţinut
- continuu
- Nucleu
- corespunde
- cost-eficiente
- Cheltuieli
- ar putea
- crea
- a creat
- creează
- Crearea
- critic
- personaliza
- de date
- Analiza datelor
- Mod implicit
- demonstrează
- implementa
- dislocate
- implementează
- diferit
- directoare
- distribuite
- jos
- conduce
- fiecare
- Mai devreme
- mai ușor
- ecou
- în mod eficient
- permite
- entuziast
- eroare
- esenţial
- Eter (ETH)
- eveniment
- evenimente
- tot
- exemplu
- de aşteptat
- experienţă
- exporturile
- expresii
- eșuează
- Caracteristică
- Fișier
- Fişiere
- filtru
- Filtre
- Găsi
- următor
- urmează
- Pentru
- din
- funcții
- mai mult
- viitor
- jocuri
- General
- generată
- Go
- mai mare
- grup
- Grupului
- ghida
- Avea
- Sănătate
- ajutor
- util
- ajută
- extrem de
- Gazdele
- Cum
- Cum Pentru a
- HTML
- http
- HTTPS
- IAM
- ID
- identifica
- identificarea
- Impactul
- punerea în aplicare a
- Punere în aplicare a
- important
- in
- include
- include
- Inclusiv
- individ
- industrii
- informații
- Infrastructură
- instala
- Instalarea
- instanță
- asigurare
- Inteligență
- probleme de
- IT
- Loc de munca
- Locuri de munca
- jpg
- JSON
- de laborator
- lansa
- a lansat
- lansează
- Nivel
- ca
- încărcare
- local
- Lung
- întreținere
- face
- administra
- manager
- manieră
- mijloace
- Metrici
- modifica
- monitor
- Monitorizarea
- mai mult
- multiplu
- nume
- Numit
- Navigare
- necesar
- au nevoie
- Nou
- Noi tehnologii
- următor
- nod
- noduri
- notificare
- notificări
- număr
- of
- oferit
- on
- ONE
- open-source
- operațional
- Altele
- producție
- pachet
- pâine
- parametru
- parametrii
- special
- în special
- cale
- performanță
- Platforme
- Plato
- Informații despre date Platon
- PlatoData
- pozitiv
- Post
- practică
- prezentat
- primar
- procese
- prelucrare
- Profil
- furniza
- furnizează
- dispoziţie
- Împinge
- împingerea
- repede
- real
- în timp real
- recomanda
- regulat
- legate de
- eliberaţi
- rămâne
- Resurse
- REZULTATE
- cu amănuntul
- revizuiască
- Rol
- rădăcină
- Alerga
- funcţionare
- scalabil
- secțiuni
- securitate
- trimitere
- senior
- serie
- serviciu
- sesiune
- set
- să
- simplu
- So
- Software
- soluţie
- unele
- Scânteie
- specific
- stivui
- standard
- Începe
- Pornire
- începe
- Pas
- paşi
- Stop
- depozitare
- magazine
- raționalizarea
- fluxuri
- subrețea
- Reușit
- astfel de
- sudo
- sistem
- sisteme
- Lua
- echipă
- Tehnologii
- de telecomunicaţii
- șablon
- acea
- Lor
- Acestea
- trei
- Prin
- timp
- Seria de timp
- la
- urmări
- declanşa
- utilizare
- valoare
- verificarea
- Vizualizare
- walkthrough
- Ceasuri
- Cale..
- care
- în timp ce
- voi
- cu
- fără
- Apartamente
- flux de lucru
- scris
- scris
- yaml
- ani
- Ta
- zephyrnet