Spark性能调优篇一之任务提交参数调整
问题一:有哪些资源可以分配给spark作业使用?
答案:executor个数,cpu per exector(每个executor可使用的CPU个数),memory per exector(每个executor可使用的内存),driver memory
问题二:在什么地方分配资源给spark作业?
答案:很简单,就是在我们提交spark作业的时候的脚本中设定,具体如下(这里以我的项目为例)
/usr/local/spark/bin/spark-submit \
--class com.xingyun.test.WordCountCluster \
--num-executors 3 \*配置executor的数量 *\
--driver-memory 100m \*配置driver的内存(影响不大)*\
--executor-memory 100m \*配置每个executor的内存大小 *\
--executor-cores 3 \*配置每个executor的cpu core数量 *\
/usr/local/SparkTest-0.0.1-SNAPSHOT-jar-with-dependencies.jar \
我们该如何设定这些参数的大小呢?下面分两种情况讨论。
case1:把spark作业提交到Spark Standalone上面。一般自己知道自己的spark测试集群的机器情况。举个例子:比如我们的测试集群的机器为每台4G内存,2个CPU core,5台机器。这里以可以申请到最大的资源为例,那么 --num-executors 参数就设定为 5,那么每个executor平均分配到的资源为:--executor-memory 参数设定为4G,--executor-cores 参数设定为 2 。
case2:把spark作业提交到Yarn集群上去。那就得去看看要提交的资源队列中大概还有多少资源可以背调度。举个例子:假如可调度的资源配置为:500G内存,100个CPU core,50台机器。 --num-executors 参数就设定为 50,那么每个executor平均分配到的资源为:--executor-memory 参数设定为 10G,--executor-cores 参数设定为 2
问题三:为什么分配了这些资源以后,我们的spark作业的性能就会得到提升呢?
因为是调优后呀.
作者:z小赵
链接:https://www.jianshu.com/p/d07e79c22d90
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Spark性能调优篇一之任务提交参数调整的更多相关文章
- Spark性能调优篇七之JVM相关参数调整
降低cache操作的内存占比 方案: 通过SparkConf.set("spark.storage.memoryFraction","0.6")来设定.默认是0 ...
- Spark性能调优篇八之shuffle调优
1 task的内存缓冲调节参数 2 reduce端聚合内存占比 spark.shuffle.file.buffer map task的内存缓冲调节参数,默认是3 ...
- Spark性能调优篇六之调节数据本地化等待时长
数据本地化等待时长调节的优化 在项目该如何使用? 通过 spark.locality.wait 参数进行设置,默认为3s,6s,10s. 项目中代码展示: new SparkConf().set(&q ...
- Spark性能调优篇三之广播方式传输数据
广播大变量,重复用到的变量 原因见 https://www.jianshu.com/p/2c297b23ebda
- Spark性能调优篇二之重构RDD架构及RDD持久化
如果一个RDD在两个地方用到,就持久化他.不然第二次用到他时,会再次计算. 直接调用cache()或者presist()方法对指定的RDD进行缓存(持久化)操作,同时在方法中指定缓存的策略. 原文:h ...
- [Spark性能调优] 第一章:性能调优的本质、Spark资源使用原理和调优要点分析
本課主題 大数据性能调优的本质 Spark 性能调优要点分析 Spark 资源使用原理流程 Spark 资源调优最佳实战 Spark 更高性能的算子 引言 我们谈大数据性能调优,到底在谈什么,它的本质 ...
- Spark性能调优
Spark性能优化指南——基础篇 https://tech.meituan.com/spark-tuning-basic.html Spark性能优化指南——高级篇 https://tech.meit ...
- spark性能调优 数据倾斜 内存不足 oom解决办法
[重要] Spark性能调优——扩展篇 : http://blog.csdn.net/zdy0_2004/article/details/51705043
- Spark性能调优之代码方面的优化
Spark性能调优之代码方面的优化 1.避免创建重复的RDD 对性能没有问题,但会造成代码混乱 2.尽可能复用同一个RDD,减少产生RDD的个数 3.对多次使用的RDD进行持久化(ca ...
随机推荐
- JZOJ2020年9月19日提高B组反思
CSP第一轮倒计时:22天 JZOJ2020年9月19日提高B组反思 今天比的不好,只有签到题过了 130,rank 20 T1 签到题 用二分直接切 AC 100 T2 觉得是依赖背包问题 但是我没 ...
- navicat连接阿里云ESC里的数据库
1.进入阿里云服务器 ssh 用户名@ip 2.进入数据库 mysql -u root -p 3.设置mysql数据库权限(允许其他服务器连接数据库) grant all privileges on ...
- C#设计模式-组合模式(Composite Pattern)
概念 组合是一种结构型设计模式, 你可以使用它将对象组合成树状结构, 并且能像使用独立对象一样使用它们. 组合模式(Composite Pattern)是将对象组合成树形结构以表示'部分-整体'的层次 ...
- moviepy执行TextClip.search方法时报错TypeError: a bytes-like object is required, not str
☞ ░ 前往老猿Python博文目录 ░ 执行TextClip.search方法时,报错: >>> from moviepy.editor import * >>> ...
- 第13.4 使用pip安装和卸载扩展模块
一.pip指令介绍 Python 使用pip来管理扩展模块,包括安装和卸载,具体指令包括: pip install xx: 安装xx模块 pip list: 列出已安装的模块 pip install ...
- PyQt(Python+Qt)学习随笔:Designer中的QDialogButtonBox的accepted、rejected和helpRequested信号
QDialogButtonBox中可以包含多个pushButton,但QDialogButtonBox本身只提供4种信号,分别是accepted.rejected.clicked和helpReques ...
- 从零开始的xxe学习
本文介绍了一个菜鸡对xxe的一步步学习(内容多来源于大佬的博客,先感谢一波) 涉及知识点: (1)xxe 目录: 解析: 1.xxe是什么(不详解了,网上很多的) XXE(XML External E ...
- Linq to SQL 语法整理(子查询 & in操作 & join )
子查询 描述:查询订单数超过5的顾客信息 查询句法: var 子查询 = from c in ctx.Customers where (from o in ctx.Orders group o by ...
- 关于EF框架EntityState的几种状态
在使用EF框架时,我们通常都是通过调用SaveChanges方法把增加/修改/删除的数据提交到数据库,但是上下文是如何知道实体对象是增加.修改还是删除呢?答案是通过EntityState的枚举值来判断 ...
- .NET Core集成SkyWalking+SkyAPM-dotne实现分布式链路追踪
.NET Core集成SkyWalking+SkyAPM-dotnet实现分布式链路追踪 SkyWalking是一款APM(应用性能管理),其他的还有Cat.Zipkin.Pinpoint等. 随着微 ...