本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用监控配置来监控 Spark Kubernetes 操作员和 Spark 作业
监控配置使您可以轻松地将 Spark 应用程序和操作员日志的日志存档设置为 Amazon S3 或 Amazon S3 Amazon CloudWatch。您可以选择一个或两个。这样做会将日志代理 sidecar 添加到你的 spark 操作员窗格、驱动程序和执行器容器中,然后将这些组件的日志转发到你配置的接收器。
先决条件
在配置监控之前,请务必完成以下设置任务:
(可选)如果您之前安装了旧版本的 Spark 运算符,请删除 SparkApplication/ScheduledSparkApplicationCRD。
kubectl delete crd scheduledsparkapplications.sparkoperator.k8s.io kubectl delete crd sparkapplications.sparkoperator.k8s.io
如果您还没有操作员/任务执行角色,请在 IAM 中创建该角色。
运行以下命令更新您刚刚创建的操作员/任务执行角色的信任策略:
aws emr-containers update-role-trust-policy \ --cluster-name
cluster
\ --namespacenamespace
\ --role-nameiam_role_name_for_operator/job_execution_role
将您的操作员/任务执行角色的 IAM 角色信任策略编辑为以下内容:
{ "Effect": "Allow", "Principal": { "Federated": "${OIDC-provider}" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringLike": { "OIDC_PROVIDER:sub": "system:serviceaccount:${Namespace}:emr-containers-sa-*" } } }
在 IAM 中创建具有以下权限的监控配置策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:DescribeLogStreams", "logs:CreateLogStream", "logs:CreateLogGroup", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:
region
:account_id
:log-group:log_group_name
", "arn:aws:logs:region
: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
/*" ] } ] }将上述策略附加到您的操作员/任务执行角色中。