Spark常规性能调优一:最优资源配置
Spark 性能调优的第一步,就是为任务分配更多的资源,在一定范围内,增加资源的分配与性能的提升是成正比的,实现了最优的资源配置后,在此基础上再考虑进行后面论述的性能调优策略。
资源的分配在使用脚本提交 Spark 任务时进行指定,标准的 Spark 任务提交脚本如下所示:
bin/spark-submit \
--class com.zxl.spark.Analysis \
--master yarn
--deploy-mode cluster
--num-executors 80 \
--driver-memory 6g \
--executor-memory 6g \
--executor-cores 3 \
/usr/opt/modules/spark/jar/spark.jar \
可以进行分配的资源如表所示:
调节原则:尽量将任务分配的资源调节到可以使用的资源的最大限度。对于具体资源的分配,我们分别讨论 Spark 的两种 Cluster 运行模式:
- 第一种是 Spark Standalone 模式,你在提交任务前,一定知道或者可以从运维部门获取
到你可以使用的资源情况,在编写 submit 脚本的时候,就根据可用的资源情况进行资
源的分配,比如说集群有 15 台机器,每台机器为 8G 内存,2 个 CPU core,那么就指
定 15 个 Executor,每个 Executor 分配 8G 内存,2 个 CPU core。 - 第二种是 Spark On Yarn 模式,由于 Yarn 使用资源队列进行资源的分配和调度,在编写
submit 脚本的时候,就根据 Spark 作业要提交到的资源队列,进行资源的分配,比如资
源队列有 400G 内存,100 个 CPU core,那么指定 50 个 Executor,每个 Executor 分配
8G 内存,2 个 CPU core。
对各项资源进行了调节后,得到的性能提升会有如下表现:
补充:生产环境 Spark submit 脚本配置
bin/spark-submit \
--class com.zxl.spark.WordCount \
--master yarn\
--deploy-mode cluster\
--num-executors 80 \
--driver-memory 6g \
--executor-memory 6g \
--executor-cores 3 \
--queue root.default \
--conf spark.yarn.executor.memoryOverhead=2048 \
--conf spark.core.connection.ack.wait.timeout=300 \
/usr/local/spark/spark.jar
参数配置参考值:
➢ --num-executors:50~100
➢ --driver-memory:1G~5G
➢ --executor-memory:6G~10G
➢ --executor-cores:3
➢ --master:实际生产环境一定使用 yarn
Spark常规性能调优一:最优资源配置相关推荐
- Spark常规性能调优三:并行度调节
Spark 作业中的并行度指各个 stage 的 task 的数量. 如果并行度设置不合理而导致并行度过低,会导致资源的极大浪费,例如,20 个 Executor,每个 Executor 分配 3 个 ...
- Spark常规性能调优二:RDD 优化
RDD 复用 在对 RDD 进行算子时,要避免相同的算子和计算逻辑之下对 RDD 进行重复的计算 对上图中的 RDD 计算架构进行修改,得到如下图所示的优化结果: RDD 持久化 在 Spark 中, ...
- Spark 性能常规性能调优广播大变量_大数据培训
常规性能调优四:广播大变量 默认情况下,task中的算子中如果使用了外部的变量,每个task都会获取一份变量的复本,这就造成了内存的极大消耗.一方面,如果后续对RDD进行持久化,可能就无法将RDD数据 ...
- Apache Spark Jobs 性能调优(二)
Apache Spark Jobs 性能调优(二) 调试资源分配 调试并发 压缩你的数据结构 数据格式 在这篇文章中,首先完成在 Part I 中提到的一些东西.作者将尽量覆盖到影响 Spark 程序 ...
- Apache Spark Jobs 性能调优(一)
Apache Spark Jobs 性能调优(一) Spark 是如何执行程序的 选择正确的 Operator 什么时候不发生 Shuffle 什么情况下 Shuffle 越多越好 二次排序 结论 当 ...
- Spark的性能调优
下面这些关于Spark的性能调优项,有的是来自官方的,有的是来自别的的工程师,有的则是我自己总结的. 基本概念和原则 首先,要搞清楚Spark的几个基本概念和原则,否则系统的性能调优无从谈起: 每一台 ...
- Spark开发性能调优
Spark开发性能调优 标签(空格分隔): Spark –Write By Vin 1. 分配资源调优 Spark性能调优的王道就是分配资源,即增加和分配更多的资源对性能速度的提升是显而易见的,基本上 ...
- Apache Spark Jobs 性能调优
当你开始编写 Apache Spark 代码或者浏览公开的 API 的时候,你会遇到各种各样术语,比如transformation,action,RDD(resilient distributed d ...
- Spark+Alluxio性能调优十大技巧
戳蓝字"CSDN云计算"关注我们哦! 由于统一访问对象存储(如S3)和HDFS数据的场景的出现和普及,Apache Spark结合Alluxio的大数据栈越来越受欢迎.此外,越来越 ...
最新文章
- java动态打jar包_java动态加载jar包
- 异常记录(CPU产生的异常和软件模拟产生的异常)
- java 好用的工具类
- 贫穷中透着零基础的单人制作游戏手册之二:做游戏不光靠创意
- (转)Spring Boot(十八):使用 Spring Boot 集成 FastDFS
- freemarker 数组转字符串_TypeScript 实战算法系列(一):实现数组栈与对象栈
- 移动硬盘主分区格式化后,逻辑分区找不到的解决方法
- Oracle数据库的学习
- 鼠标宏设置到鼠标左键,重置回去!
- rainmeter皮肤编写教程
- Invalid MEX-file '/xxx/lk.mexa64': /xxx/anaconda3/lib/./libharfbuzz.so.0: undefined symbol: FT_Done_
- JAVA根据开始时间和结束时间获取天数
- android答辩问题,安卓毕业设计答辩(流程、准备、模板及注意事项)
- 《如何正确评估自己的工作能力》--马薇薇
- Android 实现 遮罩动画效果
- 映射报错怎么解决 Ambiguous mapping. Cannot map ‘basicPersonStreamDataController‘ method
- 推荐个东西,GPGPU开发
- JS中的DOM与BOM
- 老嘤学习笔记 python异常处理
- 基于laravel免费开源CMS推荐