Monitora i parametri di Spark con Amazon Managed Service for Prometheus - Amazon EMR

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 i parametri di Spark con Amazon Managed Service for Prometheus

Con le EMR versioni 7.1.0 e successive di Amazon, puoi integrare EMR Serverless con Amazon Managed Service for Prometheus per raccogliere i parametri di Apache Spark per lavori e applicazioni Serverless. EMR Questa integrazione è disponibile quando invii un lavoro o crei un'applicazione utilizzando la console, Serverless o. AWS EMR API AWS CLI

Prerequisiti

Prima di poter fornire i parametri Spark ad Amazon Managed Service for Prometheus, devi completare i seguenti prerequisiti.

  • Crea un'area di lavoro Amazon Managed Service per Prometheus. Questo Workspace funge da endpoint di acquisizione. Prendi nota di quanto URL visualizzato per Endpoint: scrittura remota. URL Dovrai specificare URL quando crei l'applicazione EMR Serverless.

  • Per concedere l'accesso delle tue offerte di lavoro ad Amazon Managed Service for Prometheus a scopo di monitoraggio, aggiungi la seguente politica al tuo ruolo di esecuzione del lavoro.

    { "Sid": "AccessToPrometheus", "Effect": "Allow", "Action": ["aps:RemoteWrite"], "Resource": "arn:aws:aps:<AWS_REGION>:<AWS_ACCOUNT_ID>:workspace/<WORKSPACE_ID>" }

Installazione

Per utilizzare la AWS console per creare un'applicazione integrata con Amazon Managed Service for Prometheus
  1. Vedi Guida introduttiva ad Amazon EMR Serverless per creare un'applicazione.

  2. Durante la creazione di un'applicazione, scegli Usa impostazioni personalizzate, quindi configura l'applicazione specificando le informazioni nei campi che desideri configurare.

  3. In Application logs and metrics, scegli Deliver engine metrics to Amazon Managed Service for Prometheus, quindi specifica la scrittura remota. URL

  4. Specificate le altre impostazioni di configurazione desiderate, quindi scegliete Crea e avvia l'applicazione.

Utilizzate AWS CLI o EMR Serverless API

Puoi anche usare AWS CLI o EMR Serverless API per integrare la tua applicazione EMR Serverless con Amazon Managed Service for Prometheus quando esegui i comandi o. create-application start-job-run

create-application
aws emr-serverless create-application \ --release-label emr-7.1.0 \ --type "SPARK" \ --monitoring-configuration '{ "prometheusMonitoringConfiguration": { "remoteWriteUrl": "https://aps-workspaces.<AWS_REGION>.amazonaws.com/workspaces/<WORKSPACE_ID>/api/v1/remote_write" } }'
start-job-run
aws emr-serverless start-job-run \ --application-id <APPPLICATION_ID> \ --execution-role-arn <JOB_EXECUTION_ROLE> \ --job-driver '{ "sparkSubmit": { "entryPoint": "local:///usr/lib/spark/examples/src/main/python/pi.py", "entryPointArguments": ["10000"], "sparkSubmitParameters": "--conf spark.dynamicAllocation.maxExecutors=10" } }' \ --configuration-overrides '{ "monitoringConfiguration": { "prometheusMonitoringConfiguration": { "remoteWriteUrl": "https://aps-workspaces.<AWS_REGION>.amazonaws.com/workspaces/<WORKSPACE_ID>/api/v1/remote_write" } } }'

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 remoteWriteUrl per Amazon Managed Service for Prometheus. Puoi quindi utilizzare le metriche Spark in Amazon Managed Service for Prometheus per la visualizzazione, gli avvisi e l'analisi.

Proprietà di configurazione avanzate

EMRServerless utilizza un componente all'interno di Spark denominato PrometheusServlet per raccogliere i parametri Spark e traduce 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 del driver e dell'esecutore quando invii un lavoro utilizzando. PrometheusMonitoringConfiguration

La tabella seguente descrive tutte le proprietà che puoi configurare quando invii un job Spark che invia metriche ad Amazon Managed Service for Prometheus.

Proprietà Spark Valore predefinito Descrizione
spark.metrics.conf.*.sink.prometheusServlet.class

org.apache.spark.metrics.sink. PrometheusServlet

La classe utilizzata da Spark per inviare metriche ad Amazon Managed Service for Prometheus. Per ignorare 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 JVM delle metriche, disabilita questa proprietà impostandola su una stringa vuota, ad esempio. "" Per ignorare il comportamento predefinito, specificate la vostra classe personalizzata.

spark.metrics.conf.driver.sink.prometheusServlet.path

/metrics/prometheus

La distinzione URL che Amazon Managed Service for Prometheus utilizza per raccogliere le metriche dal driver. Per ignorare il comportamento predefinito, specifica il tuo percorso. Per interrompere la raccolta delle metriche dei driver, disattivate questa proprietà impostandola su una stringa vuota, ad esempio. ""

spark.metrics.conf.executor.sink.prometheusServlet.path

/metrics/executor/prometheus

La distinzione URL che Amazon Managed Service for Prometheus utilizza per raccogliere i parametri dall'esecutore. Per ignorare il comportamento predefinito, specifica il tuo percorso. Per interrompere la raccolta delle metriche degli esecutori, disabilitate questa proprietà impostandola su una stringa vuota, ad esempio. ""

Per ulteriori informazioni sulle metriche Spark, consulta Metriche di Apache Spark.

Considerazioni e limitazioni

Quando utilizzi Amazon Managed Service for Prometheus per raccogliere metriche EMR da Serverless, considera le seguenti considerazioni e limitazioni.

  • Il supporto per l'utilizzo di Amazon Managed Service for Prometheus EMR con Serverless è disponibile solo nei paesi in cui Regioni AWS Amazon Managed Service for Prometheus è generalmente disponibile.

  • Far sì che l'agente raccolga i parametri Spark su Amazon Managed Service for Prometheus richiede più risorse da parte dei lavoratori. Se scegli un lavoratore di dimensioni inferiori, ad esempio uno v CPU worker, il tempo di esecuzione del lavoro potrebbe aumentare.

  • Il supporto per l'utilizzo di Amazon Managed Service for Prometheus EMR con Serverless è disponibile solo per EMR le versioni di Amazon 7.1.0 e successive.

  • Amazon Managed Service for Prometheus deve essere distribuito nello stesso account su cui EMR esegui Serverless per raccogliere i parametri.