Spark on Yarn的Cluster模式关于spark-submit的参数设置总结

本文详细总结了在Spark on Yarn的Cluster模式下,使用`spark-submit`提交应用时的关键参数设置,包括资源分配、日志级别、应用监控等方面,旨在帮助开发者更好地理解和配置Spark作业。
摘要由CSDN通过智能技术生成

1、前置知识

# 总核数 = 物理CPU个数 X 每颗物理CPU的核数 
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数

# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq

# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l

是否为超线程?
    如果有两个逻辑CPU具有相同的”core id”,那么超线程是打开的。

2、由以上知识计算出单台机器的逻辑总核数。

公理:每个executor分配2~4个core比较合适。但是也要受资源队列的限制。

推理1:集群总核数A=(节点总逻辑核数-1)*节点数
        减一是为了给Hadoop等相关守护进程留下一个核心。
推理2:应用程序executor数B=(集群总核数A/每个executor核心数)-1
        减一是为了给AM留下一个executor
推理3:每个节点executor数C=应用程序executor数B/节点数
推理4:每个executor的内存D=节点内存/每个节点executor数C


3、关于spark.default.parallelism并行度设置

spark.storage.memoryFraction
    参数说明:该参数用于设置RDD持久化数据在Executor内存中能占的比例,默认是0.6。也就是说,默认Executor 60%的内存,可以用来保存持久化的RDD数据。根据你选择的不同的持久化策略,如果内存不够时,可能数据就不会持久化,或者数据会写入磁盘。
参数调优建议
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二百四十九先森

你的打赏是我努力的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值