2014-09-11 72 views
4

我在組裝Spark時遇到了問題,在我的機器上使用sbt。 在未分配額外內存的情況下嘗試程序集或者在垃圾收集器上運行或超時;在我嘗試過的不同時間,確切的問題有所不同。但是,任何通過Xmx或Xms修改分配內存的嘗試,以及是否給出更多或限制,都會因爲sbt不會將-Xmx或-Xms識別爲命令而失敗。sbt不會組裝Spark Spark

這裏是那種命令我一直在試圖的樣品(從火花源目錄):

sbt -Xmx2g assembly 

這裏是我已經接收到錯誤:

java.util.concurrent.ExecutionException:java.lang.OutOfMemoryError: GC overhead limit exceeded 
Use 'last' for the full log. 
Not a valid command: Xmx2g 
Not a valid project: Xmx2g 
Expected ':' (if selecting a configuration) 
Not a valid key: Xmx2g 
Xmx2g 
    ^

我我正在運行64位Java版本1.8.0_20。

回答

4

檢查文檔:Building Spark with Maven

設置Maven的內存使用

你需要配置Maven通過設置MAVEN_OPTS使用比平時更多的內存。我們建議進行以下設置:

出口MAVEN_OPTS = 「 - Xmx2g -XX:MaxPermSize參數= 512M -XX:ReservedCodeCacheSize =512米」

然後,你可以用它建立:

mvn -DskipTests package 
4

嘗試創建一個新的環境變量SBT_OPTS,值爲"-XX:MaxPermSize=1024m"。這應該給它所需的內存而不會產生你的錯誤。