Utilizzo della configurazione di monitoraggio per monitorare l'operatore Spark Kubernetes e i job Spark - 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à.

Utilizzo della configurazione di monitoraggio per monitorare l'operatore Spark Kubernetes e i job Spark

La configurazione di monitoraggio consente di configurare facilmente l'archiviazione dei log dell'applicazione Spark e dei log degli operatori su Amazon S3 o su. Amazon CloudWatch Puoi sceglierne uno o entrambi. In questo modo viene aggiunto un sidecar log Agent ai pod Spark Operator, Driver ed Executor e successivamente inoltra i log di questi componenti ai sink configurati.

Prerequisiti

Prima di configurare il monitoraggio, assicurati di completare le seguenti attività di configurazione:

  1. (Facoltativo) Se in precedenza hai installato una versione precedente dell'operatore Spark, elimina il SparkApplicationScheduledSparkApplication/CRD.

    kubectl delete crd scheduledsparkapplications.sparkoperator.k8s.io kubectl delete crd sparkapplications.sparkoperator.k8s.io
  2. Crea un ruolo di operator/job esecuzione in IAM se non ne hai già uno.

  3. Esegui il comando seguente per aggiornare la politica di fiducia del ruolo di operator/job esecuzione che hai appena creato:

    aws emr-containers update-role-trust-policy \ --cluster-name cluster \ --namespace namespace \ --role-name iam_role_name_for_operator/job_execution_role
  4. Modifica la policy di fiducia dei ruoli IAM del tuo ruolo di operator/job esecuzione nel modo seguente:

    { "Effect": "Allow", "Principal": { "Federated": "${OIDC-provider}" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringLike": { "OIDC_PROVIDER:sub": "system:serviceaccount:${Namespace}:emr-containers-sa-*" } } }
  5. Crea una policy di MonitoringConfiguration in IAM con le seguenti autorizzazioni:

    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. Allega la politica di cui sopra al tuo ruolo di esecuzione operator/job .