首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏简单聊聊Spark

    Spark性能九之常用算子

            前面介绍了很多关于Spark性能的手段,今天来介绍一下Spark性能的最后一个点,就是关于Spark中常用算子。 coalesce算子就是针对上述出现的问题的一个解决方案,下图是一个解决案例。 ? 应用实例图 3.使用foreachPartition算子进行 默认的foreach对于每一条数据,都要单独调用一次function并创建一个数据库连接,如果数据量很大,对于spark作业是非常消耗性能的 就是使用repartition算子,对SparkSQL查询出来的数据重新进行分区操作,此时可以增加分区的个数。具体使用如下图所示: ? 总结:关于RDD算子的优化,就先讲到这里。 关于整个Spark,基本先告一段落,后面会介绍一些Spark源码分析的知识,欢迎关注。 如需转载,请注明: z小赵 Spark性能九之常用算子

    1.4K10发布于 2018-09-05
  • 来自专栏不温卜火

    Spark性能优化 (2) | 算子

    一. mapPartitions 普通的 map 算子对 RDD 中的每一个元素进行操作,而 mapPartitions 算子对 RDD 中每一个分区进行操作。 因此,mapPartitions算子适用于数据量不是特别大的时候,此时使用mapPartitions算子对性能的提升效果还是不错的。 算子。 四. repartition解决 SparkSQL 低并行度问题 在第一节的常规性能中我们讲解了并行度的调节策略,但是,并行度的设置对于Spark SQL是不生效的,用户设置的并行度只对于Spark 本地聚合后,下一个stage拉取的数据量变少,减少了网络传输的数据量; 3. 本地聚合后,在reduce端进行数据缓存的内存占用减少; 4. 本地聚合后,在reduce端进行聚合的数据量减少。

    1.7K20发布于 2020-10-28
  • Sparse FlashAttention 算子架构分析与技巧

    + vid * bi // 2, :]) T.barrier_all() T.set_cross_flag("MTE3" * v_block + v_block, :]) T.barrier_all() T.set_cross_flag("MTE3" , 2) T.wait_cross_flag(3) T.barrier_all() T.copy 策略与结果Ascend平台的Sparse FlashAttention实现中采用了一系列调策略,并取得了显著的性能收益。 过程中,通过分析算子时间线发现Cube(矩阵乘法)和Vector(激活函数等)之间存在空闲等待,于是采用**CV流水优化:让Cube一次性计算多个块的部分结果并暂存,然后Vector端分次取出处理。

    45610编辑于 2026-01-13
  • 来自专栏五分钟学大数据

    Spark性能-RDD算子篇(深度好文,面试常问,建议收藏)

    Spark之RDD算子 1. RDD复用 在对RDD进行算子时,要避免相同的算子和计算逻辑之下对RDD进行重复的计算,如下图所示: ? 3. 读取大量小文件-用wholeTextFiles 当我们将一个文本文件读取为 RDD 时,输入的每一行都会成为RDD的一个元素。 如果并行度设置不合理而导致并行度过低,会导致资源的极大浪费,例如,20个Executor,每个Executor分配3个CPU core,而Spark作业有40个task,这样每个Executor分配到的 Spark官方推荐,task数量应该设置为Spark作业总CPU core数量的2~3倍。 如果task数量设置为CPU core总数的2~3倍,那么一个task执行完毕后,CPU core会立刻执行下一个task,降低了资源的浪费,同时提升了Spark作业运行的效率。

    1K10发布于 2021-04-01
  • 来自专栏运维经验分享

    tomcat 9.0.4 性能3

    tomcat9.0.4 ---- 参考了网上的一些优化参数,但是在启动中发现 有2个报错: 11-Feb-2018 15:57:23.293 警告 [main] org.apache.catalina.startup.SetAllPropertiesRule.begin [SetAllPropertiesRule]{Server/Service/Connector} Setting property 'maxSpareThreads' to '200' did not find a matching pro

    49640发布于 2019-03-15
  • 来自专栏chenchenchen

    SQL之性能

    WHERE column1 - 3 = -column2 转换成: ... WHERE column1 = -column2 3 还是可以带来查询性能的优化的。 针对专门操作符的 前面,讲的是关于查询条件的一般规则,在这一节中,将讨论如何使用专门的操作符来改进 SQL 代码的性能。 = 1 AND column2 = 'B') 表 3. AND OR 查询 Row# Colmun1 Column21 3 A2 2 B3 1 C 当数据库系统按照查询语进行搜索时,它按照下面的步骤执行: 索引查找 本文总结的是一些 SQL 性能的比较初级的方面,SQL 还包括 Order by,Group by 以及 Index 等等。

    2.3K30发布于 2019-12-03
  • 来自专栏LhWorld哥陪你聊算法

    【Spark篇】---Spark之代码,数据本地化,内存,SparkShuffle,Executor的堆外内存

    一、前述 Spark中大致分为以下几种 ,代码,数据本地化,内存,SparkShuffle,调节Executor的堆外内存。 二、具体    1、代码 1、避免创建重复的RDD,尽量使用同一个RDD 2、对多次使用的RDD进行持久化 如何选择一种最合适的持久化策略? 通过日志或者WEBUI 3、内存 ? 3) gc 多了就会影响Spark的性能和运行的速度。 Spark  JVM主要是降低gc时间,可以修改Executor内存的比例参数。 Spark中如何内存

    2.1K30发布于 2018-09-13
  • 来自专栏不温卜火

    Spark性能优化 (3) | Shuffle

    spark.reducer.maxSizeInFlight参数进行设置,默认为48MB, val conf = new SparkConf() .set("spark.reducer.maxSizeInFlight", "96") 3. 如果在指定次数之内拉取还是没有成功,就可能会导致作业执行失败,默认为3, val conf = new SparkConf() .set("spark.shuffle.io.maxRetries", 当你使用SortShuffleManager时,如果的确不需要排序操作,那么建议将这个参数大一些,大于shuffle read task的数量,那么此时map-side就不会进行排序了,减少了排序的性能开销

    68020发布于 2020-10-28
  • 来自专栏纯洁的微笑

    Tomcat 性能之 JVM

    因此在对Web 容器( 应用服务器) 的中必不可少的是对于 JVM 的。 对于 JVM 的,主要有两个方面考虑: 内存大小配置 垃圾回收算法选择 当然,确切的说,以上两点并不互相独立,内存的大小配置也会影响垃圾回收的执行效率。 延迟、吞吐量 其他 JVM 配置 垃圾回收算法对应到的就是不同的垃圾收集器,具体到在 JVM 中的配置,是使用 -XX:+UseParallelOldGC 或者 -XX:+UseConcMarkSweepGC 所谓,就是一个不断调整和优化的过程,需要观察、配置、测试再如此重复。有相关经验的朋友欢迎留言补充! 说到底,那上面的这些选项是要配置在哪里呢?

    2.2K30发布于 2019-05-06
  • 来自专栏个人积累

    数据库 项目

    Springboot项目 配置文件 更改Tomcat的相关配置 设置Tomcat的最大连接数 设置请求头最大内存 设置post请求的最大内存 设置Tomcat最大线程数 设置Tomcat 的最小工作线程数 JVM 设置项目启动的参数 在vm option处添加配置内容 -XX:MetaspaceSize=128m #(元空间默认大小) -XX:MaxMetaspaceSize=128m

    1K51发布于 2020-10-10
  • 来自专栏SmartSi

    Spark 性能之Shuffle

    因此,如果要让作业的性能更上一层楼,就有必要对 shuffle 过程进行。 但是也必须提醒大家的是,影响一个 Spark 作业性能的因素,主要还是代码开发、资源参数以及数据倾斜,shuffle 只能在整个 Spark 的性能中占到一小部分而已。 因此大家务必把握住的基本原则,千万不要舍本逐末。下面我们就给大家详细讲解 shuffle 的原理,以及相关参数的说明,同时给出各个参数的建议。 2. 5. shuffle相关参数 以下是Shffule过程中的一些主要参数,这里详细讲解了各个参数的功能、默认值以及基于实践经验给出的建议。 建议:在资源参数中讲解过这个参数。如果内存充足,而且很少使用持久化操作,建议调高这个比例,给 shuffle read 的聚合操作更多内存,以避免由于内存不足导致聚合过程中频繁读写磁盘。

    1.8K31发布于 2019-08-08
  • 来自专栏SmartSi

    Spark 性能之开发

    Spark的性能实际上是由很多部分组成的,不是调节几个参数就可以立竿见影提升作业性能的。 整套方案主要分为开发、资源、数据倾斜、shuffle几个部分。 开发和资源是所有Spark作业都需要注意和遵循的一些基本原则,是高性能Spark作业的基础;数据倾斜,主要讲解了一套完整的用来解决Spark作业数据倾斜的解决方案;shuffle,面向的是对 本文作为Spark性能优化指南的基础篇,主要讲解开发。 2. 开发 2.1 概述 Spark性能优化的第一步,就是要在开发Spark作业的过程中注意和应用一些性能优化的基本原则。 开发,就是要让大家了解以下一些Spark基本开发原则,包括:RDD lineage设计、算子的合理使用、特殊操作的优化等。

    1.3K31发布于 2019-08-07
  • 来自专栏ApacheHudi

    | Apache Hudi应用指南

    通过Spark作业将数据写入Hudi时,Spark应用的技巧也适用于此。如果要提高性能或可靠性,请牢记以下几点。 GC:请确保遵循Spark指南中的垃圾收集技巧,以避免OutOfMemory错误。

    1.3K20发布于 2021-04-13
  • 来自专栏SmartSi

    Spark 性能之资源

    整套方案主要分为开发、资源、数据倾斜、shuffle几个部分。 开发和资源是所有Spark作业都需要注意和遵循的一些基本原则,是高性能Spark作业的基础;数据倾斜,主要讲解了一套完整的用来解决Spark作业数据倾斜的解决方案;shuffle,面向的是对 本文作为Spark性能优化指南的基础篇,主要讲解资源。 2. 资源 2.1 概述 在开发完Spark作业之后,就该为作业配置合适的资源了。 Spark是根据shuffle类算子来进行stage的划分。如果我们的代码中执行了某个shuffle类算子(比如reduceByKey、join等),那么就会在该算子处,划分出一个stage界限来。 理解作业基本原理,是我们进行资源参数的基本前提。 2.3 资源参数 了解完了Spark作业运行的基本原理之后,对资源相关的参数就容易理解了。

    2K30发布于 2019-08-07
  • 来自专栏大数据成神之路

    Spark | Spark SQL参数

    本文讲解最近关于在参与hive往spark迁移过程中遇到的一些参数相关问题的。 内容分为两部分,第一部分讲遇到异常,从而需要通过设置参数来解决的;第二部分讲用于提升性能而进行的。 异常 spark.sql.hive.convertMetastoreParquet parquet是一种列式存储格式,可以用于spark-sql 和hive 的存储格式。 性能 除了遇到异常需要被动调整参数之外,我们还可以主动调整参数从而对性能进行。 “maven” Use Hive jars of specified version downloaded from Maven repositories. 3.

    8.3K63发布于 2019-08-16
  • 来自专栏Jed的技术阶梯

    Spark性能01-资源

    理解作业基本原理,是我们进行资源参数的基本前提。 3. spark内存管理 (1) spark-1.5.x版本以前使用静态内存管理 ? 参数建议: Executor的CPU core数量设置为2~4个较为合适。 参数建议: Driver的内存通常来说不设置,或者设置1G左右应该就够了。 --driver-cores 参数说明: Cores for driver (Default: 1) 参数建议: 因为Driver端不会执行task,所以保持默认即可 (3) 提交的任务要充分使用资源 设置参数的3种方法 配置这些参数有两种方式 (1) 在程序中硬编码 例如 sparkConf.set("spark.default.parallelism","100") (2) 提交application

    1.5K20发布于 2018-09-13
  • 来自专栏AustinDatabases

    MONGODB 性能与 -- 内存 1

    所以这又是一个新的系列,关于MONGODB的优化和,下方是一个MONGODB的 内存与磁盘的一个大概的架构。 MONGODB的性能与内存的关系可以用三条线来描述 1 FREE MEMORY 2 Response time 3 swap 用语言来描述,如果你的MONGODB所在的服务器上开始使用了SWAP,

    1.9K30编辑于 2022-04-05
  • 来自专栏山河已无恙

    Linux 性能之CPU认知

    写在前面 博文内容为《性能之巅 系统、企业与云可观测性(第2版)》CPU 章节课后习题答案整理,这是CPU 的最后两篇之一,之后还会整理一篇CPU性能故障的场景分析的博文 内容涉及: CPU 术语 现代处理器也支持乱序执行,即后续的指令可以在前面指令停滞的时候执行,即对于流水线步骤,1,2,3,可以按照,1,3,2 的顺序执行,但是会存在流水线冲突(如数据依赖)需通过分支预测来解决。 37904 2.00 0 python3 37908 37903 37908 2.00 0 python3 37907 37903 37907 2.00 0 python3 37906 37903 37906 2.00 0 python3 37905 37903 当进程进行单CPU亲和性配置的时候,一个进程的多个线程始终中一个CPU运行,这个时候,如果队列长度为3,即可确定该进程,有一个线程中运行,3线程位于队列中。

    1.4K31编辑于 2025-04-09
  • 来自专栏全栈程序员必看

    jvm 命令_java jvm工具

    3类 **性能参数(Performance Options):**用于JVM的性能和内存分配控制,如初始化内存大小的设置; **行为参数(Behavioral Options):**用于改变JVM的基础行为 线上环境 web容器:Tomcat, startup.sh -> catalina.sh(卡特琳娜) 里设置JVM 参数 jsp + jinfo 查看某个java进程的参数,然后再调整设置 真实 tomcat/xxx/xx/heap.hprof 在排查的的时候 jmap -dump:format=b,file=heap.hprof 44808 一般dump下来的文件可以结合工具来分析 4常用工具 5.2程序监控 前提:java 应用程序必然是正常运行的。. 目的:减少GC 频率,减少Full GC 发现现象才去解决? 45% 5.4几个面试问题 无非就是 减少GC次数、减少Full GC,提高应用程序的吞吐量 (1)内存泄漏与内存溢出的区别 内存泄漏:对象无法得到及时的回收,持续占用内存空间,从而造成内存空间的浪费

    1.4K31编辑于 2022-11-17
  • 来自专栏山河已无恙

    Linux 性能之虚拟化

    写在前面 考试整理相关笔记 博文内容涉及Linux VM 常见管理操作以及部分配置 理解不足小伙伴帮忙指正 不必太纠结于当下,也不必太忧虑未来,当你经历过一些事情的时候,眼前的风景已经和从前不一样了 ——村上春树 使用工具进行 可以直接使用 tuned 包里面的适用于虚拟化的参数,tuned 中对于虚拟化通过两个优化配置,一个适用虚拟机,一个适用虚拟机所在的宿主机。 ┌──[root@liruilongs.github.io]-[~] └─$ 可以通过/sys/kerel/mm/ksm/目录下的参数,设置参数: ┌──[root@liruilongs.github.io liruilongs.github.io]-[~] └─$cat /sys/kernel/mm/ksm/sleep_millisecs 30 ┌──[root@liruilongs.github.io]-[~] └─$ 虚拟磁盘配置 xml | grep driver <driver name="qemu" type="qcow2" cache='none'/> 虚拟机磁盘 IO

    92110编辑于 2024-02-27
领券