Spark调优解决方案(一)之提交任务时合理分配资源

Hive如何设置hive on spark 模式及提交任务到指定队列 如何设置hive on spark 模式及提交任务到指定队列 阅读详情
一、性能调优之在实际项目中分配更多资源
-------------------------------------------
    分配更多资源:性能调优的王道,
    增加和分配更多的资源,性能和速度上的提升,是显而易见的;
    基本上,在一定范围之内,增加资源与性能的提升,是成正比的;
    写完了一个复杂的spark作业之后,进行性能调优的时候,首先第一步,就是要来调节最优的资源配置;
    在这个基础之上,如果说你的spark作业,能够分配的资源达到了你的能力范围的顶端之后,无法再分配更多的资源了,公司资源有限;
    那么才是考虑去做后面的这些性能调优的点。

二、具体操作
---------------------------------------------
    1.分配哪些资源?
        executor的数量
        cpu per executor 每个executor的core数
        memory per executor 每个executor的内存数
        driver memory 驱动节点分配的内存

    2.在哪里分配这些资源?在我们在生产环境中,提交spark作业时,用的spark-submit shell脚本,里面调整对应的参数
        /usr/local/spark/bin/spark-submit \
        --class cn.spark.sparktest.core.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 \

    3.调节到多大,算是最大呢?
        第一种,Spark Standalone,公司集群上,搭建了一套Spark集群,你心里应该清楚每台机器还能够给你使用的,大概有多少内存,多少cpu core;
        那么,设置的时候,就根据这个实际的情况,去调节每个spark作业的资源分配。
        比如说你的每台机器能够给你使用4G内存,2个cpu core;
        20台机器;executor,20;4G内存,2个cpu core,平均每个executor。

        第二种,Yarn。资源队列。资源调度。应该去查看,你的spark作业,要提交到的资源队列,大概有多少资源?
        500G内存,100个cpu core;executor,50;10G内存,2个cpu core,平均每个executor。

        一个原则,你能使用的资源有多大,就尽量去调节到最大的大小(executor的数量,几十个到上百个不等;executor内存;executor cpu core)


三、原理
---------------------------------------------
    1.首先SparkContext,DAGScheduler,TaskScheduler会将我们的算子,切割成大量的task,提交到Application的excutor上去执行

    2.增加executor的数量 --num-executors
        executor的数量表示了并行任务的执行力,如果executor数量比较少,那么,能够并行执行的task数量就比较少,
        就意味着,我们的Application的并行执行的能力就很弱。
        比如有3个executor,每个executor有2个cpu core,那么同时能够并行执行的task,就是6个。6个执行完以后,再换下一批6个task。

    3.增加executor的核心数 --executor-cores
        增加每个executor的cpu core,也是增加了执行的并行能力。原本20个executor,每个才2个cpu core。
        能够并行执行的task数量,就是40个task。
        现在每个executor的cpu core,增加到了5个。能够并行执行的task数量,就是100个task。
        执行的速度,提升了2.5倍。

    4.增加每个executor的内存大小
        减少磁盘IO
        a.如果需要对RDD进行缓存,那么更多的内存,就可以缓存更多的数据,将更少的数据写入磁盘,甚至不写入磁盘。减少了磁盘IO。
        b.对于shuffle操作,reduce端,会需要内存来存放拉取的数据并进行聚合。如果内存不够,也会写入磁盘。如果给executor分配更多内存以后,就有更少的数据,需要写入磁盘,甚至不需要写入磁盘。减少了磁盘IO,提升了性能。

        减少垃圾处理的消耗
        a.对于task的执行,可能会创建很多对象。如果内存比较小,可能会频繁导致JVM堆内存满了,然后频繁GC,垃圾回收,minor GC和full GC。(速度很慢)。内存加大以后,带来更少的GC,垃圾回收,避免了速度变慢,速度变快了。













Spark开发性能调优 Spark开发性能调优 标签(空格分隔): Spark –Write By Vin 1. 分配资源调优 Spark性能调优的王道就是分配资源,即增加和分配更多的资源对性能速度的提升是显而易见的,基本上,在一定范围之内,增加资源与性能的提升是成正比的,当公司资源有限,能分配的资源达到顶峰之后,那么才去考虑做其他的调优 如何分配及分配哪些资源 在生产环境中,提交spark作业时... 阅读详情

相关推荐

spark调优

目录 1、资源调优 1.1、分配更多的资源 1.2、提高并行度 2、开发调优 2.1、RDD的重用和持久化 2.2、广播变量的使用 2.3、尽量避免使用shuffle类算子 2.4、 使用高性能的算子 2.5、使用Kryo优化序列化性能 2.6、使用fastutil优化数据格式 2.7、调节数据本地化等待时长 3、基于spark内存模型调优 3.1、spark中executor内存划分 3.2、 spark的内存模型 3.3、 任务提交脚本参考 4、shuffle相关参数..

硅谷纵横 3572

Spark 提交任务详解(todo)

参考文章:Spark 提交任务详解 Running Spark on YARN cluster mode : $ ./bin/spark-submit --class org.apache.spark.examples.SparkPi \ --master yarn \ --deploy-mode cluster \ --driver-memory 4g \ ...

justlpf的专栏 811

Spark性能调优方法总结

  Spark的分配资源主要就是 executor、cpu per executor、memory per executor、driver memory 等的调节,我们在生产环境中,提交spark作业时,用的spark-submit shell脚本,里面调整对应的参数: /usr/local/spark/bin/spark-submit –conf spark.default.parallelism=12 –num-executors 3 –executor-cores 2 –executor-me

2301_77948840的博客 3642

Spark提交任务时指定资源

--spark-submit --master yarn # 用yarn来管理资源 --deploy-mode cluster --executor-cores # 每个excutor进程分配多少个内核,一般指定为【3-5】个 --num-executors 50 # 一共申请多少个executor进程 --executor-memory 12G # 每个executor进程分配多少内存,(yarn的cpu与内存的配比是1核:3

feizuiku0116的博客 1118

Spark 调优汇总

​ 阅读文本大概需要 9 分钟。 之前的两篇文章 Spark 调优一瞥 | shuffle 调优 Spark 的 数据本地化 分别讲了 shuffle 的参数调优和数据本地化的调优。 本文将从以下几个方面来介绍一下 Spark 的调优。 资源调优 并行度调优 代码调优 数据本地化 内存调优 shuffle 参数 堆外内存 数据倾斜 (内容较多, 下篇文章...

大数据Spark教程 860

Spark调优:性能调优、JVM调优、shuffle调优、算子调优、troubleshooting调优、数据倾斜

目录 一、性能调优 1、分配资源 2、提高spark运行的并行度 3、重构RDD架构以及RDD持久化 4、使用广播变量 5、使用Kryo序列化 6、使用fastutil集合 7、调节数据本地化等待时长(s) 二、JVM调优 1、JVM调优:降低cache操作的内存占比 2、JVM调优:executor堆外内存与连接等待时长 三、shuffle性能调优 1、shuffle的原理 2、shuf...

Big_data_implicit_ 3073

spark中spark-submit提交样例及参数说明

当我们使用像Yarn这样的集群管理器运行spark应用程序时,会有几个守护进程在后台运行,如NameNode,Secondary NameNode,DataNode,JobTracker和TaskTracker等。这是一种很有前景的部署模式。5.如果资源不变,你的RDD只有2个分区,那么同一时刻只有2个task运行,其余18个核空转,造成资源浪费。上面涉及到Spark的许多部署模式,究竟哪种模式好这个很难说,需要根据你的需求,如果你只是测试Spark Application,你可以选择local模式。

爱折腾的小土豆的博客 6164

Canoe CAPL TCP通信避坑指南:从OnTcpConnect回调不触发到Socket句柄管理

本文详细解析了Canoe CAPL中TCP通信的常见问题与解决方案,包括OnTcpConnect回调不触发的三大原因、Socket句柄管理的内存泄漏风险、数据发送截断规则等。通过实战案例和代码示例,帮助开发者规避TCP通信中的典型陷阱,提升车载网络测试的稳定性和可靠性。

weixin_26976635的博客 358

spark常见的submit参数

spark-submit 是在spark安装目录中bin目录下的一个shell脚本文件,用于在集群中启动应用程序

小枫的博客 1239

给麒麟KylinOS服务器加把锁:手把手配置符合等保要求的密码强度策略

本文详细介绍了如何在麒麟KylinOS服务器上配置符合等保要求的密码强度策略,包括pwquality.conf和login.defs的核心参数设置、等保合规的进阶配置技巧以及企业环境中的平衡艺术。通过实战案例和测试方法,帮助管理员构建坚固的密码防线,确保系统安全。

weixin_33749242的博客 419

MySQL表名大小写敏感问题终极解决:lower_case_table_names=1不生效的3个隐藏坑

本文深入剖析了MySQL表名大小写敏感问题中,设置lower_case_table_names=1参数不生效的三个核心原因。关键在于理解该参数只能在数据库初始化前设置,并需排查配置文件优先级与正确停止服务的顺序。文章提供了从Windows迁移到Linux的完整避坑指南与验证方法,帮助DBA和开发者彻底解决这一跨平台兼容性难题。

weixin_29229055的博客 392

Spark调优(5类调优)

目录 1、资源调优 1.1、分配更多的资源 1.2、提高并行度 2、开发调优 2.1、RDD的重用和持久化 2.2、广播变量的使用 2.3、尽量避免使用shuffle类算子 2.4、使用高性能的算子 2.5、使用Kryo优化序列化性能 2.6、使用fastutil优化数据格式 2.7、调节数据本地化等待时长 3、基于spark内存模型调优 3.1、spark中executor内存划分 3.2、spark的内存模型 3.3、任务提交脚本参考 4、shuffle相关参...

fengge18306的博客 2549

Cloudflare 5秒盾逆向实战:13次请求背后的Python补环境框架搭建指南

本文深入解析了如何通过Python构建浏览器环境模拟框架,以应对Cloudflare 5秒盾等现代Web防护机制。文章详细拆解了其背后复杂的13次请求链,涵盖了JavaScript执行引擎集成、DOM事件模拟、网络请求控制及Canvas指纹等环境检测的完整实现方案,为自动化数据采集和逆向工程提供了实战指南。

gold的博客 351

Spark调优、基于内存模型调优

分配更多的资源 > 它是性能优化调优的王道,就是增加和分配更多的资源,这对于性能和速度上的提升是显而易见的, > 基本上,在一定范围之内,增加资源与性能的提升,是成正比的;写完了一个复杂的spark作业之后,进行性能调优的时候,首先第一步,就是要来调节最优的资源配置;

我的博客 1522

UFS 3.1协议实战解析:从MIPI M-PHY到SCSI命令的完整链路拆解

本文深入解析UFS 3.1存储协议,从MIPI M-PHY物理层到SCSI命令层,完整拆解数据链路。通过分析协议栈三层架构(UIC、UTP、UCS),结合Wireshark抓包实战,详解UPIU数据包传输与SCSI命令封装,并探讨GEAR模式对性能与功耗的影响,为嵌入式存储开发与调试提供实用指南。

weixin_29207533的博客 422

【低轨】Starlink星链-Ku波段OFDM信号同步机制与PNT应用潜力

本文深入解析了Starlink星链Ku波段OFDM信号的同步机制及其在定位、导航与授时(PNT)领域的应用潜力。研究发现,其信号帧内嵌的同步序列具有相位恒定特性,支持超长相干积分,可在极低信噪比下实现高精度伪距测量,为利用低轨卫星通信信号实现高精度PNT服务提供了新的技术路径。

weixin_29250403的博客 730

Spark性能调优

Spark性能调优

qq_40822132的博客 5782

pnpm 卸载教程:彻底移除 pnpm 及全局缓存的方法

卸载 pnpm = 全局包 → CLI → 环境变量 → store 缓存只要按这个顺序来,基本不会留下任何坑。如果你后面还打算重新安装 pnpm / 切换 npm、yarn / 多包管理器共存,这些细节反而更重要,环境一旦干净,后续问题会少很多。

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 932

Spark性能调优之分配资源

分配资源分配资源优化Spark作业问题来了?怎么分配资源? 哪些资源会提高哪块性能?1.增加executor:2.增加每个executor的cpu core:3.增大每个executor的memory内存:结论 分配资源优化Spark作业 分配更多的资源才是性能调优的王道。 在写完一个spark作业后,要进行性能调优的时候,第一件事就是调配更多的资源;如果已经分配到你能力范围内的资源顶端后,公司无...

李献计的博客 874

FPGA学习笔记(一)入门背景、软件及时钟约束的概念及程序下载与固化

使用正点原子的PFPGA开拓者V2学习,通过b站上正点原子的手把手教你学FPGA-基于开拓者V2学习。

贾saisai的博客 3280

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Spark性能调优篇一之任务提交参数调整

写在前面的一些”废话“: 最近在做spark的项目,虽然项目基本功能都实现了,但是在真正的成产环境中去运行,发现程序运行效率异常缓慢;迫于无奈(实际是自己都不忍直视了),所以决定对程序做一番优化操作。在网上查看了不上关于spark程序的优化方法,但是都比较分散不够全面,所以决定就自己编写的基于Java的spark程序,记录一下我所做过的一些优化操作,加深印象方面以后的项目调优使用。这是一个Spark系列的优化操作,包括了很多方面,欢迎大家一块讨论学习。好了,废话好像有点多,下面开始进入正题: 关于spa

我是Mark 1014

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Spark学习——性能调优(一)

其他更多java基础文章: java基础学习(目录) Spark的性能调优主要有以下几个方向: 常规性能调优:分配资源、并行度、RDD架构与缓存等 JVM调优(Java虚拟机):JVM相关的参数,通常情况下,如果你的硬件配置、基础的JVM的配置,都ok的话,JVM通常不会造成太严重的性能问题;反而更多的是,在troubleshooting中,JVM占了很重要的地位;JVM造成线上的spark作...

weixin_33753845的博客 143

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Spark性能调优01-资源调优

本文来自多易教育公众号 Spark性能调优01-资源调优 1. 概述 在开发完Spark作业之后,就该为作业配置合适的资源了。 Spark的资源参数,基本都可以在spark-submit命令中作为参数设置。 资源参数设置的不合理,可能会导致没有充分利用集群资源,作业运行会极其缓慢;或者设置的资源过大,队列没有足够的资源来提供,进而导致各种异常。总之,无论是哪种情况,都会导致Spark作业的运行效率低下,甚至根本无法运行。 因此我们必须对Spark作业的资源使用原理有一个清晰的认识,并知道在Spark作业运行

weixin_47699191的博客 458

spark work目录_Spark 调优指南,8个方面

阅读文本大概需要 9 分钟。之前的两篇文章Spark 调优一瞥 | shuffle 调优​mp.weixin.qq.comSpark 的 数据本地化,提供最佳的计算节点,终于入门了​mp.weixin.qq.com分别讲了 shuffle 的参数调优和数据本地化的调优。本文将从以下几个方面来介绍一下 Spark 的调优。资源调优并行度调优代码调优数据本地化内存调优shuffle 参数堆外内存数据倾...

weixin_34552961的博客 559

数量 spark_spark性能调优1

常规性能调优一:最优资源配置Spark性能调优的第一步,就是为任务分配更多的资源,在一定范围内,增加资源的分配与性能的提升是成正比的,实现了最优的资源配置后,在此基础上再考虑进行后面论述的性能调优策略。资源的分配在使用脚本提交Spark任务时进行指定,标准的Spark任务提交脚本如代码清单2-1所示:代码清单2-1 标准Spark提交脚本/usr/opt/modules/spark/bin/spa...

weixin_39799290的博客 144
上一篇: 电商用户项目架构分析
下一篇: Spark调优解决方案(二)之并行度调节以及RDD架构重用与持久化
疯狂学习的白菜
博客等级 码龄10年 393粉丝 176原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值