Usando a configuração de monitoramento para monitorar o operador do Spark Kubernetes e as tarefas do 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á.

Usando a configuração de monitoramento para monitorar o operador do Spark Kubernetes e as tarefas do Spark

A configuração de monitoramento permite que você configure facilmente o arquivamento de registros do seu aplicativo Spark e dos registros do operador no Amazon S3 ou no. Amazon CloudWatch Você pode escolher um ou ambos. Isso adiciona um sidecar do agente de log aos seus pods de operador, driver e executor do Spark e, posteriormente, encaminha os registros 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 de 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:us-east-1:account_id:log-group:log_group_name", "arn:aws:logs:us-east-1:account_id:log-group:log_group_name:*" ] }, { "Effect": "Allow", "Action": "logs:DescribeLogGroups", "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::bucket_name", "arn:aws:s3:::bucket_name/*" ] } ] }
  6. Anexe a política acima à sua função operator/job de execução.