Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Monitora le metriche di Spark con Amazon Managed Service per Prometheus
Con le versioni 7.1.0 e successive di Amazon EMR, puoi integrare EMR Serverless con Amazon Managed Service for Prometheus per raccogliere i parametri di Apache Spark per i job e le applicazioni EMR Serverless. Questa integrazione è disponibile quando invii un lavoro o crei un'applicazione utilizzando la console, l'API EMR Serverless o il. AWS AWS CLI
Prerequisiti
Prima di poter fornire le tue metriche Spark ad Amazon Managed Service for Prometheus, completa i seguenti prerequisiti.
-
Crea uno spazio di lavoro Amazon Managed Service per Prometheus. Questo Workspace funge da endpoint di acquisizione. Prendi nota dell'URL visualizzato per Endpoint - Remote Write URL. Dovrai specificare l'URL quando crei l'applicazione EMR Serverless.
-
Per concedere l'accesso ai tuoi job ad Amazon Managed Service for Prometheus per scopi di monitoraggio, aggiungi la seguente policy al tuo ruolo di esecuzione dei job.
{ "Sid": "AccessToPrometheus", "Effect": "Allow", "Action": ["aps:RemoteWrite"], "Resource": "arn:aws:aps:<AWS_REGION>:<AWS_ACCOUNT_ID>:workspace/<WORKSPACE_ID>" }
Configurazione
Per utilizzare nuovamente il plugin AWS console per creare un'applicazione integrata con Amazon Managed Service for Prometheus
-
Consulta la sezione Guida introduttiva ad Amazon EMR Serverless per creare un'applicazione.
-
Mentre crei un'applicazione, scegli Usa impostazioni personalizzate, quindi configura l'applicazione specificando le informazioni nei campi che desideri configurare.
-
In Log e metriche delle applicazioni, scegli Invio delle metriche del motore ad Amazon Managed Service for Prometheus, quindi specifica l'URL di scrittura remota.
-
Specifica le altre impostazioni di configurazione che desideri, quindi scegli Crea e avvia l'applicazione.
Usa l'API Serverless AWS CLI o EMR
Puoi anche utilizzare l'API AWS CLI o EMR Serverless per integrare la tua applicazione EMR Serverless con Amazon Managed Service for Prometheus quando esegui i comandi o. create-application start-job-run
L'inclusione prometheusMonitoringConfiguration nel comando indica che EMR Serverless deve eseguire il job Spark con un agente che raccoglie le metriche Spark e le scrive sul tuo endpoint per Amazon Managed Service for Prometheus. remoteWriteUrl Puoi quindi utilizzare le metriche Spark in Amazon Managed Service for Prometheus per la visualizzazione, gli avvisi e l'analisi.
Proprietà di configurazione avanzate
EMR Serverless utilizza un componente all'interno di Spark denominato PrometheusServlet per raccogliere le metriche di Spark e tradurre i dati sulle prestazioni in dati compatibili con Amazon Managed Service for Prometheus. Per impostazione predefinita, EMR Serverless imposta i valori predefiniti in Spark e analizza le metriche dei driver e degli esecutori quando invii un lavoro utilizzando. PrometheusMonitoringConfiguration
La tabella seguente descrive tutte le proprietà configurate quando si invia un job Spark che invia metriche ad Amazon Managed Service for Prometheus.
| Proprietà Spark | Valore predefinito | Description |
|---|---|---|
spark.metrics.conf.*.sink.prometheusServlet.class |
org.apache.spark.metrics.sink. PrometheusServlet |
La classe utilizzata da Spark per inviare le metriche ad Amazon Managed Service for Prometheus. Per sovrascrivere il comportamento predefinito, specifica la tua classe personalizzata. |
spark.metrics.conf.*.source.jvm.class |
org.apache.spark.metrics.source. JvmSource |
La classe utilizzata da Spark per raccogliere e inviare metriche cruciali dalla macchina virtuale Java sottostante. Per interrompere la raccolta di metriche JVM, disabilita questa proprietà impostandola su una stringa vuota, ad esempio. |
spark.metrics.conf.driver.sink.prometheusServlet.path |
/metrics/prometheus |
L'URL distinto che Amazon Managed Service for Prometheus utilizza per raccogliere le metriche dal driver. Per sovrascrivere il comportamento predefinito, specifica il tuo percorso. Per interrompere la raccolta delle metriche dei driver, disabilita questa proprietà impostandola su una stringa vuota, ad esempio. |
spark.metrics.conf.executor.sink.prometheusServlet.path |
//prometheus metrics/executor |
L'URL distinto che Amazon Managed Service for Prometheus utilizza per raccogliere le metriche dall'esecutore. Per sovrascrivere il comportamento predefinito, specifica il tuo percorso. Per interrompere la raccolta delle metriche dell'esecutore, disabilita questa proprietà impostandola su una stringa vuota, ad esempio. |
Per ulteriori informazioni sulle metriche di Spark, consulta le metriche di Apache Spark. https://spark.apache.org/docs/latest/monitoring.html#metrics
Considerazioni e limitazioni
Quando utilizzi Amazon Managed Service for Prometheus per raccogliere metriche da EMR Serverless, considera le seguenti considerazioni e limitazioni.
-
Il supporto per l'utilizzo di Amazon Managed Service for Prometheus con EMR Serverless è disponibile solo laddove Amazon Managed Service for Prometheus è generalmente disponibile. Regioni AWS
-
L'esecuzione dell'agente per raccogliere le metriche Spark su Amazon Managed Service for Prometheus richiede più risorse da parte dei lavoratori. Se scegli una dimensione di lavoro inferiore, ad esempio un lavoratore vCPU, il tempo di esecuzione del lavoro potrebbe aumentare.
-
Il supporto per l'utilizzo di Amazon Managed Service for Prometheus con EMR Serverless è disponibile solo per le versioni di Amazon EMR 7.1.0 e successive.
-
Amazon Managed Service for Prometheus deve essere distribuito nello stesso account in cui si esegue EMR Serverless per raccogliere le metriche.