簡介
????由于spark有多種運行模式,遠(yuǎn)程調(diào)試的時候,雖然大體步驟相同,但是還是有小部分需要注意的地方际歼,這里記錄一下調(diào)試運行在spark on yarn模式下的程序。
環(huán)境準(zhǔn)備
????需要完好的Hadoop姑蓝,spark集群鹅心,以便于提交spark on yarn程序。我這里是基于CDH的環(huán)境
步驟
????1. 隨便寫個spark程序它掂,比如序列化一個集合巴帮,然后求和。然后使用maven打包虐秋,上傳至集群榕茧。可以先提交運行一次客给,確庇醚海可以運行成功
????2. 要讓遠(yuǎn)程的spark程序停下來。有兩種方式靶剑,一種需要修改配置文件蜻拨,個人不喜歡這種強侵入的做法池充,所以只用下面這種簡單的不用修改任何東西的方式
? ? 3. 在spark提交程序命令中加入?yún)?shù):--driver-java-options "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8787",其中端口可以自己隨便定義缎讼,別選常用的以免重復(fù)即可收夸。例如我的提交命令:spark-submit --class cn.spark.study.core.ParallelizeCollection --master yarn-cluster --num-executors 3 --executor-cores 2 --executor-memory 1G --driver-java-options "-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8787" /home/spark-study-scala-0.0.1-SNAPSHOT-jar-with-dependencies.jar
????4. 在IDEA中配置遠(yuǎn)程調(diào)試
????????①找到工具欄,點擊:RUN ?->?? Edit Configurations? ??
????????②添加配置
????????③輸入遠(yuǎn)程主機(jī)的地址和端口號(與命令腳本中的端口號要一致),應(yīng)用確定
????5. 然后在主面板上血崭,選擇自己剛剛添加的配置卧惜,然后點擊debug按鈕。