C#編程-48:文本控件復習筆記_彭世瑜_新浪博客
996
2025-04-01
在Windows-idea調試Spark的 Master、Worker、Executor、Application、Shell、SQL進程
軟件
說明
JDK8
Scala運行依賴jvm
Scala-2.11
Scala版本號選擇2.11
Spark-2.3
Spark版本號選擇2.3
Apache Maven 3.3.9
版本可選
IntelliJ idea社區版
官網可免費下載社區版
cygwin
編譯過程 ant 和sh腳本需要linux環境
該文檔依賴文檔【在Windows-IntelliJ IDEA啟動Spark Cluster、spark App、Spark shell和Spark sql.docx】,后續內容簡稱前文檔。
1???? Debug Master進程
閱讀前文檔,IDEA中配置好Master進程,點擊Debug按鈕,如下
2???? Debug Worker進程
閱讀前文檔,IDEA中配置好Worker進程,點擊Debug按鈕,如下
備注:debug模式下,worker進程最好只保持一個。
3???? Remote Debug Launcher進程
3.1? 閱讀spark-class2腳本,進程拉起的順序是org.apache.spark.launcher.Main-> org.apache.spark.deploy.SparkSubmit->
org.apache.spark.examples.JavaWordCount
腳本的調用順序是run-example -> spark-submit -> spark-class2
3.2??? 配置org.apache.spark.launcher.Main以debug方式拉起,編輯spark-class2.cmd,新增jvm啟動參數
-Xdebug Xrunjdwp:transport=dt_socket,address=2000,server=y,suspend=y
備注:注意suspend=y或者n的區別
如下圖
3.3??? IDEA Terminal提交app,命令是
run-example --master spark://localhost:7077 JavaWordCount "C:\Users\w00403095\Desktop\weizheng.txt"
如下圖
3.4??? 新增Remote debug,如下圖
備注:port需要和步驟3.2中的port保持一致
3.5??? 保存點擊debug按鈕,觸發了org.apache.spark.launcher.Main中的斷點,如下圖
4???? Remote Debug SparkSubmit/App進程
4.1??? JavaWordCount(spark app)是通過spark-submit腳本拉起,所以IDEA中只能以remote方式debug
4.2????? IDEA Terminal新增環境變量set SPARK_SUBMIT_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=2001,server=y,suspend=y
備注:注意suspend=y或者n的區別
如下圖
4.3??? 使用3.3步驟中的命令在上述Terminal中提交spark app,如下圖org.apache.spark.deploy.SparkSubmit主函數入口等待debug監聽
4.4??? 新增Remote debug,端口和4.2步驟中的環境變量SPARK_SUBMIT_OPTS保持一致, 如下圖
4.5??? 保存點擊debug按鈕,觸發了org.apache.spark.deploy.SparkSubmit中的斷點,如下圖
4.6??? 進一步深入debug,就觸發了org.apache.spark.examples.JavaWordCount的main函數入口,如下圖
SparkSubmit.scala主類 -> JavaWordCount.java主類的調用堆棧如下圖
5???? Remote Debug Executor進程
5.1??? Spark App提交后,Worker節點拉起Executor進程來做計算,IDEA只能以remote方式調試Executor進程。
5.2??? 配置Executor進程以debug模式啟動,$SPARK_PROJECT/conf/目錄下新增spark-defaults.conf文件,新增啟動參數spark.executor.extraJavaOptions,如下圖:
或者修改JavaWordCount.java新增java進程啟動參數,如下
備注:注意suspend=y或者n的區別
5.3??? 使用步驟3.3中的命令提交spark app,觀察worker console的日志輸出,發現worker節點debug模式啟動Executor進程,監聽端口8005,如下圖
5.4??? 新增Remote debug,端口和5.2步驟中的環境變量SPARK_SUBMIT_OPTS保持一致, 如下圖
5.5??? 保存點擊debug按鈕,觸發了org.apache.spark.executor.CoarseGrainedExecutorBackend中的斷點,如下圖
6???? Debug Spark shell
待補充
7???? Debug Spark sql
待補充
表格存儲服務 CloudTable Spark開發環境搭建
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。