2015-12-14 51 views
5

我跑的火花流媒體應用紗集裝箱,它運作良好,幾天之後,我遇到了一個問題,從下面的紗線列表中的錯誤消息:星火流紗線 - 運行超出了物理內存限制

Application application_1449727361299_0049 failed 2 times due to AM Container for appattempt_1449727361299_0049_000002 exited with exitCode: -104 
For more detailed output, check application tracking page:https://sccsparkdev03:26001/cluster/app/application_1449727361299_0049Then, click on links to logs of each attempt. 
Diagnostics: Container [pid=25317,containerID=container_1449727361299_0049_02_000001] is running beyond physical memory limits. Current usage: 3.5 GB of 3.5 GB physical memory used; 5.3 GB of 8.8 GB virtual memory used. Killing container. 

這裏是我的內存配置:

spark.driver.memory = 3g 
spark.executor.memory = 3g 
mapred.child.java.opts -Xms1024M -Xmx3584M 
mapreduce.map.java.opts -Xmx2048M 
mapreduce.map.memory.mb 4096 
mapreduce.reduce.java.opts -Xmx3276M 
mapreduce.reduce.memory.mb 4096 

這OOM錯誤很奇怪,因爲我沒有保留在內存中的任何數據,因爲它是一個流節目,有沒有人遇到過像它一樣的問題嗎?或誰知道是什麼原因造成的?

+0

你得到任何這分辨率的詳細比例? –

回答

-1

檢查您正在運行它的box/vm實例上的mem。我的猜測是主機是紅色的襯裏。

...由於它看起來是過度分配內存。

您認爲流式傳輸在哪裏執行?不管你在那裏存儲什麼東西?對。記憶。不是貓或跳舞海盜(添加「e」)。

猜猜是什麼?您正在分配7 GB的內存,這對虛擬內存而言非常重要。

  1. 檢查您的日誌記錄,因爲這將有類似的建立時間。

  2. 什麼是spark.yarn.am.memory值?

  3. 讓你的虛擬機和容器內存分配平衡:)

另一種認爲是調整memoryOverhead從而物理&虛擬可以