(转)断点调试spark程序

原文地址

简介

    由于spark有多种运行模式,远程调试的时候,虽然大体步骤相同,但是还是有小部分需要注意的地方,这里记录一下调试运行在spark on yarn模式下的程序。

环境准备

    需要完好的Hadoop,spark集群,以便于提交spark on yarn程序。我这里是基于CDH的环境

步骤

    1. 随便写个spark程序,比如序列化一个集合,然后求和。然后使用maven打包,上传至集群。可以先提交运行一次,确保可以运行成功

    2. 要让远程的spark程序停下来。有两种方式,一种需要修改配置文件,个人不喜欢这种强侵入的做法,所以只用下面这种简单的不用修改任何东西的方式

    3. 在spark提交程序命令中加入参数:--driver-java-options "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8787",其中端口可以自己随便定义,别选常用的以免重复即可。例如我的提交命令:spark-submit --class cn.spark.study.core.ParallelizeCollection --master yarn-cluster --num-executors 3 --executor-cores 2 --executor-memory 1G --driver-java-options "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8787" /home/spark-study-scala-0.0.1-SNAPSHOT-jar-with-dependencies.jar

    4. 在IDEA中配置远程调试

        ①找到工具栏,点击:RUN  ->   Edit Configurations    

        ②添加配置

(转)断点调试spark程序_第1张图片
添加配置

        ③输入远程主机的地址和端口号(与命令脚本中的端口号要一致),应用确定

(转)断点调试spark程序_第2张图片
具体配置

    5. 然后在主面板上,选择自己刚刚添加的配置,然后点击debug按钮。

(转)断点调试spark程序_第3张图片
开始debug

你可能感兴趣的:((转)断点调试spark程序)