2014-05-25 55 views
2

我試圖在本地構建Apache Spark。這樣做的原因是調試類似reduce的Spark方法。我特別感興趣的是Spark在執行和分發Map Reduce時遇到性能問題,我認爲從源代碼運行這些任務是找出問題的最佳方法。如何在本地構建和運行Scala Spark

所以我已經克隆了星火回購最新:

git clone https://github.com/apache/spark.git 

星火似乎是一個Maven項目,所以當我在Eclipse中創建在這裏的結構是:

enter image description here

一些頂級文件夾也有pom文件:

enter image description here

所以我應該只是建立這些子項目之一?這些正確的步驟是否針對本地代碼庫運行Spark?

+2

要查看Spark內部函數,只需要'core'。這應該讓你在那裏:http://syndeticlogic.net/?p=311順便說一下,SBT更好地讓Spark啓動並運行。我也建議你使用Intellij代替Eclipse。 – maasg

回答

11

大廈星火本地,簡單的答案:

git clone [email protected]:apache/spark.git 
cd spark 
sbt/sbt compile 

去詳細到你的問題,你實際上問的是「如何在Eclipse調試星火應用程序」。 要在Eclipse中進行調試,您並不需要在Eclipse中構建Spark。所有你需要的是用Spark lib依賴創建一個工作,並詢問Maven的「下載源」。這樣你可以使用Eclipse調試器來進入代碼。

然後,在創建Spark上下文時,使用sparkConfig。 local[1]爲主,如:

val conf = new SparkConf() 
     .setMaster("local[1]") 
     .setAppName("SparkDebugExample") 

讓所有Spark相互作用以本地模式在一個線程中執行,因此你的調試器可見。

如果您正在調查性能問題,請記住Spark是一個分佈式系統,其中網絡扮演着重要角色。在本地調試系統只會給你一部分答案。爲了全面瞭解您的工作的性能特徵,需要在實際羣集中監控作業。

+0

您能詳細說明您的意思嗎?「您所需要的只是使用Spark lib依賴項創建作業,並詢問Maven的」下載源「。」目前我有一個簡單的Spark應用程序,它類似於Apache Spark網站上的應用程序。我想從Eclipse內部運行它,然後遍歷代碼,以便我可以進入spark的實際核心實現,以瞭解Spark中某些特定事情的工作原理。 – AndroidDev93

相關問題