Spark性能调优(二)

spark性能调优(二)之资源调优 前言: 理解资源调优,说白了就是为spark程序提供合理的内存资源、cpu资源等。所以需要知道有哪些参数可以设置这些资源。 –conf PROP=VALUE 手动给sparkConf指定相关配置,比如–conf spark.serializer=org.apache.spark.serializer.KryoSeri... 阅读详情

一:Task性能优化

1,慢任务(数据倾斜或机器故障)的性能优化:可以考虑减少每个partition处理的数据量,同时建议开启Spark.speculation;

2,尽量减少Shuffle,例如我们要减少groupByKey的操作,因为groupByKey会要求通过网络拷贝(Shuffle)所有的数据,有限考虑使用reduceByKey,因为会首先reduce locally;再例如在进行join操作的时候,形如(K1,V1)和(K1,V2)=> (K1,V3)此时就可以进行pipeline,但是(o1)join(o2)=>o3,此时就会产生Shuffle操作;

3,Repatition:增加Task数量的时候可以考虑使用,从而更加充分使用计算资源;Coalesce整理Partition碎片;当partition分片数量由大变小要用Coalesce(其中shuffle=false),而Repartition是无论如何都进行Shuffle;

二:数据倾斜:一般发生在Shuffle

1,定义更加合理的Key(或者说自定义Partitioner)。

2,可以考虑使用ByteBuffer来存储Block,最大的存储数据为2G,如果超过这个大小会报异常;

三:网络性能优化

1,可以考虑Shuffle的数据放在Tachyon中带来更好的数据本地性,减少网络的Shuffle;

2,优先采用Netty的方式进行网络通信;

3,广播:例如进行Join操作的时候采用Broadcast可以达到完全的数据本地性的情况下进行Join操作;

4,mapPartitions中的函数会直接作用于整个Partition(一次!!!);

5,最优先考虑是PROCESS_LOCAL(Spark默认情况下也是这样做的),所以你更应该考虑使用Tachyon;

6,如果要访问Hbase或Canssandra,务必保证数据处理发送在数据所在的机器上;可以参考华为的astro的项目中的Task本地化的实现。

ps:前面的Stage执行完了才能执行下一个Stage,前面的Stage中的任一Task没完成,说明这个Stage还没完成,无法进行下一个Stage作业。

[Spark]二Spark性能调优|Spark任务监控|程序调优|资源调优 对Spark性能的调优离不开对任务的监控,只有在运行过程中,通过监控手段发现问题,才能迅速定位问题所在。SparkUI使用在运行Spark应用程序时,默认会在Driver节点的4040端口启动WebUI服务,通过此WebUI可对Spark的应用程序的Job划分、Stage划分、Task执行缓存的使用等各个方面进行了监控。在执行Shuffle操作时,Map端使用ExternalSorter对数据进行分组,按分区排序,如果内存不足,则会将内存中的数据写入磁盘,为后续数据迭代留出内存空间。 阅读详情

相关推荐

spark性能调优(二):内存

spark性能调优

nzbing的博客 1744

Spark性能优化第二季

一:Task性能优化1,慢任务(数据倾斜或机器故障)的性能优化:可以考虑减少每个partition处理的数据量,同时建议开启spark.speculation;2,尽量减少Shuffle,例如我们要减少groupByKey的操作,因为groupByKey会要求通过网络拷贝(Shuffle)所有的数据,有限考虑使用reduceByKey,因为会首先reduce locally;再例如在进行join操作

sundujing的博客 675

使用pytorch构建LSTM_AE模型的两种方式

2.基本LSTM_Unit计算——基本LSTM_AE结构 3.自定义LSTM_Unit计算——自定义LSTM_AE结构 1.LSTM-Encoder-Decoder模型结构及简要解析 图基本lstm计算单元

qq_37840762的博客 7273

Spark性能优化-coalesce(n)

有时用Spark 运行Job 的时候,输出可能会出现一些空或者小内容。这时重新将输出的Partition 进行重新调整,可以减少RDD中Patition的数目。 两种方式: 1. coalesce(numPartitions:Int, shuffle:Boolean = false) 2. repartition(numPartitions:Int) 转载于:https:...

weixin_30621919的博客 194

一文带你完成ARMv8架构中的cache知识点

【摘要】 在最初开发ARM架构时,处理器的时钟速度和内存的访问速度大致相同。今天的处理器内核要复杂得多,其时钟速度可以快上几个数量级。但是,外部总线和内存设备的频率并没有扩大到同样的程度。有可能实现小块的片上SRAM,它可以以与内核相同的速度运行,但是与标准的DRAM块相比,这种RAM非常昂贵,因为后者的容量可以达到数千倍。在许多基于ARM处理器的系统中,访问外部存储器需要几十甚至几百个内核周期。 cache的技术背景 在最初开发ARM架构时,处理器的时钟速度和内存的访问速度大致相同。今天的处.

ABCCloud的博客 1853

武汉理工大学数据结构综合实验——连连看游戏综合实践

文章目录实验目的主要仪器设备及耗材一、实验要求二、分析与设计(非线性结构)1.数据结构的设计2.核心算法设计一条直线消子两条直线消子三条直线消子初始化游戏地图搜寻路径提示和重排3.测试用例设计4.测试效果总结 实验目的 (1)线性结构实验目的 调研连连看游戏,了解连连看游戏的功能和规则等 掌握集成开发工具VS2019的使用和C++的基础编程 了解MFC框架 了解线性结构,掌握数组的遍历、消子和胜负判断等算法 了解企业软件开发过程,应用迭代开发思路进行项目开发,养成良好的编程习惯和培养软件工程化思维 .

mo_zhe的博客 7611

Spark面对OOM问题的解决方法及优化总结

分布式计算系统最常见的问题就是OOM问题,本文主要讲述Spark中OOM问题的原因和解决办法,并结合笔者实践讲述了一些优化技巧。涉及shuffle内存溢出,map内存溢出。spark代码优化技巧和spark参数优化技巧。

拱头的专栏 6万+

双目立体成像(一)双目图片生成点云

利用左右目图片生成点云

qq_62964142的博客 4550

spark 处理小文件问题

coalesce与repartition  解决小文件问题repartition(numPartitions: Int)   返回numPartitions分区个数的新RDD(或DataFrame)。   可以增加或减少此RDD中的并行性级别,内部使用shuffle来重新分配数据。   如果要减少partition数量,可考虑使用`coalesce`,这可以避免执行shuffle。 ...

wjl7813的博客 1万+

ECC椭圆曲线加解密原理详解(配图)

椭圆曲线加解密原理详解 本文主要参照:ECC椭圆曲线详解(有具体实例)[1] 前言: 椭圆曲线(ECC)加密原理跟RSA加解密原理比起来,可真是晦涩难懂。拜读了大神Kalafinaian文章“ECC椭圆曲线详解(有具体实例)”,终于看到了参透的曙光。 由于原文中有微小的瑕疵,也为了便于阅读起来更加流畅,我重新整理了一下这篇文章。 为什么使用椭圆曲线加密算法? RSA的解决分解整数问题需要亚指数...

Mark的博客 7万+

Python爬虫实战:中国土地市场网招拍挂数据抓取与分析

本文详细介绍了如何使用Python爬虫技术从中国土地市场网抓取土地招拍挂数据,并进行初步的数据分析与可视化。文章涵盖了爬虫的基本原理、反爬虫策略应对、数据清洗与存储、数据分析与可视化等多个方面,为土地市场研究者提供了一套完整的数据获取与分析解决方案。

2201_76125261的博客 684

Spark四种性能调优思路(二)——资源调优

呕心沥血之作《Spark四种性能调优思路》

a805814077的博客 2414

uniapp - 如何跟内嵌 web-view 组件内的网页交互,与 web-view 内嵌网页进行双向通信(uniapp 与 webview 网页之间的 “相互“ 传值)提供详细的示例代码及解决方案

uni-app如何实现在H5环境中与web-view中的网页交互通讯uniappuni-app 与 web-view内嵌网页 双向通信 如何跟内嵌web-view交互uniappAPP与webview子页面交互uniappAPP与webview子页面交互关于uni-app 使用 web-view 页面之间互相跳转、通信等问题uniapp的web-view嵌入网页,网页与uniapp通信webview如何与uniapp写的H5页面交互嵌套webview调用uniapp各种API组件实现H5和app通讯和交互

✅ 精选推荐文章 1万+

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

其他更多java基础文章: java基础学习(目录) 继续上一篇Spark学习——性能调优(一)的讲解 降低cache操作的内存占比 关于RDD内存的使用,后面会专门写一篇,可以配合学习阅读 spark中,堆内存又被划分成了两块儿,一块儿是专门用来给RDD的cache、persist操作进行RDD数据缓存用的;另外一块儿,就是我们刚才所说的,用来给spark算子函数的运行使用的,存放函数中自...

weixin_33884611的博客 134

我的GIT练习ONE

Git 是一个分布式版本控制及源代码管理工具;Git 可以为你的项目保存若干快照,以此来对整个项目进行版本管理每一次的练习,都是对自身知识的巩固,以及对自身知识的一个测试。

是个非常热爱生活、乐观、奋斗、努力的逗比青年 8867

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Spark性能调优 Shuffle(二)

1.shuffle原理 什么样的情况下,会发生shuffle? 在spark中,主要是以下几个算子:groupByKey、reduceByKey、countByKey、join,等等。 什么是shuffle? groupByKey,要把分布在集群各个节点上的数据中的同一个key,对应的values,都给集中到一块儿,集中到集群中同一个节点上,更严密一点说,就是集中到一个节点的一个execu...

yuxiang1014的专栏 352

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Spark性能优化【二】- 资源调优

调优概述 Spark的资源参数,基本都可以在spark-submit命令中作为参数设置。很多Spark初学者,通常不知道该设置哪些必要的参数,以及如何设置这些参数,最后就只能胡乱设置,甚至压根儿不设置。资源参数设置的不合理,可能会导致没有充分利用集群资源,作业运行会极其缓慢;或者设置的资源过大,队列没有足够的资源来提供,进而导致各种异常。总之,无论是哪种情况,都会导致Spark作业的运行效率低下,甚至根本无法运行。因此我们必须对Spark作业的资源使用原理有一个清晰的认识,并知道在Spark作业运行过程中

Rnan_prince的博客 674

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Spark性能调优 之 算子调优(二)

参考网站: http://spark.apache.org/docs/latest/configuration.html http://spark.apache.org/docs/latest/tuning.html 一:mapPartitions map(_....)//_表示每一个元素 mapPartitions(_....)//_表示每个分区的数据组成的迭代器 普通的map算子对...

MannerXu的博客 366

spark调优(二)【spark性能调优(官方)】

Spark调优 由于大部分Spark计算都是在内存中完成的,所以Spark程序的瓶颈可能由集群中任意一种资源导致,如:CPU、网络带宽、或者内存等。最常见的情况是,数据能装进内存,而瓶颈是网络带宽;当然,有时候我们也需要做一些优化调整来减少内存占用,例如将RDD以序列化格式保存。 本文将主要涵盖两个主题:1.数据序列化(这对于优化网络性能极为重要);2.减少内存占用以及内存调优。同时

极客神殿 799

二、Spark性能调优——RDD优化

1 RDD 复用 在对 RDD 进行算子时, 要避免相同的算子和计算逻辑之下对 RDD 进行重复的计算, 优化前如图 优化后如图 2 RDD 持久化 在 Spark 中,当多次对同一个 RDD 执行算子操作时, 每一次都会对这个 RDD以之前的父 RDD 重新计算一次,这种情况是必须要避免的,对同一个 RDD 的重复计算是对资源的极大浪费,因此, 必须对多次使用的 RDD 进行持...

嘻哈吼嘿呵的博客 363

二、Spark性能优化:资源调优篇

转自:https://blog.youkuaiyun.com/u012102306/article/details/51637366 在开发完Spark作业之后,就该为作业配置合适的资源了。Spark的资源参数,基本都可以在spark-submit命令中作为参数设置。很多Spark初学者,通常不知道该设置哪些必要的参数,以及如何设置这些参数,最后就只能胡乱设置,甚至压根儿不设置。资源参数设置的不...

一朵的专栏 277

spark性能调优(二)shuffle调优

shuffle调优 什么情况下会发生shuffle,然后shuffle的原理是什么,然后我们再一一的剖析! 包括我们后面讲troubleShooting的时候还有我们之前JVM是不是都需要知道shuffle的原理! 希望同学们把shuffle原理重视起来啊! 什么样的情况下,会发生shuffle? 在spark中,主要是以下几个算子:groupByKey、redu

谭谦的博客 1290

Apache Spark Jobs 性能调优(二)

在这篇文章中,首先完成在 Part I 中提到的一些东西。作者将尽量覆盖到影响 Spark 程序性能的方方面面,你们将会了解到资源调优,或者如何配置 Spark 以压榨出集群每一分资源。然后我们将讲述调试并发度,这是job性能中最难也是最重要的参数。最后,你将了解到数据本身的表达形式,Spark 读取在磁盘的上的形式(主要是Apache Avro和 Apache Parquet)以及当数据需要

铭霏的记事本 1589
上一篇: Spark性能调优(一)
下一篇: Spark性能调优(三)
囧芝麻
博客等级 码龄10年 10粉丝 47原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值