idea遠(yuǎn)程調(diào)試spark的步驟講解
spark 遠(yuǎn)端調(diào)試
本地調(diào)試遠(yuǎn)端集群運(yùn)行的spark項(xiàng)目,當(dāng)spark項(xiàng)目在集群上報(bào)錯(cuò),但是本地又查不出問(wèn)題時(shí),最好的方式就是調(diào)試一步一步跟蹤代碼。但是在集群上的代碼又不能像本地一樣的調(diào)試。那么就試試這個(gè)調(diào)試方法吧。
遠(yuǎn)程調(diào)試spark其實(shí)就四步:
- * 第一步j(luò)ar包拷貝到集群master節(jié)點(diǎn)。
- * 第二步在 idea 中配置遠(yuǎn)程機(jī)器的IP 和調(diào)試端口號(hào)。
- * 第三步:?jiǎn)?dòng)遠(yuǎn)端的spark項(xiàng)目。
- * 第四步 啟動(dòng)idea 進(jìn)行調(diào)試。
首先
首先了解jvm一些參數(shù)屬性
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8888
這里對(duì)上面的幾個(gè)參數(shù)進(jìn)行說(shuō)明:
- -Xdebug 啟用調(diào)試特性
- -Xrunjdwp 啟用JDWP實(shí)現(xiàn),包含若干子選項(xiàng):
- transport=dt_socket JPDA front-end和back-end之間的傳輸方法。dt_socket表示使用套接字傳輸。
- address=8888 JVM在8888端口上監(jiān)聽(tīng)請(qǐng)求,這個(gè)設(shè)定為一個(gè)不沖突的端口即可。
- server=y y表示啟動(dòng)的JVM是被調(diào)試者。如果為n,則表示啟動(dòng)的JVM是調(diào)試器。
- suspend=y y表示啟動(dòng)的JVM會(huì)暫停等待,直到調(diào)試器連接上才繼續(xù)執(zhí)行。suspend=n,則JVM不會(huì)暫停等待。
第一步 將jar包拷貝到集群
將spark 項(xiàng)目打jar包, 將jar包放到集群master節(jié)點(diǎn)上;
第二步 配置idea
編輯idea配置:
點(diǎn)擊小三角,選擇:edit Configurations 如圖

添加一個(gè)remote 配置

配置遠(yuǎn)端地址和端口 (此處配置的是 遠(yuǎn)端master 節(jié)點(diǎn)的地址)

第三步 遠(yuǎn)端啟動(dòng)spark項(xiàng)目
在集群?jiǎn)?dòng)要調(diào)試的spark項(xiàng)目。命令如下:
/tmp/mySpark.jar 為你sprak 項(xiàng)目在集群master上的位置
spark-submit --class WordCount --master spark://192.168.100.xx:7077 --driver-java-options "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8888" /tmp/mySpark.jar
也可在conf/spark-env.sh這個(gè)文件最后加入(不過(guò)沒(méi)有進(jìn)行實(shí)際測(cè)試)
export SPARK_JAVA_OPTS+="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8888"
如圖進(jìn)入監(jiān)聽(tīng):

第四步 啟動(dòng)idea
啟動(dòng)idea 的debug 模式就會(huì)進(jìn)入斷點(diǎn)。

總結(jié)
以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請(qǐng)查看下面相關(guān)鏈接
相關(guān)文章
如何使用Idea中的 Deployment 實(shí)現(xiàn)打包自動(dòng)部署
這篇文章主要介紹了使用Idea中的 Deployment 實(shí)現(xiàn)打包自動(dòng)部署,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08
靈活控制任務(wù)執(zhí)行時(shí)間的Cron表達(dá)式范例
這篇文章主要為大家介紹了靈活控制任務(wù)執(zhí)行時(shí)間的Cron表達(dá)式范例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-10-10
java 中@Deprecated 注解的實(shí)例詳解
這篇文章主要介紹了java 中@Deprecated 注解的實(shí)例詳解的相關(guān)資料,這里對(duì)@Deprecated注解進(jìn)行了詳細(xì)介紹,希望能幫助到大家,需要的朋友可以參考下2017-08-08
MybatisPlus 不修改全局策略和字段注解如何將字段更新為null
這篇文章主要介紹了MybatisPlus 不修改全局策略和字段注解如何將字段更新為null,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04
IDEA Spring Boot 自動(dòng)化構(gòu)建+部署的實(shí)現(xiàn)
這篇文章主要介紹了IDEA Spring Boot 自動(dòng)化構(gòu)建+部署的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
Java中OkHttp 超時(shí)設(shè)置的實(shí)現(xiàn)
超時(shí)設(shè)置是網(wǎng)絡(luò)編程中不可忽視的一部分,本文就來(lái)介紹一下Java中OkHttp 超時(shí)設(shè)置的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06
java定時(shí)任務(wù)cron表達(dá)式每周執(zhí)行一次的坑及解決
這篇文章主要介紹了java定時(shí)任務(wù)cron表達(dá)式每周執(zhí)行一次的坑及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06
Spring Cloud 的 Hystrix.功能及實(shí)踐詳解
這篇文章主要介紹了Spring Cloud 的 Hystrix.功能及實(shí)踐詳解,Hystrix 具備服務(wù)降級(jí)、服務(wù)熔斷、線程和信號(hào)隔離、請(qǐng)求緩存、請(qǐng)求合并以及服務(wù)監(jiān)控等強(qiáng)大功能,需要的朋友可以參考下2019-07-07
java數(shù)據(jù)結(jié)構(gòu)和算法之馬踏棋盤算法
這篇文章主要為大家詳細(xì)介紹了java數(shù)據(jù)結(jié)構(gòu)和算法之馬踏棋盤算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02

