集群
- spark on yarn , spark允许yarn集群之上,资源【cpu,内存】划分从yarn集群进行分配
spark相关资源设置
# 开启动态资源分配
spark.dynamicAllocation.enabled = true
spark.shuffle.service.enabled = true
# 动态资源分配时,每个driver分配最小executor
spark.dynamicAllocation.minExecutors = 1
# 动态资源分配时,每个driver分配最大executor
spark.dynamicAllocation.maxExecutors = 15
# spark driver端拉取数据最大值
spark.driver.maxResultSize= 1G
# driver端内存
spark.driver.memory = 3G
# driver端cpu核数
spark.driver.cores = 4
# executor端内存
spark.executor.memory = 1G
# executor端cpu核数
spark.executor.cores = 2
# shuffule时进行文件合并,减少碎文件
spark.shuffle.consolidateFiles=true
yarn集群设置
分配资源的类型
nodemanager的资源分配:
yarn.nodemanager.resource.memory-mb :当前nodemanager的单个可用总内存
yarn.nodemanager.resource.cpu-vcores: 当前nodemanager的单个可用总核数
yarn.nodemanager.vmem-pmem-ratio: 任务每使用1MB物理内存,最多可使用虚拟内存量,默认是2.1。
yarn.nodemanager.vmem-check-enabled:是否对超出资源分配值时进行检查,检查则杀掉
yarn.nodemanager.pmem-check-enabled: 是否对超出资源分配值时进行检查,检查则杀掉
容器调度
yarn.scheduler.minimum-allocation-mb:单容器申请最小内存
yarn.scheduler.maximum-allocation-mb:单容器申请最大内存