idea 远程调试sparck scala
一、添加远程同步目录(或者叫远程映射)
这里是远程目录显示
和我们集群上是一样的
=============================================================================
二、远程spark scala调试
1.打好包
2.扔到映射目录下
3.集群启动监听
在master /usr/local/src/spark-2.0.2-bin-hadoop2.6/sbin 目录下执行如下监听命令
(些处参数可以写到配置文件里的,今天没有验证,明天再说)
命令: spark-submit --class wordcount --master spark://master:7077 --driver-java-options "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8888" /root/hadoop/resys-1.0-SNAPSHOT.jar
--------------------------------------------------------------------------------------------------------------------------
/root/hadoop/resys-1.0-SNAPSHOT.jar 这是jar包全路劲
命令解释:
-Xdebug 启用调试特性
-Xrunjdwp 启用JDWP实现,包含若干子选项:
transport=dt_socket JPDA front-end和back-end之间的传输方法。dt_socket表示使用套接字传输。
address=8888 JVM在8888端口上监听请求,这个设定为一个不冲突的端口即可。
server=y y表示启动的JVM是被调试者。如果为n,则表示启动的JVM是调试器。
suspend=y y表示启动的JVM会暂停等待,直到调试器连接上才继续执行。suspend=n,则JVM不会暂停等待。
监听代码,然后shell进入监听等待
注意:一定要先集群启用监听了,才可以执行远程调试,不可以先调试再启动监听
按debug按钮调试----嘿嘿嘿
可以看到Connected to the target VM, address: '192.168.19.20:8888', transport: 'socket
试图与服务器连接
代码执行完,或者代码出错,会出现断连情况
Disconnected from the target VM, address: '192.168.19.20:8888', transport: 'socket'
远程调试后,shell端可以看到代码在跑了
end---------------------------------------------------------