You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取AWS EMR集群中Spark作业的标准输出(stdout)

获取AWS EMR上Spark作业的标准输出(stdout)

以下是几种实用方法来获取你提交的Spark作业的标准输出:

方法一:通过EMR控制台查看

  • 登录AWS管理控制台,进入EMR服务页面
  • 找到目标集群,点击进入集群详情页
  • 切换到步骤标签页,定位到你提交的Spark作业步骤
  • 点击步骤右侧的查看日志,在跳转的日志页面中,找到对应Spark Driver的日志文件,其中包含作业的标准输出内容(通常在命名含stdout的日志文件内)

方法二:使用AWS CLI命令获取

  1. 获取目标作业的步骤ID:

    aws emr list-steps --cluster-id ${CLUSTERID}
    

    从返回的JSON结果中提取对应作业的StepId。

  2. 查询步骤的日志存储路径:

    aws emr describe-step --cluster-id ${CLUSTERID} --step-id ${STEPID}
    

    在返回结果的Step.Status.Details.LogFilePrefix字段中,可获取日志的S3存储路径。

  3. 从S3下载或查看stdout日志:
    假设日志路径为s3://your-emr-logs/cluster-id/steps/step-id/,执行以下命令下载对应stdout文件:

    aws s3 cp s3://your-emr-logs/cluster-id/steps/step-id/containers/application_xxxxxx_xxxx/container_xxxxxx_xxxx_xx_xxxxx/stdout ./stdout.log
    

方法三:提交任务时配置自定义日志路径

在提交Spark任务的Args参数中添加配置,将Driver的标准输出定向到指定S3路径:

aws emr add-steps --cluster-id ${CLUSTERID} \
--output json \
--steps Type=spark,Name=${JOB_NAME},Args=[--deploy-mode,cluster,--master,yarn,--conf,spark.yarn.submit.waitAppCompletion=true,--conf,spark.eventLog.enabled=true,--num-executors,1,--executor-cores,1,--executor-memory,2g,--conf,spark.eventLog.dir=${LOG_DIR},--conf,spark.driver.log.dfsDir=s3://your-custom-bucket/spark-driver-logs/,s3://bucket/${FILE_NAME},s3://bucket/${FILE_NAME}],ActionOnFailure=CONTINUE 

后续可直接在指定的S3路径下找到Driver的stdout日志文件。

内容的提问来源于stack exchange,提问作者ndemir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 03:23:24