填充颜色无为什么还是绿色的,桌面背景颜色不是绿色的,也没有开护眼模式
838
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保持一致, 如下图
5.5 保存点击debug按钮,触发了org.apache.spark.executor.CoarseGrainedExecutorBackend中的断点,如下图
6 Debug Spark shell
待补充
7 Debug Spark sql
待补充
表格存储服务 CloudTable Spark开发环境搭建
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。