Stay hungry Stay foolish

Spark远程调试设置

Posted on By blue

通过配置,设置Spark远程配置,即集群在服务器上,IDE在本地,通过配置,在本地IDE,可以设置断点等,远程调试集群上的Spark程序。本文通过配置,对Spark的Master和Slave进行远程调试。

其实不仅是Spark,也适用于其他的在JVM中运行的程序。

1、修改集群上的JVM环境变量

修改conf/spark-env.sh文件,加上:

export SPARK_MASTER_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9191"

export SPARK_WORKER_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9192"

这句话相当于,打开JVM的远程调试特性。

2、重新启动集群,看到日志输出,

Listening for transport dt_socket at address: 9191

意思是端口在等待调试程序的连接。

3、本地启动IDE,连接端口

在IntelliJ中,点击”Run”—“Edit Configurations”,如下图,添加一个”Remote”,输入对应的IP和端口。

配置完成后,点击”Debug”按钮,即可开始调试远程程序。

参考:http://www.iteblog.com/archives/1192