【问题标题】:Determine where spark program is failing?确定 spark 程序在哪里失败?
【发布时间】:2019-09-17 14:13:42
【问题描述】:

是否可以调试在集群模式下运行的 Spark 应用程序?我有一个程序已经成功运行了一段时间,一次处理几百 GB。最近我有一些数据导致由于执行器断开连接而导致运行失败。根据我的阅读,这可能是内存问题。我正在尝试确定导致内存问题触发的功能/操作。我在 EMR 集群(使用 YARN)上使用 Spark,调试此问题的最佳方法是什么?

【问题讨论】:

  • 执行这条命令可以查看master节点中的yarn日志:yarn logs -applicationId <appId>

标签: apache-spark pyspark hadoop-yarn amazon-emr


【解决方案1】:

对于 cluster mode,您可以转到 YARN 资源管理器 UI 并为您正在运行的特定应用程序选择 Tracking UI(它指向正在运行的 spark driver YARN 节点管理器中的 Application Master)打开 Spark UI,这是调试 Spark 应用程序的核心开发人员界面。

对于client mode,您还可以像前面提到的那样转到YARN RM UI,并通过此地址点击Spark UI => http://[driverHostname]:4040 where driverHostName 是EMR 中的主节点,4040 是默认端口(可以更改)。

此外,您还可以通过 Spark History Server 通过此默认地址访问已提交和已完成的 Spark 应用程序 => http://master-public-dns-name:18080/

这些是 Spark UI 是满足您请求的主要工具包的基本资源。

https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-web-interfaces.html

https://jaceklaskowski.gitbooks.io/mastering-apache-spark/spark-webui.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-17
    • 1970-01-01
    • 2018-10-11
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 2016-10-07
    • 2019-08-14
    相关资源
    最近更新 更多