在數據高峰期會出現大量job處于queened狀態,可以通過調高num-executors參數,以及調高程序的并法度,來解決這個問題,但大多數情況下,根本用不了這么多資源,所以啟用資源的動態管理解決這個問題
方法:
配置參數
1. 不開啟動態調度. --num-executors=XXX
2. 開啟動態調度:
--conf spark.dynamicAllocation.initialExecutors=10 (剛開始分配的Executor個數, 可默認, 默認0)
--conf spark.dynamicAllocation.minExecutors=2 (最小的Executor個數, 可默認, 默認0)
--conf spark.dynamicAllocation.maxExecutors=10 (最多的Executor個數)
--conf spark.dynamicAllocation.enabled=true
如果出現任務等待,會動態添加executor個數,加快數據處理速度,當數據量減少,默認在1min沒有新的task執行的時候,就會讓出之前的executor