Usar a configuração de monitoramento para monitorar o operador Spark Kubernetes e os trabalhos Spark - Amazon EMR

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Usar a configuração de monitoramento para monitorar o operador Spark Kubernetes e os trabalhos Spark

A configuração de monitoramento permite configurar facilmente o arquivamento de logs da sua aplicação Spark e logs do operador no Amazon S3 ou no Amazon CloudWatch. Você pode escolher um ou os dois. Isso adiciona um sidecar do agente de log ao seu pod do operador Spark, driver e pods executores e, subsequentemente, encaminha os logs desses componentes para seus coletores configurados.

Pré-requisitos

Antes de configurar o monitoramento, certifique-se de concluir as seguintes tarefas de configuração:

  1. (Opcional) Se você instalou anteriormente uma versão mais antiga do operador Spark, exclua o SparkApplicationScheduledSparkApplication/CRD.

    kubectl delete crd scheduledsparkapplications.sparkoperator.k8s.io kubectl delete crd sparkapplications.sparkoperator.k8s.io
  2. Crie uma função de operator/job execução no IAM se você ainda não tiver uma.

  3. Execute o comando a seguir para atualizar a política de confiança da função de operator/job execução que você acabou de criar:

    aws emr-containers update-role-trust-policy \ --cluster-name cluster \ --namespace namespace \ --role-name iam_role_name_for_operator/job_execution_role
  4. Edite a política de confiança da função do IAM da sua função de operator/job execução da seguinte forma:

    { "Effect": "Allow", "Principal": { "Federated": "${OIDC-provider}" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringLike": { "OIDC_PROVIDER:sub": "system:serviceaccount:${Namespace}:emr-containers-sa-*" } } }
  5. Crie uma política monitoringConfiguration no IAM com as seguintes permissões:

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:DescribeLogStreams", "logs:CreateLogStream", "logs:CreateLogGroup", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:*:*:log-group:log_group_name", "arn:aws:logs:*:*:log-group:log_group_name:*" ], "Sid": "AllowLOGSDescribelogstreams" }, { "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "*" ], "Sid": "AllowLOGSDescribeloggroups" }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::bucket_name", "arn:aws:s3:::bucket_name/*" ], "Sid": "AllowS3Putobject" } ] }
  6. Anexe a política acima à sua função operator/job de execução.