2017-10-07 51 views
2

雖然運行pyspark工作,並作爲輸入的增長,我注意到,我不斷收到內存錯誤像下面...安全地假設pyspark在rdd上的減法是緩慢的/有問題的?

ERROR cluster.YarnScheduler: Lost executor 12 on compute-2-10.local: 
Container killed by YARN for exceeding memory limits. 1.5 GB of 1.5 GB 
physical memory used. Consider boosting spark.yarn.executor.memoryOverhead. 

雖然它會在即使經過反覆的誤差較小的輸入成功完成執行,它隨着輸入大小的增加而最終死亡。

我有大約2000萬行,我需要過濾出約661,000行。除了使用減法給定密鑰的格式之外,我想不出任何其他處理方法。

回答

1

1.5GB對執行程序內存非常低:通常嘗試給出至少兩倍的數量。這個問題應該可以通過不捱餓資源的執行者來解決。

+0

好吧,我想了想。我實際上沒有訪問服務器的權限,但我已經與管理員聯繫,瞭解他們可以對錯誤做些什麼。直到星期一才能聽到回覆 – cpd1

+0

我可以將它設置爲使用更多的內存並且工作正常。仍然有點慢,但它不會失敗。謝謝! – cpd1

1

我會使用至少4GB的內存。你可以這樣設置: pyspark --num-executors 5 --driver-memory 2g --executor -memory 4g