1.总体原则
1.Yarn配置
- Yarn部署在单台服务器128G内存,32个核
如果一个服务器是5个核, executor-cores=5,则理论上num-executor<=6个核。5*6<=32
/hadoop-xxx/yarn-site.xml
修改yarn的运行分配的最大最小内存
yarn.scheduler.minimum-allocation-mb
yarn.scheduler.maximum-allocation-mb
2.配置参数
-
driver-memory
driver端的内存消耗主要是以下内容:
1.创建小规模的分布式数据集:使用 parallelize、createDataFrame 等 API 创建数据集
2.收集计算结果:通过 take、show、collect 等算子把结果收集到 Driver 端
根据以上估算即可下面代码是预估driver端内存的执行计划
val df: DataFrame = _ df.cache.count val plan = df.queryExecution.logical val estimated: BigInt = spark .sessionState .executePlan(plan) .optimizedPlan .stats .sizeInBytes
-
executor-cores
1.每个executor的最大核数,一般在3-6之间比较合适.
2.Executor 中并行计算任务数的上限是