有没有办法调试在集群模式下运行的 Spark 应用程序? 我有一个已经成功运行了一段时间的程序,一次处理几百GB。 最近,由于执行程序断开连接,我有一些数据导致运行失败。 从我所读到的内容来看,这可能是内存问题。 我正在尝试确定导致触发内存问题的功能/操作。 我在 EMR 集群(使用 YARN(上使用 Spark,调试此问题的最佳方法是什么?
对于cluster mode
,您可以转到 YARN资源管理器UI 并选择特定正在运行的应用程序的跟踪UI(它指向YARN 节点管理器中应用程序主机上运行的spark driver
(,以打开Spark UI,这是用于调试 Spark 应用的核心开发人员界面。
对于client mode
,您还可以像前面提到的那样转到YARN RM UI,并通过此地址 =>http://[driverHostname]:4040
点击Spark UI,其中driverHostName是EMR
中的主节点,4040 是默认端口(可以更改(。
此外,您可以通过此默认地址 =>http://master-public-dns-name:18080/
通过Spark 历史记录服务器访问已提交和已完成的 Spark 应用
这些是Spark UI是您请求的主要工具包的基本资源。
https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-web-interfaces.html
https://jaceklaskowski.gitbooks.io/mastering-apache-spark/spark-webui.html