1. spark重试次数
失败重试次数,默认重试4次,前期任务调试阶段,重试次数最好设置为1,可以较快得到执行结果;后期业务上线,也使用默认参数
--conf spark.yarn.maxAppAttempts=1
2. 开启Driver多线程机制
.set("spark.driver.allowMultipleContexts", "true")
3.开启自动调节机制,根据当前的处理速度自适应调节每次读取的kafka数据量
.set("spark.streaming.backpressure.enabled", "true")
4.限定每个分区最大的读取速度,具体值又作业代码决定
.set("spark.streaming.kafka.maxRatePerPartition", "5000")
5. SparkStreaming开启FAIR并行BATCH执行模式
.set("spark.scheduler.mode","FAIR")
6. SparkStreaming设置最大并行BATCHS:100
.set("spark.streaming.concurrentJobs","100")
7. 定制优化JVM内存
--conf spark.executor.extraJavaOptions=\"-XX:MaxDirectMemorySize=4096m\" \
8. 开启预测执行
--conf spark.speculation=true \
--conf spark.speculation.interval=500ms \
9. 设置Java heap占用spark menory的比例(可能已废弃)
--conf spark.storage.memoryFraction=0.5 \
10. 设置shuffle占用spark menory的比例(可能已废弃)
--conf spark.shuffle.memoryFraction=0.3 \
11. 开启序列化超类(在诸如使用Proto结构的代码中,pb对象如果在网络间传输,不开启此项一定会报错)
--conf spark.serializer=org.apache.spark.serializer.KryoSerializer \
12. 设置作业运行集群
--cluster hadoopprc-hadoop-spark2.3 \
13. 设置作业拥有人
--conf spark.yarn.job.owners=zhangSan \
14. 设置作业失败后短信报警的手机号
--conf spark.yarn.alert.phone.number=1888888888 \
15. 设置作业执行状态的邮件发送地址
--conf spark.yarn.alert.mail.address='zhangSan@xxx.com' \
16. 设置作业执行模式(yarn?单机?standalone?)
--master yarn \
17. 设置作业执行所在的资源队列
--queue production.groupa.groupb \
18. 设置excutor的JAVA虚拟机内存大小
--conf spark.executor.extraJavaOptions=\"-XX:MaxDirectMemorySize=4096m\" \
19. 设置driver内存大小
--driver-memory 8g \
20. 设置executor的内存大小
--executor-memory 8g \
21. 设置单个executor的核数
--executor-cores 2 \
22. 设置每个driver中,executor的个数
--num-executors 8 \