Spark配置——Spark Application的executor数的设定

我们知道Spark application的运行单元是task,资源分配单元是executor。task数的多少是和RDD的分区数相关的,整个application的并行度是 Executor数 * Task。这里整理一下executor的个数是如何设置的。

我们通常都使用spark-submit 来提交任务,对于不同的部署模式,需要使用不同的参数来指定executor数,实际生产环境中最常使用的部署模式就是 ON YARN 和 Standalone两种模式。

Spark ON YARN

ON YARN模式下可以使用选项 –num-executors 来直接设置application的executor数,该选项默认值是2.。 该选项对应的配置参数是 spark.executor.instances

如下,我们可以在启动spark-shell时指定executor数

$ spark-shell --num-executors 5

通过web监控页面可以看到有5个executor
在这里插入图片描述

Spark Standalone

在standalone模式下,并没有参数直接指定使用多少个executor数。而是按照如下方式计算而来
executor 数量 = spark.cores.max/spark.executor.cores

spark.cores.max 默认没有设置,这时它使用的是 spark.deploy.defaultCores,而这个的默认值是Int.max,也就是不限制,这样应用就会获取所有可用的CPU资源,所以为了限制应用程序使用CPU资源,用户需要设置spark.core.max配置项,约束每个应用程序所能申请的最大CPU核数。
spark.executor.cores 该参数用以设置每个executor使用的CPU资源,在 ON YARN模式下,默认是1,而standalone模式下是worker节点上所有可用的CPU的资源,显然在实际生产环境中,这样做也不合理,因此需要设置spark.executor.cores配置项,用于设置在standalone模式下每个Executor使用的CPU核数。

最后补充说明一下单个executor的资源配置,也就是一个executor使用的CPU和内存资源

  • 选项 –executor-memory 可以指定每个executor的内存,默认是 1G,对应的配置项是 spark.executor.memory,该配置项默认单位是MB,也可以显示指定单位 (如2g,8g)
  • 选项 –executor-cores (适用于ON YARN和standalone模式) 可以指定每个executor的内存,对应的配置项是 spark.executor.cores
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值