Spark本地開發與遠端除錯環境搭建
先決條件
遠端除錯環境搭建過程詳述
-
開啟Intellij IDEA,File->New ->Project
-
選擇Scala,然後next
-
配置好JDK、Scala版本,填入專案名稱,然後Finish
4.匯入spark-assembly-1.5.0-hadoop2.4.0.jar
File->Prject Structure->Library
點”+”號->選擇JAVA
找到spark-1.5.0安裝目錄,選擇spark-assembly-1.5.0-hadoop2.4.0.jar,我的機器上jar包目錄為
/hadoopLearning/spark-1.5.0-bin-hadoop2.4/lib/spark-assembly-1.5.0-hadoop2.4.0.jar,然後Finish
最後點選“OK”完成匯入
5.關聯spark-1.5.0原始碼
在Extended Library中展開spark-assembly-1.5.0-hadoop2.4.0.jar
找到org->apache->spark
點開下面包中的任意原始檔,我在本機上選擇”SparkContext.class”檔案,預設情況下Intellij IDEA會為我們反編譯.class檔案,但原始碼裡面沒有註釋,可以選擇右上角的”Attach Sources”
選擇原始碼檔案目錄,我的機器上原始碼解壓在/hadoopLearning/spark-1.5.0目錄,完成後“OK”
完成後會提示根目錄
全部選擇後點擊“OK”,此時顯示的不是反編譯後的程式碼,而是關聯原始碼後的程式碼,你會發現多了很多註釋
至此原始碼閱讀環境構建完畢。
6.啟動spark-1.5.0叢集
[email protected]:/hadoopLearning/spark-1.5.0-bin-hadoop2.4/sbin# ./start-all.sh
7.修改spark-class指令碼
本機器上的spark-class指令碼位於/hadoopLearning/spark-1.5.0-bin-hadoop2.4/bin目錄
將指令碼中的內容
done < <("$RUNNER" -cp "$LAUNCH_CLASSPATH" org.apache.spark.launcher.Main "[email protected] ")
- 1
- 1
修改為
done < <("$RUNNER" -cp "$LAUNCH_CLASSPATH" org.apache.spark.launcher.Main $JAVA_OPTS "[email protected]")
- 1
- 1
然後在命令列中執行下列語句 export JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005"
- 建立用於測試的Spark應用程式
選擇專案中的src檔案,然後右鍵 New->Scala Class
然後選擇Object
命名為SparkWordCount,然後點選OK,輸入如下內容
import org.apache.spark.SparkContext._
import org.apache.spark.{SparkConf, SparkContext}
object SparkWordCount{
def main(args: Array[String]) {
if (args.length == 0) {
System.err.println("Usage: SparkWordCount <inputfile> <outputfile>")
System.exit(1)
}
val conf = new SparkConf().setAppName("SparkWordCount")
val sc = new SparkContext(conf)
val file=sc.textFile("file:///hadoopLearning/spark-1.5.1-bin-hadoop2.4/README.md")
val counts=file.flatMap(line=>line.split(" "))
.map(word=>(word,1))
.reduceByKey(_+_)
counts.saveAsTextFile("file:///hadoopLearning/spark-1.5.1-bin-hadoop2.4/countReslut.txt")
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
9 將Spark應用程式打包
選擇專案,File->Project Structure
選擇 Artifacts
點選“+”號,然後選擇”Jar”->”From modules with dependencies”
選擇SparkWordCount作為MainClass
Spark應用程式在執行是會自動載入spark-assembly-1.5.0-hadoop2.4.0.jar等jar包,為減少後期Jar包的體積,可以將spark-assembly-1.5.0-hadoop2.4.0.jar等jar包刪除,這樣打包時不會被打包進去。
完成後點選”OK”
再選擇”Build”->”Build Artifacts”
Action中選擇“Build”
編譯後在對應目錄中可以看到生成的jar包檔案,本機器上的目錄是:
/root/IdeaProjects/SparkRemoteDebugPeoject/out/artifacts/SparkRemoteDebugPeoject_jar
10 將程式碼利用spark-submit提交到叢集
root@sparkmaster:/hadoopLearning/spark-1.5.0-bin-hadoop2.4/bin# ./spark-submit --master spark://sparkmaster:7077 --class SparkWordCount --executor-memory 1g /root/IdeaProjects/SparkRemoteDebugPeoject/out/artifacts/SparkRemoteDebugPeoject_jar hdfs://ns1/README.md hdfs://ns1/SparkWordCountResult
//注意這一行語句
Listening for transport dt_socket at address: 5005
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
11 Intellij IDEA中配置遠端除錯
Run->Edit Configuration
找到Remote
點選”+“號,命名為Spark_Remote_Debug,其它配置預設,Intellij IDEA已為我們預設配置
完成後,點選OK
12 正式啟動遠端除錯
在原始碼中設定斷點,本例中選擇在SparkSubmit.scala檔案中設定斷點
然後按 F9
選擇Spark_Remote_Debug
Spark控制檯出現:Connected to the target VM, address: ‘localhost:5005’, transport: ‘socket’,如下圖
在Debugger上可以看到
程式在執行SparkSubmit原始碼中設定斷點處
至此,遠端除錯正式開始,請暢遊Spark原始碼吧
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005
引數說明:
-Xdebug 啟用除錯特性
-Xrunjdwp 啟用JDWP實現,包含若干子選項:
transport=dt_socket JPDA front-end和back-end之間的傳輸方法。dt_socket表示使用套接字傳輸。
address=5005 JVM在5005埠上監聽請求,這個設定為一個不衝突的埠即可。
server=y y表示啟動的JVM是被除錯者。如果為n,則表示啟動的JVM是偵錯程式。
suspend=y y表示啟動的JVM會暫停等待,直到偵錯程式連線上才繼續執行。suspend=n,則JVM不會暫停等待。
相關推薦
Spark本地開發與遠端除錯環境搭建
先決條件 遠端除錯環境搭建過程詳述 開啟Intellij IDEA,File->New ->Project 選擇Scala,然後next 配置好JDK、Scala版本,填入專案名稱,然後Finish 4.匯入spark-assembly-1.5.0
PhpStorm Xdebug遠端除錯環境搭建原理分析及問題排查
http://blog.nsfocus.net/phpstorm-xdebug-remote-debugging-troubleshooting/ 對於簡單的工程,直接print_r();exit()已經足夠,但是對於大型專案有時就有點力不從心,如果直接將apache部署在本地,phpstorm除錯
VS2008 遠端除錯環境搭建
VS2008 遠端除錯環境搭建 一、關鍵詞說明: 目標機:被除錯程式所執行的機器; 除錯機:執行VS2008除錯程式碼的機器; 二、遠端除錯環境搭建步驟如下: 1. 在目標機上安裝VS2008遠端偵錯程式; 在VS2008安裝盤中Remote Debugger 目錄下, 有
Spark本地開發環境搭建與遠端debug設定
快速看完《Spark大資料處理 技術、應用與效能優化》前四章後,對Spark有了一個初步的瞭解,終於踏出了第一步,現在需要在Spark叢集中做些測試例子,熟悉一下開發環境和開發的流程。本文主要總結了如何在本地使用Maven搭建開發環境以及如何進行遠端debug。由於採用的Spark是
Phpstorm+XAMPP+Xdebug搭建斷點除錯環境 搭建php除錯開發環境
開發環境 php整合工具:xampp v3.2.2 PHP Version: 7.2.11 PhpStorm:2017.3.4 一、下載安裝Xdebug軟體 可去官方網站下載 http://xdebug.org/ 注意下載的版本一定要與你本地的php版本一
Spark本地開發環境配置(windows/Intellij IDEA 篇)
前言 Intellij IDEA是一個蠻不錯的IDE,在java/scala領域深得人心。筆者之前使用的是Eclipse那一套開發環境,雖然也不錯,但忍不住好奇心的驅使,折騰了一下IDEA,將自己摸索過程總結一下,方便Spark愛好者參考。 1.配置前提 J
iOS開發之runtime(一):runtime除錯環境搭建
本系列部落格是本人的原始碼閱讀筆記,如果有iOS開發者在看runtime的,歡迎大家多多交流。為了方便討論,本人新建了一個微信群(iOS技術討論群),想要加入的,請新增本人微信:zhujinhui207407,【加我前請備註:ios 】,本人部落格http://www.kyson.cn 也在不停的更新中,歡迎
ESP8266與NodeMCU開發(一)環境搭建
這一章將描述ESP8266的效能與指標,以及開發環境的搭建。 ESP8266是2015年推出的一款Wifi模組,準確來說是集成了Wifi功能的MCU,拉低了目前的市場上Wifi模組價格,甚至一度突破
Kettle 外掛開發除錯環境搭建(上)
1. 下載原始碼 https://github.com/pentaho/pentaho-kettle/2. 下載kettle發行版本 http://community.pentaho.com/projects/data-integration/ (主要是為了獲取依賴的
嵌入式開發交叉除錯環境搭建
1. wget http://ftp.gnu.org/gnu/gdb/gdb-7.3.tar.bz2 2. tar -xvf tar -xvf gdb-7.3.tar.bz2 3. 接下來分2步,第一步編譯編譯gdb,這個不是宿主機上那個gdb,必須用如下方式編譯: #
windows下的基於Eclipse的STM32開發除錯環境搭建
這段時間在玩STM32,但官方庫的程式碼也確實是有點多,記憶力有點不太好了。突然就想起了以前用Eclipse的那個程式碼提示功能,谷歌了一段時間, (一)安裝編譯環境 1.下載和安裝JAVA虛擬機器 因為Eclipse是基於Java的,所以Linux下也可
Firefly-RK3288開發板Android編譯環境搭建開荒
android ubuntu 編譯環境 kernel firefly 開發板 入手了Firefly-RK3288的開發板,自己從零開始搭建編譯環境開荒第一步:安裝Ubuntu12.04,使用安裝盤安裝(安裝的過程就不詳寫了,下面貼圖) 安裝完後,更新ubuntu 第二步:從官網上下載
Spark筆記整理(三):Spark WC開發與應用部署
大數據 Spark [TOC] Spark WordCount開發 創建的是maven工程,使用的依賴如下: <dependency> <groupId>org.scala-lang</groupId> <artifactId>scal
最詳細的JavaWeb開發基礎之java環境搭建(Windows版)
images 第一步 tools -s inf cde 空格 window 打開 閱讀文本大概需要 3 分鐘。 首先歡迎大家來學習JavaWeb,在這裏會給你比較詳細的教程,從最基本的開始,循序漸進的深入。會讓初學者的你少踩很多坑(大實話),如果你已經掌握了Jav
最詳細的JavaWeb開發基礎之java環境搭建(Mac版)
windows UC 環境變量設置 喜歡 linux 系統 設置 限制 download 了解 閱讀文本大概需要 5 分鐘。 我之前分享過在 Windows 下面配置 Java 環境,這次給大家帶來的是 Mac 下面安裝配置 Java 環境。首先 Mac 系統已經帶有
Hyperledger Fabric 開發和運行環境搭建
root用戶 x86 doc googl 保存 username 新建 iyu out 一 環境配置 VirtualBox 5.1.12 Git 2.18.0 Go 1.10.3 Windows下設置GOPATH開發目錄 Vagrant 2.1.2 進入BIOS設置Virt
Spring原始碼分析——除錯環境搭建(可能是最省事的構建方法)
1. 依賴工具 idea git jdk 1.8 + Gradle 2. 獲取原始碼 從github https://github.com/spring-projects/spring-framework 上 Fork 出屬於自己的倉庫。如果懶得這麼做也可以
BIM開發------BIMServer伺服器(環境搭建)
1 前言 BIMServer版本:1.5.88 相關外掛版本:見2下載檔案部分 最近在學習一下BIMServer,首先第一步就是對BIMServer環境的安裝。 主要是兩種安裝和配置方法,一種是通過jar包直接進行執行來安裝,一種是通過war包,將其放置在tomcat目錄
Fluent使用UDF以及採用visual studio 開發編譯udf的環境搭建2
需要說明的是, fluent解釋或者編譯udf和在vs環境下除錯udf是兩件事情。 就我的理解,fluent解釋或者編譯會藉助vs的部分功能,這也是在vs下搭建環境的目的(包括新增路徑等等操作),然而根據前面的部落格可以知道,只是新增路徑,在vs環境下是不能built的,因為vs
Fluent使用UDF以及採用visual studio 開發編譯udf的環境搭建
已有的操作步驟 在Visual Studio中直接編譯Fluent的UDF的總結(序列)_硫酸亞銅_新浪部落格 http://blog.sina.com.cn/s/blog_14d64daa10102xqwk.html 在Visual Studio中直接編譯Fluent的UDF_硫酸亞銅