Spark構建時的常見問題 之 JVM 啓動失敗 (因操作系統未能提供足夠大小的內存)

問題:你會 在屏幕上看到如下字樣

# Native memory allocation (malloc) failed to allocate 1431699456 bytes for committing reserved memory. "

原因很簡單: Spark1.0.0構建過程在啓動JVM的時候用的參數太大: -Xms2048m -Xmx2048m。筆者的環境只有1G內存(其實開始是256M, 當時以爲是內存確實太小,所以,又花了100多塊升級到1G,結果還是不行)   


根本原因

在 sbt/sbt-launch-lib.bash 

get_mem_opts () {
  local mem=${1:-2048}
  local perm=$(( $mem / 4 ))
  (( $perm > 256 )) || perm=256
  (( $perm < 4096 )) || perm=4096
  local codecache=$(( $perm / 2 ))

  echo "-Xms${mem}m -Xmx${mem}m -XX:MaxPermSize=${perm}m -XX:ReservedCodeCacheSize=${codecache}m"
}



備註: 目前,我還沒構建成功。這是在構建過程中遇到的第一個問題。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章