Spark遠(yuǎn)程調(diào)試

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的方式啟動遠(yuǎn)端的worker
spark-daemon.sh start org.apache.spark.deploy.worker.Worker


MasterWorker是兩個Java進(jìn)程 他們啟動的時候會加載一些參數(shù) spark-env.sh這里邊的環(huán)境變量。

1.如何使用遠(yuǎn)程Master Debug

Master端的spark-env.sh文件中添加如下參數(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按鈕開始調(diào)試


2.如何使用遠(yuǎn)程Worker Debug

Worker所在節(jié)點的配置文件中添加一個環(huán)境變量

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

start-slave.sh spark://MasterIp:7077
執(zhí)行jps命令

2891 -- main class information unavailable
2923 Jps

用一個IDE工具連接 建立一個remote application
172.16.0.12 10001
在本地的代碼打斷點,debug按鈕開始調(diào)試


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

任務(wù)提交流程
spark-submit --class cn.itcast.spark.WordCount

bin/spark-clas -> org.apache.spark.deploy.SparkSubmit調(diào)用這個類的main方法

doRunMain方法中傳進(jìn)來一個自定義spark應(yīng)用程序的main方法class cn.itcast.spark.WordCount

通過反射拿到類的實例的引用mainClass = Utils.classForName(childMainClass)

在通過反射調(diào)用class cn.itcast.spark.WordCount的main方法

用一個IDE工具連接 建立一個remote application
172.16.0.13 10002
在本地的代碼打斷點,debug按鈕開始調(diào)試

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容