Windows-IDEA调试Spark的 Master、Worker、Executor、Application、Shell

网友投稿 771 2022-05-29

在Windows-idea调试Spark的 Master、Worker、Executor、Application、Shell、SQL进程

软件

说明

JDK8

Scala运行依赖jvm

Scala-2.11

Scala版本号选择2.11

Spark-2.3

Spark版本号选择2.3

Apache Maven 3.3.9

版本可选

IntelliJ IDEA社区版

官网可免费下载社区版

cygwin

编译过程 ant 和sh脚本需要linux环境

该文档依赖文档【在Windows-IntelliJ IDEA启动Spark Cluster、spark App、Spark shell和Spark sql.docx】,后续内容简称前文档。

1     Debug Master进程

阅读前文档,IDEA中配置好Master进程,点击Debug按钮,如下

2     Debug Worker进程

阅读前文档,IDEA中配置好Worker进程,点击Debug按钮,如下

备注:debug模式下,worker进程最好只保持一个。

3     Remote Debug Launcher进程

3.1  阅读spark-class2脚本,进程拉起的顺序是org.apache.spark.launcher.Main-> org.apache.spark.deploy.SparkSubmit->

org.apache.spark.examples.JavaWordCount

脚本的调用顺序是run-example -> spark-submit -> spark-class2

3.2    配置org.apache.spark.launcher.Main以debug方式拉起,编辑spark-class2.cmd,新增jvm启动参数

-Xdebug Xrunjdwp:transport=dt_socket,address=2000,server=y,suspend=y

备注:注意suspend=y或者n的区别

如下图

3.3    IDEA Terminal提交app,命令是

run-example --master spark://localhost:7077 JavaWordCount "C:\Users\w00403095\Desktop\weizheng.txt"

如下图

3.4    新增Remote debug,如下图

备注:port需要和步骤3.2中的port保持一致

3.5    保存点击debug按钮,触发了org.apache.spark.launcher.Main中的断点,如下图

4     Remote Debug SparkSubmit/App进程

4.1    JavaWordCount(spark app)是通过spark-submit脚本拉起,所以IDEA中只能以remote方式debug

4.2      IDEA Terminal新增环境变量set SPARK_SUBMIT_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=2001,server=y,suspend=y

备注:注意suspend=y或者n的区别

如下图

4.3    使用3.3步骤中的命令在上述Terminal中提交spark app,如下图org.apache.spark.deploy.SparkSubmit主函数入口等待debug监听

4.4    新增Remote debug,端口和4.2步骤中的环境变量SPARK_SUBMIT_OPTS保持一致, 如下图

4.5    保存点击debug按钮,触发了org.apache.spark.deploy.SparkSubmit中的断点,如下图

4.6    进一步深入debug,就触发了org.apache.spark.examples.JavaWordCount的main函数入口,如下图

SparkSubmit.scala主类 -> JavaWordCount.java主类的调用堆栈如下图

5     Remote Debug Executor进程

5.1    Spark App提交后,Worker节点拉起Executor进程来做计算,IDEA只能以remote方式调试Executor进程。

5.2    配置Executor进程以debug模式启动,$SPARK_PROJECT/conf/目录下新增spark-defaults.conf文件,新增启动参数spark.executor.extraJavaOptions,如下图:

或者修改JavaWordCount.java新增java进程启动参数,如下

备注:注意suspend=y或者n的区别

5.3    使用步骤3.3中的命令提交spark app,观察worker console的日志输出,发现worker节点debug模式启动Executor进程,监听端口8005,如下图

5.4    新增Remote debug,端口和5.2步骤中的环境变量SPARK_SUBMIT_OPTS保持一致, 如下图

在Windows-IDEA调试Spark的 Master、Worker、Executor、Application、Shell

5.5    保存点击debug按钮,触发了org.apache.spark.executor.CoarseGrainedExecutorBackend中的断点,如下图

6     Debug Spark shell

待补充

7     Debug Spark sql

待补充

表格存储服务 CloudTable Spark开发环境搭建

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Posix线程 它们那一大家子事儿,要觉得好你就收藏进被窝里慢慢看 (1)
下一篇:云脉远程办公系统为企业打造一个智能移动远程办公平台
相关文章