spark源码远程调试开发
2017-12-11 18:17
197 查看
对于spark源码和spark执行过程有兴趣的同学,可以搭建一个spark的源码调试环境,来调试远程spark源码执行过程。
由于spark启动都是通过脚本设置一些环境变量执行指定类来启动的,所以在ide里面不能直接调试,需要预先启动一个spark执行代码,然后通过本地的代码进行远程调试。
maven 3.3(可以将maven的镜像地址设置成国内的,不然编译很久或编译不成功)
jdk 1.8
spark 2.x
scala 2.11
编译好之后,在idea里面导入spark源码
首先启动spark-sql,在后面添加上远程调试的参数
dt_socket:使用的通信方式
server:是主动连接调试器还是作为服务器等待调试器连接
suspend:是否在启动JVM时就暂停,并等待调试器连接
address:地址和端口,地址可以省略,两者用冒号分隔
启动thriftservier后,日志里面显示这样一条记录,就表示客户端可以远程进行源码调试
在idea里面创建一个远程调试客户端,并设置源码进行调试。
点击OK,创建好远程调试客户端。
如下图点击debug,运行。
控制台显示已经连接到远程调试服务
打开PaseDriver并在如图所在行设置断点。
这个类相当于hive的driver类,负责编译sql语句和生成spark任务,在这里就可以查看sql语句是怎样转换成一步步的spark rdd转换。
到这里,用beeline连接thriftserver,并直接一个sql语句,如”show tables”
执行完之后,beeline的命令行就会挂起,这时在idea里面就可以调试执行过程了。
http://blog.csdn.net/dante_003/article/details/78657689
http://blog.csdn.net/dante_003/article/details/78652534
由于spark启动都是通过脚本设置一些环境变量执行指定类来启动的,所以在ide里面不能直接调试,需要预先启动一个spark执行代码,然后通过本地的代码进行远程调试。
1.环境
idea 2017maven 3.3(可以将maven的镜像地址设置成国内的,不然编译很久或编译不成功)
jdk 1.8
spark 2.x
scala 2.11
2.下载源码并编译
spark源码导入ide之前要先编译,编译的时候要用到build包里面的脚本,由于脚本是shell,故在windows编译不了,可以在linux上编译好之后放到windows上。git clone https://github.com/apache/spark.git cd spark #切换到2.2版本 git checkout branch-2.2 ./build/mvn -DskipTests clean package
编译好之后,在idea里面导入spark源码
3.在ide里面调试
这里以调试spark-sql为例。首先启动spark-sql,在后面添加上远程调试的参数
sbin/start-thriftserver.sh --driver-java-options "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=10080"
dt_socket:使用的通信方式
server:是主动连接调试器还是作为服务器等待调试器连接
suspend:是否在启动JVM时就暂停,并等待调试器连接
address:地址和端口,地址可以省略,两者用冒号分隔
启动thriftservier后,日志里面显示这样一条记录,就表示客户端可以远程进行源码调试
在idea里面创建一个远程调试客户端,并设置源码进行调试。
点击OK,创建好远程调试客户端。
如下图点击debug,运行。
控制台显示已经连接到远程调试服务
打开PaseDriver并在如图所在行设置断点。
这个类相当于hive的driver类,负责编译sql语句和生成spark任务,在这里就可以查看sql语句是怎样转换成一步步的spark rdd转换。
到这里,用beeline连接thriftserver,并直接一个sql语句,如”show tables”
执行完之后,beeline的命令行就会挂起,这时在idea里面就可以调试执行过程了。
4.其它
例子里面的spark-sql相关可以参考http://blog.csdn.net/dante_003/article/details/78657689
http://blog.csdn.net/dante_003/article/details/78652534
相关文章推荐
- 搭建Spark源码研读和代码调试的开发环境
- 搭建Spark2.0源码研读和代码调试的开发环境
- spark关联源码及远程调试设置
- Spark作业代码(源码)IDE远程调试
- 远程调试spark源码(基于java的调试工具)
- Spark本地开发与远程调试环境搭建
- 在Visual Studio上开发Node.js程序(2)——远程调试及发布到Azure
- 如何使用Android Studio开发/调试Android源码
- Ubuntu和Mac使用gdbserver远程调试android源码
- 微信实验七、微信PHP开发调试技巧及源码下载
- 使用xshell+xmanager+pycharm搭建pytorch远程调试开发环境
- 使用PyCharm进行远程开发和调试
- 搭建openfire Android 客户端学习和开发【二】spark源码导入eclipse
- Spark远程调试IDE调试
- 如何使用Android Studio开发/调试Android源码
- VS 开发工具中的Remote Debug 功能远程调试程序经验分享
- linux 开发调试工具和windows下访问linux源码
- Spark 2.0从入门到精通:Scala编程、大数据开发、上百个实战案例、内核源码深度剖析(278讲全)
- 第一天:Java源码级实战速成(通过动手实战类、对象等,通过Spark和Hadoop案例代码和源码解析具体指知识的应用、深度详解匿名接口在Spark开发中的运用)
- 微信公众号开发系列教程一(调试环境部署续:vs远程调试)