Spark 通用的性能配置方法:内存和CPU的配置

简介: 前言 本文主要介绍关于通过配置Spark任务运行时的内存和CPU(Vcore)来提升Spark性能的方法。通过配置内存和CPU(Vcore)是比较基础、通用的方法。本文出现的Demo以X-Pack Spark数据工作台为背景介绍,数据工作台的详细介绍请参考:数据工作台。

前言

本文主要介绍关于通过配置Spark任务运行时的内存和CPU(Vcore)来提升Spark性能的方法。通过配置内存和CPU(Vcore)是比较基础、通用的方法。本文出现的Demo以X-Pack Spark数据工作台为背景介绍,数据工作台的详细介绍请参考:数据工作台

提交Spark任务的参数

提交Spark任务时需要提供如下的参数。

--class org.apache.spark.examples.SparkPi
--driver-memory 2G 
--driver-cores 1
--executor-cores 2
--executor-memory 8G
--num-executors 3
--name spark-pi
...

其中下面的参数都是和此次spark任务执行的性能相关。

--driver-memory 2G   //分配给Driver的内存。
--driver-cores 1         // 分配给Driver的Vcore。
--executor-cores 2    //分配给Executor的Vcore。
--executor-memory 8G   //分配给Executor的内存。
--num-executors 3  //分配的Executor的个数。

这些配置会影响spark任务执行的并行度、可用的Vcore和内存,从而影响执行的性能。下面分别看下如何配置这些参数。

并行度

按照上面的配置,此次spark任务的运行并行度为:--executor-cores的值 --num-executors的值,即23=6;也就是说同时最多会有6个task同时执行。
假设此次任务60个task,每个task执行时间为1秒,则此任务运行时间为:60/6*1=10秒;
先把--executor-cores提升为3,--num-executors提升为10,则此任务运行时间为:60/30*1=2秒。
所以增加并行度是提升性能比较常用和直接的方法。

Executor的资源配置

--executor-cores一般设置为2~4比较合适,一般通过和--num-executors组合来提升spark任务的并行度。
--executor-memory内存的配置一般和--executor-cores有一定的比例关系,比例常用的访问为1:2 到1:4之间。可以根据task运行过程GC的情况适当调整。Task运行时的GC情况可以通过Spark Job UI查看,如下图:
Snip20190708_3
其中Duration为task运行的时间,GC Time为task运行的Gc 时间。如果GC时间较长,可以适当增加--executor-memory的值或者减少--executor-cores的值(如果资源不足的话)

Driver的资源配置

--driver-memory和--driver-cores一般设置比较少,2G和1cores也基本共用。但是如果有算子把数据都拉倒Driver上去处理,需要增加--driver-memory的值,不过也建议这么做,因为这样最增加Driver的压力。如果

结束语

本文主要列出最基本的方法,Spark性能的调优时可以结合运行时Spark Job UI 查看每个任务的运行状态进行调优。其他调优方法和参数会陆续推出。
Spark详细配置请参考:Spark Configuration
X-Pack Spark介绍请参考:Spark 基本介绍

相关文章
|
2月前
|
存储
阿里云轻量应用服务器收费标准价格表:200Mbps带宽、CPU内存及存储配置详解
阿里云香港轻量应用服务器,200Mbps带宽,免备案,支持多IP及国际线路,月租25元起,年付享8.5折优惠,适用于网站、应用等多种场景。
689 0
|
3月前
|
机器学习/深度学习 弹性计算 编解码
阿里云服务器4核8G配置:ECS实例规格、CPU型号及使用场景说明
阿里云4核8G服务器ECS提供多种实例规格,包括高主频计算型hfc8i、计算型c8i、通用算力型u1、经济型e等。各规格配备不同CPU型号与主频性能,适用于机器学习、数据分析、游戏服务器、Web前端等多种场景。用户可根据需求选择Intel或AMD处理器,如第四代Xeon或AMD EPYC系列,满足高性能计算及企业级应用要求。更多详情参见阿里云官方文档。
317 1
|
1月前
|
弹性计算 前端开发 NoSQL
2025最新阿里云服务器配置选择攻略:CPU、内存、带宽与系统盘全解析
本文详解2025年阿里云服务器ECS配置选择策略,涵盖CPU、内存、带宽与系统盘推荐,助你根据业务需求精准选型,提升性能与性价比。
|
2月前
|
存储 弹性计算 固态存储
阿里云服务器配置费用整理,支持一万人CPU内存、公网带宽和存储IO性能全解析
要支撑1万人在线流量,需选择阿里云企业级ECS服务器,如通用型g系列、高主频型hf系列或通用算力型u1实例,配置如16核64G及以上,搭配高带宽与SSD/ESSD云盘,费用约数千元每月。
197 0
|
3月前
|
机器学习/深度学习 弹性计算 编解码
阿里云服务器4核8G配置:ECS实例规格、CPU型号及使用场景说明
阿里云4核8G服务器ECS提供多种实例规格,如高主频计算型hfc8i、计算型c8i、通用算力型u1、经济型e等。各规格基于不同CPU型号与主频性能设计,适用于机器学习、数据分析、游戏服务器、网站应用等多种场景。用户可根据实际需求选择适合的配置,满足高性能计算或经济性要求。更多详情及参数说明可参考官方文档。
740 4
|
2月前
|
存储 缓存 NoSQL
内存管理基础:数据结构的存储方式
数据结构在内存中的存储方式主要包括连续存储、链式存储、索引存储和散列存储。连续存储如数组,数据元素按顺序连续存放,访问速度快但扩展性差;链式存储如链表,通过指针连接分散的节点,便于插入删除但访问效率低;索引存储通过索引表提高查找效率,常用于数据库系统;散列存储如哈希表,通过哈希函数实现快速存取,但需处理冲突。不同场景下应根据访问模式、数据规模和操作频率选择合适的存储结构,甚至结合多种方式以达到最优性能。掌握这些存储机制是构建高效程序和理解高级数据结构的基础。
208 1
|
存储 编译器 C语言
【C语言篇】数据在内存中的存储(超详细)
浮点数就采⽤下⾯的规则表⽰,即指数E的真实值加上127(或1023),再将有效数字M去掉整数部分的1。
809 0
|
11月前
|
存储
共用体在内存中如何存储数据
共用体(Union)在内存中为所有成员分配同一段内存空间,大小等于最大成员所需的空间。这意味着所有成员共享同一块内存,但同一时间只能存储其中一个成员的数据,无法同时保存多个成员的值。
|
11月前
|
存储 C语言
数据在内存中的存储方式
本文介绍了计算机中整数和浮点数的存储方式,包括整数的原码、反码、补码,以及浮点数的IEEE754标准存储格式。同时,探讨了大小端字节序的概念及其判断方法,通过实例代码展示了这些概念的实际应用。
774 1

热门文章

最新文章