[英]How to read stderr logs from AWS logs
我正在使用 EMR 步骤来运行我的作业。 通常,当我想分析作业的性能或了解它失败的原因时,我会查看 Spark 历史服务器以获取 DAG 可视化和作业错误等。例如,如果作业由于堆错误或 Fetchfailed 而失败,等等,我可以在火花历史服务器中清楚地看到它。 但是,当我查看写入 LOG URI S3 存储桶的 stderr 日志文件时,我似乎无法找到此类描述。 有没有办法获得这样的信息? 我使用pyspark
并将日志级别设置为
sc = spark.sparkContext
sc.setLogLevel('DEBUG')
关于我做错了什么的任何见解?
我还没有真正对此进行过测试,但是由于评论有点长,所以我将其发布在这里作为答案。
正如我在评论中指出的那样,您使用 Spark History Server UI 查看的日志与从 EMR 保存到 S3 的Spark 驱动程序日志不同。
要将 spark 历史服务器日志写入 S3,您必须向集群添加一些额外的配置。 这些配置选项在 Spark 文档的监控和检测部分中进行了描述。
在 AWS EMR 中,您可以尝试将类似这样的内容添加到您的集群配置中:
...
{
'Classification': 'spark-defaults',
'Properties': {
'spark.eventLog.dir': 's3a://your_bucket/spark_logs',
'spark.history.fs.logDirectory': 's3a://your_bucket/spark_logs',
'spark.eventLog.enabled': 'true'
}
}
...
我发现这篇有趣的帖子描述了如何为 Kubernetes 集群设置它,您可能需要查看它以获取更多详细信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.