![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spark
文章平均质量分 83
Accelerating
这个作者很懒,什么都没留下…
展开
-
Spark性能优化指南——高级篇
Spark性能优化指南——高级篇调优概述数据倾斜发生时的现象数据倾斜发生的原理如何定位导致数据倾斜的代码某个task执行特别慢的情况某个task莫名其妙内存溢出的情况查看导致数据倾斜的key的数据分布情况数据倾斜的解决方案解决方案一:使用Hive ETL预处理数据解决方案二:过滤少数导致倾斜的key解决方案三:提高shuffle操作的并行度解决方案四:两阶段聚合(局部聚合+全局聚合)解决方案五:将reduce join转为map join解决方案六:采样倾斜key并分拆join操作解决方案七:使用随机前缀和转载 2021-09-07 17:17:02 · 163 阅读 · 0 评论 -
Spark性能优化指南——基础篇
Spark性能优化指南——基础篇1. 前言2.开发调优2.0 调优概述2.1 原则一:避免创建重复的RDD2.2 尽可能复用同一个RDD2.3 原则三:对多次使用的RDD进行持久化2.4 原则四:尽量避免使用shuffle类算子2.5 原则五:使用map-side预聚合的shuffle操作2.6 原则六:使用高性能的算子2.7 原则七:广播大变量2.8 原则八:使用Kryo优化序列化性能2.9 原则九:优化数据结构3.资源调优3.0 调优概述3.1 Spark作业基本运行原理DriverStage和Task转载 2021-09-07 16:22:16 · 139 阅读 · 0 评论 -
Spark技术内幕: Shuffle详解
Spark技术内幕: Shuffle详解通过上面一系列文章,我们知道在集群启动时,在Standalone模式下,Worker会向Master注册,使得Master可以感知进而管理整个集群;Master通过借助ZK,可以简单的实现HA;而应用方通过SparkContext这个与集群的交互接口,在创建SparkContext时就完成了Application的注册,Master为其分配Executor;在应用方创建了RDD并且在这个RDD上进行了很多的Transformation后,触发action,通过DAG转载 2021-09-07 11:18:53 · 199 阅读 · 0 评论 -
Spark技术内幕:Sort Based Shuffle实现解析
Spark技术内幕:Sort Based Shuffle实现解析spark.shuffle.manager 从hash升级为sortSort BasedShuffle的优势Hash based shuffle和Sort based shufflespark.shuffle.manager 从hash升级为sort在Spark 1.2.0中,Spark Core的一个重要的升级就是将默认的Hash Based Shuffle换成了Sort Based Shuffle,即spark.shuffle.mana转载 2021-09-07 10:59:51 · 335 阅读 · 0 评论 -
spark选择去重
在spark计算当中,我们日常有些简单需求,比如去重,比如有四列(appid、date、type、platform),我们只需要对appid,date进行去重,另外两列不关注。在spark中,distinct会对所有列执行去重操作,两行比较,只要有个一列有差异,就不算重复。 要解决,只对某几列进行去重,可以使用Top N 的思路,也就是先分组,分组后,我们只取row_num=1第一行就可以了。具体实现代码如下://选出某几列,去掉空值Dataset dataset = input.selec转载 2021-09-02 15:13:04 · 1157 阅读 · 0 评论 -
spark性能优化-数据倾斜
背景:计算同一品类两两商品的相似度,已有的数据结构:[(cid,int); (pid,int); (features,vector)],商品数4W,商品对8W,用时8h。分析是由于数据倾斜导致,例如cid1有100个商品,cid2有300个商品,cid3有1000个商品,由于根据分类id,计算商品相似度,cid3的商品对在一个task中,导致所有任务都等待这一个task运行结束。优化方案:1、优化数据通信时间消耗商品特征向量是1024维的向量,大约5K,4W商品共200M,可以将图片的特征向量进行广转载 2021-08-25 17:23:16 · 75 阅读 · 0 评论