2017-04-26 123 views
0

我正在一臺機器上運行spark,有24個內核,48G Ram。Spark ALS:用完Java堆空間:java.lang.OutOfMemoryError:Java堆空間

我能夠訓練一個隱含的模型,用6M的用戶,1.2M項目,216M的行動(意見/買入)

現在,我嘗試運行7M用戶的建議和1.5M項目和440M的用戶操作項目上。

我使用20個執行程序,驅動程序內存15G,執行程序內存4G。

訓練等級8,15迭代。

在使用ALS.trainImplicit訓練模型時,我得到的java堆空間內存不足錯誤。

model = ALS.trainImplicit(training_RDD, rank, seed=seed, iterations=iterations, lambda_=regularization_parameter, alpha=config.alpha) 
    File "/usr/local/spark/python/lib/pyspark.zip/pyspark/mllib/recommendation.py", line 314, in trainImplicit 
    File "/usr/local/spark/python/lib/pyspark.zip/pyspark/mllib/common.py", line 130, in callMLlibFunc 
    File "/usr/local/spark/python/lib/pyspark.zip/pyspark/mllib/common.py", line 123, in callJavaFunc 
    File "/usr/local/spark/python/lib/py4j-0.10.4-src.zip/py4j/java_gateway.py", line 1133, in __call__ 
    File "/usr/local/spark/python/lib/pyspark.zip/pyspark/sql/utils.py", line 63, in deco 
    File "/usr/local/spark/python/lib/py4j-0.10.4-src.zip/py4j/protocol.py", line 319, in get_return_value 
py4j.protocol.Py4JJavaError: An error occurred while calling o86.trainImplicitALSModel. 
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in stage 4.0 failed 1 times, most recent failure: Lost task 0.0 in stage 4.0 (TID 44, localhost, executor driver): java.lang.OutOfMemoryError: Java heap space 
at scala.collection.mutable.ArrayBuilder$ofInt.mkArray(ArrayBuilder.scala:323) 

我無法得到如何解決此錯誤。 錯誤代碼:在階段4.0(TID 44,localhost,executor driver)中丟失的任務0.0:java.lang.OutOfMemoryError:Java堆空間,我可以得知執行器內存不足。

我曾嘗試增加執行程序內存,減少驅動程序內存,但它沒有幫助,我仍然收到相同的錯誤。錯誤的

堆棧跟蹤:https://www.dropbox.com/s/g2vlmtjo8bb4gd1/javaheapspaceerror.txt?dl=0

回答

0

您需要設置檢查點目錄:-)很多算法使用這個時候都非常分期數據密集型的,因爲RDD血統變得瘋狂,否則並導致這些問題。

sc.setCheckpointDir('/tmp') 
+0

我已經設置了這個屬性,但是我仍然得到相同的java堆空間錯誤。 –

+0

然後,您應該嘗試更新作業的配置。你所說的那個在你的機器上實際上是不可能的(20個執行器,4G = 80G--你只有48個,這是在包括驅動器RAM和容器開銷之前)。 Spark將僅僅使用配置作爲指導,並盡其所能。爲什麼你需要這麼多的驅動器內存? ALS根本不使用這個,所以我會考慮減少這個。試試10個執行器,每個執行器有2個內核,1G RAM,驅動器內存3G。記住你的操作系統和任何其他應用程序也需要RAM! –

+0

嗨,本,感謝您幫助我在這裏,我嘗試了推薦的配置,但我仍然得到相同的錯誤。 https://www.dropbox.com/s/3ph9etmjl6tylib/javaheapspaceerror_2.txt?dl=0 –

相關問題