1 调试 1
1 SPARK-SHELL 程序调试 交互式本身可以认为是一种调试方式; 或根据Sparkshell 脚本,调试对应的入口Object
2 IDEA 程序调试 程序调试分本地调试和远程调试两种: 1
本地调试时,直接在 IDEA 里调试对应的类即可(根据启动该类的脚本进行模拟,模拟内容包括启动脚本中的环境变量设置等); 2
远程调试时,需要设置对应的Jav a 启动选项 OPTS(即 JVM 调试参数的设置),打开调试对象(要启动的类)对应的远程调试端口,然后在 IDEA 中,配置远程调试的设置,在设置中,指定远程对应的host 和 port,进行监听,设置完成后,启动该调试对象(根据调试对象启动脚本中对应的类,并尽可能模拟启动脚本,包括脚本中的环境变量设置等)的调试即可
如何打开远程调试,即 OPTS 如何设置,参考远程调试章节
说明:本文档里只写了一种方式,就是脚本启动时使用到的OPTS 环境变量,实际上,可以直接在脚本的jav a 执行代码前面,加上调试参数,这样的话,你启动时,不需要设置 OPTS,而只需要在某个节点上修改启动脚本,在 start-all
sh 的时候,就不会影响全部节点,而只会影响修改了脚本的节点
如修改了 Worker 的启动脚本时,只有该节点上的Worker 是打开了远程调试的
1 调试环境搭建 IDEA 调试环境需构建在 Spark 安装包部署 + Spark 源码的基础上
即,在调试机器上进行带 Spark 源码的Spark 安装包部署
可以同时作为Spark 客户端和 Spark 源码环境
2 远程调试 1
JVM 调试参数配置 远程调试时,结合JDWP(Java Debug Wire Protocol)进行,在JVM 进程启动前,添加相应的JAVA_OPTS,设置远程调试参数,比如: