Spark远程调试IDE调试

1、JVM里面设置以下参数(在spark-env.sh中添加系统变量SPARK_JAVA_OPTS)

export SPARK_JAVA_OPTS=" -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=8888"
这里对上面的几个参数进行说明:
-agentlib:加载本地lib
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不会暂停等待。
2、启动调试代码(以本地调试为例)
./run-example org.apache.spark.examples.SparkPi
如果出现:Listening for transport dt_socket at address: 8888
表示Application等待连接
(现在测试了以下,可以进入调试的脚本为run-example/spark-submit/spark-shell)

3、在IntelliJ IDEA设置远程调试的IP和Port
  依次选择Run->Edit Configurations->点击左上角的+号->Remote->在弹出的页面里面将Host和Port两个选项设置为你Driver运行所在节点机器的IP和Port。
  设置完后,设置好程序的断点,然后再点击IDE上面的 Debug 按钮。
  这时候,程序会继续运行,而且在IDE里面会输出以下信息

1Connected to the target VM, address: 'localhost', transport: 'socket'

而且程序会跳到你设置断点的地方,你可以在你IDE的Dubegger


可以启动spark后用以下命令进行测试:

$SPARK_HOME/bin/spark-submit --master spark://localhost:7077 --class org.apache.spark.examples.SparkPi --total-executor-cores 2 --executor-memory 500m $SPARK_HOME/lib/spark-examples-1.5.0-hadoop2.3.0.jar 2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值