- 启动Intellij IDEA,打开spark源码项目,配置远程调试 Run->Edit Configuration

- 启动远程spark-sql
spark-sql --verbose --driver-java-options "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"
参数说明:
-Xdebug 启用调试特性
-Xrunjdwp 启用JDWP实现,包含若干子选项:
transport=dt_socket JPDA front-end和back-end之间的传输方法。dt_socket表示使用套接字传输。
address=5005 JVM在5005端口上监听请求,这个设定为一个不冲突的端口即可。
server=y y表示启动的JVM是被调试者。如果为n,则表示启动的JVM是调试器。
suspend=y y表示启动的JVM会暂停等待,直到调试器连接上才继续执行。suspend=n,则JVM不会暂停等待。
- 运行远程调试,RUN -> Debug ‘spark-sql’,在源码中设置断点

- 在远程spark-sql客户端输入SQL语句并运行
select count(name) cnt from student where age > 14;
- 在IDEA工具中可以单步调试,查看每一步的结果。