基础的一些参数:
--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