Spark性能调优之资源分配
**性能优化王道就是给更多资源!**机器更多了,CPU更多了,内存更多了,性能和速度上的提升,是显而易见的。基本上,在一定范围之内,增加资源与性能的提升,是成正比的;写完了一个复杂的spark作业之后,
进行性能调优的时候,首先第一步,我觉得,就是要来调节最优的资源配置;在这个基础之上,
如果说你的spark作业,能够分配的资源达到了你的能力范围的顶端之后,无法再分配更多的资源了,
公司资源有限;那么才是考虑去做后面的这些性能调优的点。
**大体上这两个方面:**core mem
问题:
1、分配哪些资源?
2、在哪里分配这些资源?
3、为什么多分配了这些资源以后,性能会得到提升?
答案:
1、分配哪些资源?
executor、core per executor、memory per executor、driver memory
2、在哪里分配这些资源?
在我们在生产环境中,提交spark作业时,用的spark-submit shell脚本,里面调整对应的参数
/usr/local/spark/bin/spark-submit \
–class cn.spark.sparktest.core.WordCountCluster \
–num-executors 3 \ 配置executor的数量
–executor-memory 100m \ 配置每个executor的内存大小
–executor-cores 3 \ 配置每个executor的cpu core数量
–driver-memory 100m \ 配置driver的内存(影响很大)
/usr/local/SparkTest-0.0.1-SNAPSHOT-jar-with-dependencies.jar \
3、调节到多大,算是最大呢?
第一种,Spark Standalone,公司集群上,搭建了一套Spark集群,你心里应该清楚每台机器还能够
给你使用的,大概有多少内存,多少cpu core;那么,设置的时候,就根据这个实际的情况,
去调节每个spark作业的资源分配。比如说你的每台机器能够给你使用4G内存,2个cpu core;
20台机器;executor,20;平均每个executor:4G内存,2个cpu core。
第二种,Yarn。资源队列。资源调度。应该去查看,你的spark作业,要提交到的资源队列,
hadoop spark storm 每一个队列都有各自的资源(cpu mem)
**大概有多少资源?**500G内存,100个cpu core;executor,50;平均每个executor:10G内存,2个cpu core。
Spark-submit的时候怎么指定资源队列? --conf spark.yarn.queue default
设置队列名称:spark.yarn.queue default
一个原则,你能使用的资源有多大,就尽量去调节到最大的大小(executor的数量,几十个到上百个不等;
executor内存;executor cpu core)
4、为什么调节了资源以后,性能可以提升?
增加executor:
如果executor数量比较少,那么,能够并行执行的task数量就比较少,就意味着,我们的Application的并行执行的能力就很弱。
比如有3个executor,每个executor有2个cpu core,那么同时能够并行执行的task,就是6个。6个执行完以后,再换下一批6个task。增加了executor数量以后,那么,就意味着,能够并行执行的task数量,也就变多了。比如原先是6个,现在可能可以并行执行10个,甚至20个,100个。那么并行能力就比之前提升了数倍,数十倍。相应的,性能(执行的速度),也能提升数倍~数十倍。
增加每个executor的cpu core:
也是增加了执行的并行能力。原本20个executor,每个才2个cpu core。能够并行执行的task数量,
就是40个task。现在每个executor的cpu core,增加到了5个。能够并行执行的task数量,就是100个task。执行的速度,提升了2倍左右。
增加每个executor的内存量:
增加了内存量以后,对性能的提升,有三点:
1、如果需要对RDD进行cache,那么更多的内存,就可以缓存更多的数据,将更少的数据写入磁盘,
甚至不写入磁盘。减少了磁盘IO。
2、对于shuffle操作,reduce端,会需要内存来存放拉取的数据并进行聚合。**如果内存不够,**也会写入磁盘。如果给executor分配更多内存以后,就有更少的数据,需要写入磁盘,甚至不需要写入磁盘。减少了磁盘IO,提升了性能。
3、对于task的执行,可能会创建很多对象。如果内存比较小,可能会频繁导致JVM堆内存满了,
然后频繁GC,垃圾回收,minor GC和full GC。(速度很慢)。内存加大以后,带来更少的GC,垃圾回收,
避免了速度变慢,性能提升。
参考链接: Spark性能调优之资源分配
Spark性能调优之资源分配相关推荐
- Spark性能调优-RDD算子调优篇
Spark性能调优-RDD算子调优篇 RDD算子调优 1. RDD复用 在对RDD进行算子时,要避免相同的算子和计算逻辑之下对RDD进行重复的计算,如下图所示: 对上图中的RDD计算架构进行修改,得到 ...
- spark学习-Spark性能调优(1)
本文要解决的问题: Spark在使用过程中不可避免的需要进行一系列的性能优化,本文就Spark性能调优的基础部分进行总结和归纳(开发调优和资源调优),参考了不少前辈的文章,在此非常感谢. 目的 在大数 ...
- 大数据培训:Spark性能调优与参数配置
Spark性能调优-基础篇 众所周知,正确的参数配置对提升Spark的使用效率具有极大助力,帮助相关数据开发.分析人员更高效地使用Spark进行离线批处理和SQL报表分析等作业. 推荐参数配置模板如下 ...
- Spark商业案例与性能调优实战100课》第20课:大数据性能调优的本质和Spark性能调优要点分析
Spark商业案例与性能调优实战100课>第20课:大数据性能调优的本质和Spark性能调优要点分析 基于本元想办法,大智若愚,大巧若拙!深入彻底的学习spark技术内核!
- Spark性能调优 之 合理规划资源配置
文章目录 1. 合理规划资源配置 1.1 简介 1.1.1 资源配置调优原理 1.2 资源配置说明 1.2.1 资源配置种类 1.2.2 资源配置方式 1.2.3 调优原则 2. 调节并行度 2.1 ...
- Spark性能调优总结
文章授权自 : http://www.6aiq.com/article/1547041120082 使用正确的 transformations操作 虽然开发者达到某一目标,可以通过不同的transfo ...
- Sparkamp;Spark性能调优实战
Spark特别适用于多次操作特定的数据,分mem-only和mem & disk.当中mem-only:效率高,但占用大量的内存,成本非常高;mem & disk:内存用完后,会自己主 ...
- 大数据培训:Spark 性能调优详解
调优概述 有的时候,我们可能会遇到大数据计算中一个最棘手的问题--数据倾斜,此时Spark作业的性能会比期望差很多.数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的 ...
- Spark性能调优系列:Spark参数配置大全(官网资料)
Spark参数配置大全 Spark提供了三个位置来配置系统 Spark属性控制大多数应用程序参数,可以使用SparkConf对象或Java系统属性来设置. 通过conf/spark-env.sh每个节 ...
最新文章
- 基于 Vue + Koa2 + MongoDB + Redis 实现一个完整的登录注册
- 数据之路 Day8 Matplotlib包
- Python常用技巧了解一下?
- delphi 中配置文件的使用(*.ini)
- silverlight之datagrid的一个问题
- 知识图谱入门视频(二)
- [转载] python可视化分析(matplotlib、seaborn、ggplot2)
- OpenStack Queens 女王新神器 — 卷多重挂载
- HTTP 权威指南 详解 (推荐阅读 )
- ora257 linux,ORA-00257解决
- word使用过程中遇到的问题记录(二):如何画柱状图和折线图的组合图?
- 智能生活 App SDK 开发入门教程【内附代码段 】
- python的用途和组成_Python 用法总结
- 求二元函数最大值matlab,利用matlab, 二元函数求最大值
- 5G未能拯救国内手机市场,手机出货量持续下滑
- 纯苹果汁的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- 【商业分析 03】疫情之下(20年初IT桔子投融资数据分析)
- myBase Desktop 6.x 用户手册
- 一个电视剧男孩计算机专业的,杨紫新剧化身计算机天才,男主颜值爆表,又是一部爆款剧!...
- OpenCV 获取变换矩阵
热门文章
- PyQt5 笔记6 -- 对话框(QDialog)
- 直播预告 | 第四范式2021发布会技术分论坛报名开启,6月23日线上见
- 程序员法律考试(7)-民法(4)
- vb.net 机器学习-候选消除法
- python3精要(54)-文件读写与异常处理
- 【Python】一文搞懂Pandas数据排序
- 【数据分析】年纪轻轻却突然猝死?数据分析告诉你“猝死”离我们到底有多近?...
- 本周日,王海峰、朱军、李宏毅等大咖邀你加入这场AI开发者盛宴
- 【数据竞赛】Kaggle竞赛宝典国内外竞赛方案汇总
- 【CV】图像分割2020,架构,损失函数,数据集,框架的整理和总结