有网站前端如何做后台,淘宝导购网站源码,企业做网站有用吗天涯,微信小程序ui模板1.1 内存设置 #x1f4be;
常见的内存设置有两类#xff1a;堆内和堆外 #x1f4a1;
我们作业中大量的设置 driver 和 executor 的堆外内存为 4g#xff0c;造成资源浪费 #x1f4c9;。
通常 executor 堆外内存在 executor.cores1 的时候#xff0c;1g 足够了…1.1 内存设置
常见的内存设置有两类堆内和堆外
我们作业中大量的设置 driver 和 executor 的堆外内存为 4g造成资源浪费 。
通常 executor 堆外内存在 executor.cores1 的时候1g 足够了正常来说最大值不超过 2gdriver 1g-2g 足够了 ✅。
注意如果有 c 库这种计算executor 堆外内存可以保持原有配置。
各版本推荐配置的 key 以及配置值各版本不推荐配置的 key 及配置值过去无效配置建议删除 driver 堆内 –conf spark.driver.memory6G无无driver 堆外 –conf spark.driver.memoryOverhead2G–conf spark.yarn.driver.memoryOverhead4g–conf spark.yarn.driver.direct*executor 堆内 –conf spark.executor.memory3G无无executor 堆外 –conf spark.executor.memoryOverhead1G–conf spark.yarn.executor.memoryOverhead4g–conf spark.yarn.executor.direct*
1.2 动态资源调度相关参数
不开启动态资源管理或者参数设置不合理会导致明显的资源浪费 涉及到动态资源调度的参数主要有以下几个
参数名 ️默认值 ⚙️作用 错误使用案例 使用建议 spark.dynamicAllocation.enabled ✅false开启资源动态能力在 executor 空闲时可以释放需要资源是发起请求不开启开启资源动态功能尤其是运行时间比较长或者有数据倾斜的情况 spark.dynamicAllocation.executorIdleTimeout ⏲️60sexecutor 空闲多久开始释放资源30000 或者 1200s 过大的数值 60s-120s spark.dynamicAllocation.minExecutors 0最小持有的 executor 数到达该值空闲也不会释放200 推荐设置为 1-5 spark.dynamicAllocation.maxExecutors infinity作业申请 executor 资源的最大值1000 以上 通常最大值建议 256-500 即可小作业可以更小的设置 1.3 序列化参数
Spark 中序列化主要有两种java、kryo。相对来说 kryo 序列化效率更高作为推荐
1 spark.serializer org.apache.spark.serializer.KryoSerializer与 kryo 相关的设置有
1 spark.kryoserializer.buffer默认值 64k这个不需要设置设置值过大会常驻
2 spark.kryoserializer.buffer.max默认值 64m不需要设置 spark.kryoserializer.buffer默认的 buffer 会在 64k 到 64m 动态伸缩没有特殊需要不需要设置如果数据比较大设置 spark.kryoserializer.buffer.max
1.4 并行度设置 ⚙️ 常见的并行度配置有两个
spark.default.parallelism 默认值会继承上游 stage 的并行度主要用于 rdd 的 shuffle 操作spark.sql.shuffle.partitions 默认值 200主要用于 sql 的 shuffle 操作
算法作业绝大多数是 rdd 操作合理设置并行度事半功倍 后面会专门介绍怎么优化自己的并行度设置
spark.default.parallelism 不建议设置的非常大。