首页 > 解决方案 > 如何在集群模式下从 spark submit 命令捕获标准输出日志

问题描述

我正在尝试在按日期分区的 s3 路径中捕获标准输出 spark 日志,并且想知道如何使用 spark submit 命令来执行此操作。火花提交每天运行,我想根据火花提交命令的执行日期创建分区。下面是我用来运行 pyspark 脚本的 spark submit 命令。

在当前流程中,我们创建了 amazon EMR 集群,在这些集群上我可以看到 Yarn 中的日志,但是一旦集群关闭或终止,我就会丢失日志。因此,我想将这些打印语句等重定向到 s3 路径。任何帮助都会很棒,因为我是新手。谢谢

spark-submit --master yarn --deploy-mode cluster --packages net.snowflake:snowflake-jdbc:3.12.6,net.snowflake:spark-snowflake_2.11:2.7.2-spark_2.4 --conf spark.speculation=false  --conf spark.yarn.appMasterEnv.PYSPARK_PYTHON=python3 --conf spark.yarn.appMasterEnv.PYSPARK_DRIVER_PYTHON=python3 --conf spark.blacklist.enabled=true  --conf spark.blacklist.timeout=1h  --conf spark.yarn.executor.memoryOverhead=4098m  --conf fs.s3n.multipart.uploads.enabled=true  --conf spark.sql.parquet.writeLegacyFormat=true abc.py -r s3a://blahblahblah -path s3a://bleeh bleeh -e dev -dt 2021-08-11 -f xyz 

注意:我确实看到了一个选项,我们可以通过包含 &> s3:/ 来重定向日志:/ 但是我想了解我们如何从 s3 路径中存储和读取关于我执行 spark 提交命令的运行日期的日志

标签: apache-sparkamazon-s3pysparkapache-spark-sqlamazon-emr

解决方案


推荐阅读