gpt4 book ai didi

apache-spark - 如何在 Spark Standalone 上调试 Spark 应用程序?

转载 作者:行者123 更新时间:2023-12-02 00:23:33 28 4
gpt4 key购买 nike

我正在尝试使用主节点和多个工作节点在集群上调试 Spark 应用程序。我已经使用 Spark 独立集群管理器成功设置了主节点和工作节点。我下载了包含二进制文件的 Spark 文件夹,并使用以下命令来设置工作节点和主节点。这些命令是从 Spark 目录执行的。

启动master的命令

./sbin/start-master.sh

启动工作节点的命令

./bin/spark-class org.apache.spark.deploy.worker.Worker master-URL

提交申请命令

./sbin/spark-submit --class Application --master URL ~/app.jar

现在,我想了解当我提交应用程序时通过工作节点上的 Spark 源代码进行的控制流(我只想使用给定的使用 reduce() 的示例之一)。我假设我应该在 Eclipse 上设置 Spark。 Eclipse 设置 link Apache Spark 网站上的似乎已损坏。我希望获得有关设置 Spark 和 Eclipse 以在工作节点上单步执行 Spark 源代码的指导。

谢谢!

最佳答案

区分调试驱动程序和调试执行程序之一很重要。它们需要传递给 spark-submit

的不同选项

要调试驱动程序,您可以将以下内容添加到 spark-submit 命令中。然后将远程调试器设置为连接到启动驱动程序的节点。

--driver-java-options -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005

在此示例中指定了端口 5005,但如果该端口上已运行某些内容,您可能需要自定义该端口。

连接到执行器类似,将以下选项添加到您的 spark-submit 命令中。

--num-executors 1 --executor-cores 1 --conf "spark.executor.extraJavaOptions=-agentlib:jdwp=transport=dt_socket,server=n,address=wm1b0-8ab.yourcomputer.org:5005,suspend=n"

将该地址替换为您本地计算机的地址。 (最好测试一下您是否可以从 Spark 集群访问它)。

在这种情况下,以监听模式启动调试器,然后启动 Spark 程序并等待执行器附加到调试器。将执行程序的数量设置为 1 很重要,否则多个执行程序都会尝试连接到您的调试器,可能会导致问题。

这些示例适用于将 sparkMaster 设置为 yarn-client 的情况,尽管它们在 mesos 下运行时也可能有效。如果您使用yarn-cluster模式运行,您可能必须将驱动程序设置为附加到调试器,而不是将调试器附加到驱动程序,因为您不一定事先知道哪个节点驱动程序将被执行。

关于apache-spark - 如何在 Spark Standalone 上调试 Spark 应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29090745/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com