2015-09-23 71 views
0

我跑成紗火花,但我的應用程序狀態越來越內存溢出異常,而試圖裝入大型RDD即使我有動態調度設置爲true動態調度火花的工作對成紗

...

.set("spark.shuffle.service.enabled", "true") 
.set("spark.dynamicAllocation.enabled", "true") 
.set("spark.default.parallelism", String.valueOf(cpu * 3)) 

爲了解決這個問題,我不得不指定執行內存

...

.set("spark.driver.memory", "5g") 
.set("spark.executor.memory", "30g") 
.set("spark.shuffle.service.enabled", "true") 
.set("spark.dynamicAllocation.enabled", "true") 
.set("spark.default.parallelism", String.valueOf(cpu * 3)) 

```

但是不是動態調度從紗線中分配所需資源的全部要點?

回答

2

documentation on YARN dynamic resource allocation

火花,動態資源分配上執行

這意味着它會旋轉起來更加執行人的粒度進行的,但並不意味着它會改變個體執行者有多少內存。如果你將更多的資源加載到內存中,而不是單個執行者可以處理的內容,那麼更多的資源就不會有任何好處。