使用监控配置来监控 Spark Kubernetes 操作员和 Spark 作业 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用监控配置来监控 Spark Kubernetes 操作员和 Spark 作业

监控配置使您可以轻松地将 Spark 应用程序和操作员日志的日志存档设置为 Amazon S3 或 Amazon S3 Amazon CloudWatch。您可以选择一个或两个。这样做会将日志代理 sidecar 添加到你的 spark 操作员窗格、驱动程序和执行器容器中,然后将这些组件的日志转发到你配置的接收器。

先决条件

在配置监控之前,请务必完成以下设置任务:

  1. (可选)如果您之前安装了旧版本的 Spark 运算符,请删除 SparkApplication/ScheduledSparkApplicationCRD。

    kubectl delete crd scheduledsparkapplications.sparkoperator.k8s.io kubectl delete crd sparkapplications.sparkoperator.k8s.io
  2. 如果您还没有操作员/任务执行角色,请在 IAM 中创建该角色。

  3. 运行以下命令更新您刚刚创建的操作员/任务执行角色的信任策略:

    aws emr-containers update-role-trust-policy \ --cluster-name cluster \ --namespace namespace \ --role-name iam_role_name_for_operator/job_execution_role
  4. 将您的操作员/任务执行角色的 IAM 角色信任策略编辑为以下内容:

    { "Effect": "Allow", "Principal": { "Federated": "${OIDC-provider}" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringLike": { "OIDC_PROVIDER:sub": "system:serviceaccount:${Namespace}:emr-containers-sa-*" } } }
  5. 在 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/*" ] } ] }
  6. 将上述策略附加到您的操作员/任务执行角色中。