本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Spark 应用程序日志
您可以通过下列方式来定义此配置。
apiVersion: "sparkoperator.k8s.io/v1beta2" kind: SparkApplication metadata: name: spark-pi namespace:
namespace
spec: type: Scala mode: cluster imagePullPolicy: Always mainClass: org.apache.spark.examples.SparkPi mainApplicationFile: "local:///usr/lib/spark/examples/jars/spark-examples.jar" sparkVersion: "3.3.1" emrReleaseLabel:emr_release_label
executionRoleArn:job_execution_role_arn
restartPolicy: type: Never volumes: - name: "test-volume" hostPath: path: "/tmp" type: Directory driver: cores: 1 coreLimit: "1200m" memory: "512m" labels: version: 3.3.1 volumeMounts: - name: "test-volume" mountPath: "/tmp" executor: cores: 1 instances: 1 memory: "512m" labels: version: 3.3.1 volumeMounts: - name: "test-volume" mountPath: "/tmp" monitoringConfiguration: image: "log_agent_image
" s3MonitoringConfiguration: logUri: "S3_bucket_uri
" cloudWatchMonitoringConfiguration: logGroupName: "log_group_name
" logStreamNamePrefix: "log_stream_prefix
" sideCarResources: limits: cpuLimit: "500m" memoryLimit: "250Mi" containerLogRotationConfiguration: rotationSize: "2GB" maxFilesToKeep: "10"
以下是 “监控配置” 下的可用配置选项。
图片(可选)-日志代理图像网址。 emrReleaseLabel 如果未提供,将通过获取。
s3 MonitoringConfiguration — 将此选项设置为存档到 Amazon S3。
LogURI(必填)— 您要存储日志的 Amazon S3 存储桶路径。第一个示例显示未启用日志轮换:
s3://${
logUri
}/${APPLICATION NAME
}-${APPLICATION UID
}/${POD NAME
}/stdout.gz s3://${logUri
}/${APPLICATION NAME
}-${APPLICATION UID
}/${POD NAME
}/stderr.gz默认情况下,日志轮换处于启用状态。您可以使用旋转文件(索引递增)和当前文件(不带日期戳的文件)。
s3://${
logUri
}/${APPLICATION NAME
}-${APPLICATION UID
}/${POD NAME
}/stdout_YYYYMMDD_index.gz s3://${logUri
}/${APPLICATION NAME
}-${APPLICATION UID
}/${POD NAME
}/stderr_YYYYMMDD_index.gz
cloudWatchMonitoring配置-用于设置转发的配置密钥 Amazon CloudWatch。
logGroupName(必填)— 您要向其发送日志的 Cloudwatch 日志组的名称。如果该群组不存在,则会自动创建。
logStreamName前缀(可选)-您要向其发送日志的日志流的名称。默认值是空字符串。中的格式如下 CloudWatch 所示:
${
logStreamNamePrefix
}/${APPLICATION NAME
}-${APPLICATION UID
}/${POD NAME
}/stdout ${logStreamNamePrefix
}/${APPLICATION NAME
}-${APPLICATION UID
}/${POD NAME
}/stderr
sideCarResources(可选)— 用于在启动的 Fluentd sidecar 容器上设置资源限制的配置密钥。
MemoryLimit(可选)-内存限制。根据自身需求进行调整。默认值为 250Mi。
CPULimit — CPU 限制。根据自身需求进行调整。默认值为 500 米。
containerLogRotation配置(可选)-控制容器日志的轮换行为。该功能默认已启用。
rotationSiz e(必填)-指定日志轮换的文件大小。可行值的范围从 2KB 到 2GB 不等。rotationSize 参数的数字单位部分以整数形式传递。由于不支持十进制值,您可以指定 1.5GB 的轮换大小,例如值 1500MB。默认值为 2GB。
maxFilesToKee@@ p(必填)-指定轮换后要在容器中保留的最大文件数。最小值为 1。最大值为 50。默认值为 10。
配置 MonitoringConfiguration 后,您应该能够在 Amazon S3 存储桶或 CloudWatch 两者上查看您的 spark 应用程序驱动程序和执行器日志。对于 Amazon S3 存储桶,您需要等待 2 分钟才能刷新第一个日志文件。例如,在 Amazon S3 中,存储桶路径如下所示:
亚马逊 S3 > 存储桶 > Bucket name
> Spark application name - UUID
> Pod Name
> stderr.gz
或:
亚马逊 S3 > 存储桶 > Bucket name
> Spark application name - UUID
> Pod Name
> stdout.gz
在中 CloudWatch,路径如下所示:
CloudWatch> 日志组 > Log group name
> Pod name
/Spark application name - UUID
/stderr
或:
CloudWatch> 日志组 > Log group name
> Pod name
/Spark application name - UUID
/stdout