美文网首页
远程Debug Spark

远程Debug Spark

作者: zhouhaolong1 | 来源:发表于2017-09-23 13:59 被阅读115次

    目录:

    本文总结了怎么调试Spark的Master和Worker的源码,以及怎么调试自己的Spark程序

    <h2 id="master">Debug Master</h2>

    1. 修改Master所在节点的$SPARK_HOME/conf/spark-env.sh文件,在文件中添加如下内容,意思是在运行Master的时候挂起.

       #remote debug args
      
       export SPARK_MASTER_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"
      
    2. 启动Master

    - 执行 $SPARK_HOME/sbin/start-master.sh   
    
    - jps 看到master被挂起
    
        ![image.png](https://img.haomeiwen.com/i1950473/98885fd7a35ace6d.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
    
    1. 在IntelJ中创建一个Remote Application, 点击 Run -> Edit Configurations... -> + -> Remote -> 输入Name,Host,Port
      如下图:

      image.png
    2. 在IntellJ中Master的main方法打上断点

      • 双shift输入Master,注意选择和集群上版本一致的Spark,否者会连不上,并且会提示

          *Remote Debug Connected to the target VM, address: '192.168.33.21:5005', transport: 'socket'*   
        
        image.png
      • 找到main方法,打上断点

        image.png
    1. 选择运行Master,点击小虫子进行debug.

      image.png

    <h2 id="worker">Debug Worker</h2>

    1. 修改Worker所在节点的$SPARK_HOME/conf/spark-env.sh文件,在文件中添加如下内容,意思是在运行Worker的时候挂起.

       #remote debug args
      
       export SPARK_WORKER_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006"
      
    2. 启动Worker

      • 启动worker要加上Master的地址

          [hadoop@mini2 ~]$ $SPARK_HOME/sbin/start-slave.sh spark://mini1:7077
        
      • Worker会自动被挂起

    3. 在IntelJ中创建一个Remote Application,修改Name,Host,Port 如图:

      image.png
    4. 在IntellJ中Worker的main方法打上断点,注意选择和集群上版本一致的Spark

    5. 选择运行Worker,点击小虫子进行debug.

      image.png

    <h2 id="yourSparkApp">Debug YourSparkApp</h2>

    1. 提交任务之后,会自动监听端口

       [hadoop@mini1 ~]$ spark-submit --class cn.zhou.bigdata.SparkWrit2DB --master spark://mini1:7077 --driver-java-options "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5007" SparkLearning-1.0-SNAPSHOT.jar 
      
      image.png
    2. 创建一个Remote Application, 输入Name,Host,Port, 注意host是启动任务的节点的ip,port是提交任务时指定的5007

      image.png
    1. 打好断点,点击小虫子Debug

      image.png

    相关文章

      网友评论

          本文标题:远程Debug Spark

          本文链接:https://www.haomeiwen.com/subject/yydcextx.html