IDEA遠端調試Spark很簡單,大概分四步:
1、打包到master
将Spark項目打包後拷貝到master節點上,這裡用spark-examples.jar做下示例。
2、IDEA設定Remote連接配接
添加Remote:Menu -> Run -> Edit Configurations -> 選擇 + -> Remote。
修改伺服器IP,端口隻要沒有占用的就可以。
3、伺服器啟動Spark-Submit
或者,在conf/spark-env.sh添加環境變量:
4、IDEA中打斷點,開啟Debug
IDEA中,在要調試的類中打上斷點,運作Debug模式。
其他
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8888 jvm參數屬性說明: -Xdebug: 啟用調試特性 -Xrunjdwp:啟用JDWP實作,包含若幹子選項 transport=dt_socket:JPDA front-end和back-end之間的傳輸方法。dt_socket表示使用套接字傳輸 server=y:y表示啟動的JVM是被調試者。如果為n,則表示啟動的JVM是調試器 suspend=y:y表示啟動的JVM會暫停等待,直到調試器連接配接上才繼續執行。suspend=n,則JVM不會暫停等待 address=5005:JVM在5005端口上監聽請求,這個設定為一個不沖突的端口即可
問題
19/07/23 09:03:59 INFO client.StandaloneAppClient$ClientEndpoint: Connecting to master spark://hadoop-master:7077... 19/07/23 09:03:59 WARN client.StandaloneAppClient$ClientEndpoint: Failed to connect to master hadoop-master:7077 org.apache.spark.SparkException: Exception thrown in awaitResult: .... Caused by: java.net.ConnectException: 拒絕連接配接
出現無法連接配接,先檢查Spark是否啟動。