Spark远程调试

作者: sparkle123 | 来源:发表于2018-04-18 17:05 被阅读0次

start-all.sh -> start-master.sh -> start-slaves.sh

1.Master启动的脚本
start-master.sh -> spark-daemon.sh start org.apache.spark.deploy.master.Master

2.Worer的启动过程
salves.sh -> 通过读取slaves, 通过ssh的方式启动远端的worker
spark-daemon.sh start org.apache.spark.deploy.worker.Worker


MasterWorker是两个Java进程 他们启动的时候会加载一些参数 spark-env.sh这里边的环境变量。

1.如何使用远程Master Debug

Master端的spark-env.sh文件中添加如下参数

export SPARK_MASTER_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=10000"

启动start-master.sh

jps
4828 -- main class information unavailable
4860 Jps

通过IDE 建立一个remote application
Master主机IP 10000
在本地的代码打断点,debug按钮开始调试


2.如何使用远程Worker Debug

Worker所在节点的配置文件中添加一个环境变量

export SPARK_WORKER_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=10001"

start-slave.sh spark://MasterIp:7077
执行jps命令

2891 -- main class information unavailable
2923 Jps

用一个IDE工具连接 建立一个remote application
172.16.0.12 10001
在本地的代码打断点,debug按钮开始调试


3.Debug App (--driver-java-options)

bin/spark-submit --class cn.itcast.spark.WC --master spark://node-1.itcast.cn:7077 --driver-java-options "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=10002" /root/bigdata-2.0.jar hdfs://node-1.itcast.cn:9000/words.txt hdfs://node-1.itcast.cn:9000/wordsout

任务提交流程
spark-submit --class cn.itcast.spark.WordCount

bin/spark-clas -> org.apache.spark.deploy.SparkSubmit调用这个类的main方法

doRunMain方法中传进来一个自定义spark应用程序的main方法class cn.itcast.spark.WordCount

通过反射拿到类的实例的引用mainClass = Utils.classForName(childMainClass)

在通过反射调用class cn.itcast.spark.WordCount的main方法

用一个IDE工具连接 建立一个remote application
172.16.0.13 10002
在本地的代码打断点,debug按钮开始调试

相关文章

网友评论

    本文标题:Spark远程调试

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