CDH Spark on YARN模式参数说明

调试Spark官网文档

 

CDH5.5以后默认开启动态分配,可用通过设置参数覆盖。

yarn.nodemanager.resource.memory-mb     节点yarn可用内存
yarn.nodemanager.resource.cpu-vcores    节点yarn可用cores
yarn.scheduler.minimum-allocation-mb    yarn在整个集群上的最小内存
yarn.scheduler.increment-allocation-mb  yarn的增量内存

内存的层次如图

--executor-memory / spark.executor.memory 可用设置executor的内存,executor也可用使用堆外内存。
spark.yarn.executor.memoryOverhead 可用设置executor堆外内存大小,默认max(384, 0.07 * spark.executor.memory)

Application Master AM负责申请Container资源。

yarn-client时,默认core 1个,内存 1G。
yarn-cluster时,AM运行在driver中使用driver的资源,可用由--driver-memory 和 --driver-cores设置。

executors的内存设置太多会使垃圾回收延迟,一个executor内存最高64G。

而HDFS最多能处理一个进程的5个并发读写,所以一个executor不高于5个cores。

如果多个小任务,应该JVM重用,不建议设置多个特别小的executor,因为每个executor会复制一份广播变量,导致会产生很多数据副本,影响效率。

 

设置示例:

16 cores,64GB memory

--num-executors 17 --executor-cores 5 --executor-memory 19G:

虽然设置了17个executor,但一个executor设置了5个cores,所以只会生成3个executor。一个用于AM,另外两个executor用来运行任务。

executor-memory计算为:63 / 3 = 21,堆外内存为21*0.07 = 1.47,21-1.47 约等于19。

Spark分区是根据读取的HDFS分块来的,可以使用rdd.partitions().size()查看,也可以通过spark.default.parallelism来重新设置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

訾零

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值