Amazon EMR è un servizio di big data offerto da AWS per eseguire Apache Spark e altre applicazioni open source su AWS per creare pipeline di dati scalabili in modo conveniente. Il monitoraggio dei log generati dai lavori distribuiti sui cluster EMR è essenziale per aiutare a rilevare i problemi critici in tempo reale e identificare rapidamente le cause principali.
Inserendo quei log in Amazon Cloud Watch ti consente di centralizzare e guidare l'intelligence fruibile dai tuoi registri per affrontare i problemi operativi senza dover eseguire il provisioning dei server o gestire il software. Puoi iniziare immediatamente a scrivere query con aggregazioni, filtri ed espressioni regolari. Inoltre, puoi visualizzare i dati delle serie temporali, approfondire i singoli eventi di log ed esportare i risultati delle query nei dashboard di CloudWatch.
Per importare i log che vengono mantenuti nel file Cloud di calcolo elastico di Amazon (Amazon EC2) istanze di un cluster EMR in CloudWatch, puoi utilizzare il Agente CloudWatch. Ciò fornisce un modo semplice per eseguire il push dei log da un'istanza EC2 a CloudWatch.
L'agente CloudWatch è un pacchetto software che viene eseguito in modo autonomo e continuo sui tuoi server. Puoi installare e configurare l'agente CloudWatch per raccogliere i log di sistema e delle applicazioni da istanze EC2, host locali e applicazioni containerizzate. CloudWatch elabora e archivia i log raccolti dall'agente CloudWatch, il che contribuisce ulteriormente al monitoraggio delle prestazioni e dell'integrità dell'infrastruttura e delle applicazioni.
In questo post, creiamo un cluster EMR e centralizziamo i log dei passaggi EMR dei job in CloudWatch. Ciò semplificherà la gestione del cluster EMR, la risoluzione dei problemi e il monitoraggio delle prestazioni. Questa soluzione è particolarmente utile se desideri utilizzare CloudWatch per raccogliere e visualizzare log, parametri e dati sugli eventi in tempo reale, semplificando la manutenzione dell'infrastruttura e delle applicazioni.
Panoramica della soluzione
La soluzione presentata in questo post si basa su una configurazione specifica in cui il livello di concorrenza dei passaggi EMR è impostato su 1. Ciò significa che sul cluster viene eseguito solo un passaggio alla volta. È importante notare che se il livello di concorrenza del passaggio EMR è impostato su un valore maggiore di 1, la soluzione potrebbe non funzionare come previsto. Ti consigliamo vivamente di verificare il tuo Concorrenza di passaggi EMR configurazione prima di implementare la soluzione presentata in questo post.
Il diagramma seguente illustra l'architettura della soluzione.
Il flusso di lavoro include i seguenti passaggi:
- Gli utenti avviano un processo Apache Spark EMR, creando un passaggio nel cluster EMR. Utilizzando Apache Spark, il carico di lavoro viene distribuito tra i diversi nodi del cluster EMR.
- In ogni nodo (istanza EC2) del cluster, un agente CloudWatch controlla diverse directory di log, acquisendo nuove voci nei file di log e inviandole a CloudWatch.
- Gli utenti possono visualizzare i log dei passaggi accedendo ai diversi gruppi di log dalla console CloudWatch. I log delle fasi scritti da Amazon EMR sono i seguenti:
- controllore — Informazioni sull'elaborazione della fase. Se il passaggio non riesce durante il caricamento, puoi trovare la traccia dello stack in questo registro.
- stderr — Il canale di errore standard di Spark durante l'elaborazione del passaggio.
- stdout — Il canale di output standard di Spark mentre elabora il passaggio.
Forniamo un file AWS CloudFormazione modello in questo post come guida generale. Il modello mostra come configurare un agente CloudWatch su Amazon EMR per inviare i log Spark a CloudWatch. Puoi esaminarlo e personalizzarlo secondo necessità per includere le configurazioni di sicurezza di Amazon EMR. Come best practice, ti consigliamo di includere le configurazioni di sicurezza di Amazon EMR nel modello a crittografare i dati in transito.
È inoltre necessario essere consapevoli del fatto che alcune delle risorse distribuite da questo stack comportano dei costi quando rimangono in uso.
Nelle sezioni successive, seguiamo i seguenti passaggi:
- Crea e carica lo script di bootstrap in un file Servizio di archiviazione semplice Amazon (Amazon S3) secchio.
- Utilizza il modello CloudFormation per creare le seguenti risorse:
- Monitora i log Spark sulla console CloudWatch.
Prerequisiti
Questo post presuppone che tu abbia quanto segue:
Crea e carica lo script bootstrap in un bucket S3
Per ulteriori informazioni, vedere Caricamento di oggetti ed Installazione ed esecuzione dell'agente CloudWatch sui tuoi server.
Per creare e caricare lo script di bootstrap, completare i seguenti passaggi:
- Crea un file locale denominato
bootstrap_cloudwatch_agent.sh
con il seguente contenuto: - Sulla console Amazon S3, scegli il tuo bucket S3.
- Sulla Oggetti scheda, scegliere Caricare.
- Scegli Aggiungere file, quindi scegli lo script bootstrap.
- Scegli Caricare, quindi scegli il nome del file:
bootstrap_cloudwatch_agent.sh
. - Scegli Copia l'URI S3. Usiamo questo valore in un passaggio successivo.
Provisioning delle risorse con il modello CloudFormation
Scegli Avvia Stack per avviare uno stack CloudFormation nel tuo account e distribuire il modello:
Questo modello crea un ruolo IAM, un profilo dell'istanza IAM, un parametro Systems Manager e un cluster EMR. Il cluster avvia il Applicazione di esempio per la stima di Spark PI. Ti verranno addebitate le risorse AWS utilizzate se crei uno stack da questo modello.
La procedura guidata di CloudFormation ti chiederà di modificare o fornire questi parametri:
- Tipo di istanza - L' tipo di istanza per tutti i gruppi di istanze. L'impostazione predefinita è m4.xlarge.
- InstanceCountCore – Il numero di istanze nel gruppo di istanze principale. Il valore predefinito è 2.
- EMRReaseLabel - L' Etichetta di rilascio di Amazon EMR vuoi usare. L'impostazione predefinita è emr-6.9.0.
- BootstrapScriptPath – Il percorso S3 dello script di bootstrap dell'installazione dell'agente CloudWatch copiato in precedenza.
- subnet – La sottorete EC2 in cui viene avviato il cluster. Devi fornire questo parametro.
- EC2KeyPairNome – Una coppia di chiavi EC2 facoltativa per la connessione ai nodi del cluster, in alternativa a Session Manager.
Monitorare i flussi di log
Dopo che lo stack CloudFormation è stato distribuito correttamente, nella console CloudWatch, scegli Gruppi di log nel riquadro di navigazione. Quindi filtra i gruppi di log in base al prefisso /aws/emr/master
.
L'ID nel gruppo di log corrisponde all'ID istanza EC2 del nodo primario EMR. Se disponi di più cluster EMR, puoi utilizzare questo ID per identificare un particolare cluster EMR, in base all'ID del nodo primario.
Nel gruppo di log troverai i tre diversi flussi di log.
I flussi di log contengono le seguenti informazioni:
- step-stout – Il canale di output standard di Spark durante l'elaborazione del passaggio.
- passo-stderr – Il canale di errore standard di Spark durante l'elaborazione del passaggio.
- regolatore di passo – Informazioni sull'elaborazione della fase. Se il passaggio non riesce durante il caricamento, puoi trovare la traccia dello stack in questo registro.
ripulire
Per evitare addebiti futuri nel tuo account, elimina le risorse che hai creato in questa procedura dettagliata. Il cluster EMR verrà addebitato fintanto che il cluster è attivo, quindi interrompilo quando hai finito.
- Nella console di CloudFormation, nel riquadro di navigazione, scegli Stacks.
- Scegli lo stack che hai lanciato (
EMR-CloudWatch-Demo
), quindi scegliere Elimina. - Svuotare il secchio S3 hai creato.
- Elimina il bucket S3 hai creato.
Conclusione
Ora che hai completato i passaggi di questa procedura dettagliata, l'agente CloudWatch è in esecuzione sugli host del cluster ed è configurato per inviare i log dei passaggi EMR a CloudWatch. Con questa funzionalità, puoi monitorare in modo efficace lo stato e le prestazioni dei processi Spark in esecuzione su Amazon EMR, rilevando i problemi critici in tempo reale e identificando rapidamente le cause principali.
Puoi impacchettare e distribuire questa soluzione tramite un modello CloudFormation come questo modello di esempio, che crea il ruolo del profilo dell'istanza IAM, il parametro Systems Manager e il cluster EMR.
Per andare oltre, prendi in considerazione l'utilizzo di questi log negli allarmi di CloudWatch per gli avvisi su a log filtro metrica di gruppo. Potresti raccoglierli con altri allarmi in a allarme composito o configurare azioni di allarme come l'invio Servizio di notifica semplice Amazon (Amazon SNS) per attivare processi guidati da eventi come AWS Lambda funzioni.
L'autore
Ennio Pastore è Senior Data Architect nel team AWS Data Lab. È un appassionato di tutto ciò che riguarda le nuove tecnologie che hanno un impatto positivo sulle imprese e sul sostentamento in generale. Ennio ha oltre 10 anni di esperienza nell'analisi dei dati. Aiuta le aziende a definire e implementare piattaforme di dati in tutti i settori, come telecomunicazioni, banche, giochi, vendita al dettaglio e assicurazioni.
- Distribuzione di contenuti basati su SEO e PR. Ricevi amplificazione oggi.
- Platoblockchain. Web3 Metaverse Intelligence. Conoscenza amplificata. Accedi qui.
- Fonte: https://aws.amazon.com/blogs/big-data/push-amazon-emr-step-logs-from-amazon-ec2-instances-to-amazon-cloudwatch-logs/
- :È
- 1
- 10
- 100
- 9
- a
- Chi siamo
- Accedendo
- Il mio account
- operanti in
- azioni
- attivo
- aggiunta
- indirizzo
- Agente
- allarme
- avvisi
- Tutti
- alternativa
- Amazon
- Amazon EC2
- Amazon EMR
- analitica
- ed
- Apache
- Apache Spark
- Applicazioni
- applicazioni
- architettura
- SONO
- AS
- At
- autonomamente
- AWS
- Settore bancario
- basato
- BE
- prima
- iniziare
- MIGLIORE
- Big
- Big Data
- bootstrap
- costruire
- aziende
- by
- Materiale
- Catturare
- cause
- canale
- oneri
- Scegli
- Cluster
- raccogliere
- Aziende
- completamento di una
- Completato
- Calcolare
- Configurazione
- Collegamento
- Prendere in considerazione
- consolle
- contenuto
- continuamente
- Nucleo
- corrisponde
- costo effettivo
- Costi
- potuto
- creare
- creato
- crea
- Creazione
- critico
- personalizzare
- dati
- Dati Analytics
- Predefinito
- dimostra
- schierare
- schierato
- Distribuisce
- diverso
- directory
- distribuito
- giù
- guidare
- ogni
- In precedenza
- più facile
- eco
- in maniera efficace
- Abilita
- appassionato
- errore
- essential
- Etere (ETH)
- Evento
- eventi
- qualunque cosa
- esempio
- previsto
- esperienza
- export
- espressioni
- fallisce
- caratteristica
- Compila il
- File
- filtro
- filtri
- Trovare
- i seguenti
- segue
- Nel
- da
- funzioni
- ulteriormente
- futuro
- gaming
- Generale
- generato
- Go
- maggiore
- Gruppo
- Gruppo
- guida
- Avere
- Salute e benessere
- Aiuto
- utile
- aiuta
- vivamente
- padroni di casa
- Come
- Tutorial
- HTML
- http
- HTTPS
- IAM
- ID
- identificare
- identificazione
- Impact
- realizzare
- Implementazione
- importante
- in
- includere
- inclusi
- Compreso
- individuale
- industrie
- informazioni
- Infrastruttura
- install
- installazione
- esempio
- assicurazione
- Intelligence
- sicurezza
- IT
- Lavoro
- Offerte di lavoro
- jpg
- json
- laboratorio
- lanciare
- lanciato
- lancia
- Livello
- piace
- Caricamento in corso
- locale
- Lunghi
- manutenzione
- make
- gestire
- direttore
- modo
- si intende
- Metrica
- modificare
- Monitorare
- monitoraggio
- Scopri di più
- multiplo
- Nome
- Detto
- Navigazione
- di applicazione
- che necessitano di
- New
- Nuove tecnologie
- GENERAZIONE
- nodo
- nodi
- notifica
- notifiche
- numero
- of
- offerto
- on
- ONE
- open source
- operativa
- Altro
- produzione
- pacchetto
- vetro
- parametro
- parametri
- particolare
- particolarmente
- sentiero
- performance
- Piattaforme
- Platone
- Platone Data Intelligence
- PlatoneDati
- positivo
- Post
- pratica
- presentata
- primario
- i processi
- lavorazione
- Profilo
- fornire
- fornisce
- fornitura
- Spingi
- spingendo
- rapidamente
- di rose
- tempo reale
- raccomandare
- Basic
- relazionato
- rilasciare
- rimanere
- Risorse
- Risultati
- nello specifico retail
- recensioni
- Ruolo
- radice
- Correre
- running
- scalabile
- sezioni
- problemi di
- invio
- anziano
- Serie
- servizio
- Sessione
- set
- dovrebbero
- Un'espansione
- So
- Software
- soluzione
- alcuni
- Scintilla
- specifico
- pila
- Standard
- inizia a
- Di partenza
- inizio
- step
- Passi
- Fermare
- conservazione
- negozi
- razionalizzazione
- flussi
- sottorete
- Con successo
- tale
- sudo
- sistema
- SISTEMI DI TRATTAMENTO
- Fai
- team
- Tecnologie
- telecomunicazioni
- modello
- che
- I
- Li
- Strumenti Bowman per analizzare le seguenti finiture:
- tre
- Attraverso
- tempo
- Serie storiche
- a
- tracciare
- innescare
- uso
- APPREZZIAMO
- verifica
- Visualizza
- walkthrough
- orologi
- Modo..
- quale
- while
- volere
- con
- senza
- Lavora
- flusso di lavoro
- scrittura
- scritto
- YAML
- anni
- Trasferimento da aeroporto a Sharm
- zefiro