Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Monitoramento de métricas do Spark com o Amazon Managed Service para Prometheus - Amazon EMR

Monitoramento de métricas do Spark com o Amazon Managed Service para Prometheus

Com as versões 7.1.0 e posteriores do Amazon EMR, você pode integrar o EMR Sem Servidor ao Amazon Managed Service for Prometheus para coletar métricas do Apache Spark para trabalhos e aplicações do EMR Sem Servidor. Essa integração está disponível ao enviar um trabalho ou criar uma aplicação usando o console da AWS, a API do EMR Sem Servidor ou a AWS CLI.

Pré-requisitos

Antes de fornecer as métricas do Spark para o Amazon Managed Service for Prometheus, será necessário concluir os pré-requisitos a seguir.

  • Crie um Workspace do Amazon Managed Service para Prometheus. Este Workspace serve como um endpoint de ingestão. Anote o URL exibido em Endpoint: URL de gravação remota. Você precisará especificar o URL ao criar sua aplicação do EMR Sem Servidor.

  • Para conceder acesso aos seus trabalhos ao Amazon Managed Service for Prometheus para fins de monitoramento, adicione a política a seguir ao perfil de execução de tarefas.

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

Configuração

Para usar o console da AWS para criar uma aplicação integrada ao Amazon Managed Service for Prometheus
  1. Consulte Getting started with Amazon EMR Serverless para criar uma aplicação.

  2. Ao criar uma aplicação, escolha Usar configurações personalizadas e, em seguida, configure-a especificando as informações nos campos que deseja configurar.

  3. Em Logs e métricas da aplicação, escolha Fornecer métricas do mecanismo ao Amazon Managed Service for Prometheus e, em seguida, especifique o URL de gravação remota.

  4. Especifique todas as outras configurações desejadas e escolha Criar e iniciar aplicação.

Uso da AWS CLI ou da API do EMR Sem Servidor

Você também pode usar a AWS CLI ou a API ou EMR Sem Servidor para integrar sua aplicação do EMR Sem Servidor ao Amazon Managed Service for Prometheus ao executar create-application ou os comandos 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" } } }'
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" } }'

Incluir prometheusMonitoringConfiguration no comando indica que o EMR Sem Servidor deve executar o trabalho do Spark com um agente que coleta as métricas do Spark e as grava no endpoint remoteWriteUrl para o Amazon Managed Service for Prometheus. Em seguida, você pode usar as métricas do Spark no Amazon Managed Service for Prometheus para exibição, alertas e análises.

Propriedades de configuração avançada

O EMR Sem Servidor usa um componente do Spark chamado PrometheusServlet para coletar métricas do Spark e traduzir dados de performance em dados compatíveis com o Amazon Managed Service for Prometheus. Por padrão, o EMR Sem Servidor define valores padrão no Spark e analisa as métricas do driver e do executor quando você envia um trabalho usando PrometheusMonitoringConfiguration.

A tabela a seguir descreve todas as propriedades que você pode configurar ao enviar um trabalho do Spark que envia métricas ao Amazon Managed Service for Prometheus.

Propriedade do Spark Valor padrão Descrição
spark.metrics.conf.*.sink.prometheusServlet.class

org.apache.spark.metrics.sink.PrometheusServlet

A classe que o Spark usa para enviar métricas ao Amazon Managed Service for Prometheus. Para substituir o comportamento padrão, especifique sua própria classe personalizada.

spark.metrics.conf.*.source.jvm.class

org.apache.spark.metrics.source.JvmSource

A classe que o Spark usa para coletar e enviar métricas cruciais da máquina virtual Java subjacente. Para parar de coletar métricas da JVM, desabilite essa propriedade definindo-a como uma string vazia, como "". Para substituir o comportamento padrão, especifique sua própria classe personalizada.

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

/metrics/prometheus

O URL distinto que o Amazon Managed Service for Prometheus usa para coletar métricas do driver. Para substituir o comportamento padrão, especifique seu próprio caminho. Para parar de coletar métricas do driver, desabilite essa propriedade definindo-a como uma string vazia, como "".

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

/metrics/executor/prometheus

O URL distinto que o Amazon Managed Service for Prometheus usa para coletar métricas do executor. Para substituir o comportamento padrão, especifique seu próprio caminho. Para parar de coletar métricas do executor, desabilite essa propriedade definindo-a como uma string vazia, como "".

Para obter mais informações sobre as métricas do Spark, consulte Apache Spark metrics.

Considerações e limitações

Ao usar o Amazon Managed Service for Prometheus para coletar métricas do EMR Sem Servidor, considere as informações e limitações a seguir.

  • O suporte para o uso do Amazon Managed Service for Prometheus com o EMR Sem Servidor está disponível somente nas Regiões da AWS onde o Amazon Managed Service for Prometheus encontra-se disponível ao público geral.

  • Executar o agente para coletar métricas do Spark no Amazon Managed Service para Prometheus exige mais recursos dos trabalhadores. Se você escolher um trabalhador menor, como um trabalhador de uma vCPU, o tempo de execução do trabalho poderá aumentar.

  • O suporte para o uso do Amazon Managed Service para Prometheus com o EMR Sem Servidor está disponível somente nas versões 7.1.0 e posteriores do Amazon EMR.

  • O Amazon Managed Service para Prometheus deve ser implantado na mesma conta em que você executa o EMR Sem Servidor para coletar métricas.

PrivacidadeTermos do sitePreferências de cookies
© 2024, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.