Spark的Master,Worker调试

xiaoxiao2021-02-27  143

start-all.sh -> start-master.sh  -> start-slaves.sh //Master启动的脚本 start-master.sh  -> spark-daemon.sh start org.apache.spark.deploy.master.Master //Worer的启动过程 salves.sh   ->  通过读取slaves 通过ssh的方式启动远端的worker spark-daemon.sh start org.apache.spark.deploy.worker.Worker Master和Worker是两个Java进程  他们启动的时候会加载一些参数 spark-env.sh这里边的环境变量 如何是使用远程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 172.16.0.11 10000 在本地的代码打断点 debug按钮开始调试 --------------------------------------------------------------------------------------------------------- 在Worker所在的配置文件中添加一个环境变量 export SPARK_WORKER_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=10001" start-slave.sh spark://node-1.itcast.cn:7077 执行jps命令 2891 -- main class information unavailable 2923 Jps 用一个IDE工具连接 建立一个remote application 172.16.0.12 10001 在本地的代码打断点 debug按钮开始调试 --------------------------------------------------------------------------------------------------------- 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按钮开始调试

在IDEA中,点击执行的按钮左侧下拉列表, 选择  edit  configuration, 点击“+”号, 选择remote, 添加 Name, Host, Port, 之后进入main 方法点击debug进行调试。

转载请注明原文地址: https://www.6miu.com/read-9375.html

最新回复(0)