基礎的一些參數:
--executor-cores 2(每臺機器核數)
--num-executors 20 (executor 節點數,不要太多5-20,如果程序涉及數據交換較多,節點數過多會引起大量shuffle write,影響實際執行效率;同時與集羣資源有關,申請資源需要合理,不要影響其他業務;集羣網絡不佳時,節點數過多會擴大對執行效率的影響)
--driver-memory 12g (主節點內存,根據主節點數據量設置)
--executor-memory 10g (每個節點內存,根據總數據量設置)
--conf spark.yarn.maxAppAttempts=1 (失敗重試次數,默認重試4次,前期任務調試階段,重試次數最好設置爲1,可以較快得到執行結果;後期業務上線,也使用默認參數)
--conf spark.default.parallelism=100 (一般不設置,或根據cores和executors計算,cores*executors的2-3倍)
--conf spark.shuffle.memoryFraction=0.6 (shuffle內存佔比,默認0.2 即20%,視實際情況進行調整)
--conf spark.storage.memoryFraction=0.2 (每個節點數據存儲內存佔比,默認0.6 即60%,可根據程序rdd的cache持久化設置大小)
詳細進一步參考點擊打開鏈接 http://www.uml.org.cn/bigdata/2016060810.asp