1.現象:
如圖是executor執行任務的情況,可以看出任務執行嚴重不均,過段時間報fetchFailException異常 ,一般情況下由於 executor 內存不足導致(如果能監控到每個executor資源使用情況更完美)。
2.解決:
原因是executor內存不足。增大內存可以解決該問題,
參數為:executor-memory
如果內存已經到頂,適當調整 擴大並行度或者減少executor-cores 。
(1)增大並行度的參數:
--conf spark.default.parallelism=1000
--conf spark.sql.shuffle.partitions=1000
(2)減小executor-cores
這兩種方法最好結合起來使用。
閱讀更多 從大數據說起 的文章