当前位置:   article > 正文

spark数据倾斜问题_adagrad 数据倾斜

adagrad 数据倾斜

数据倾斜:(加更大内存 跟cpu硬件是性能优化的根本之道)


(一)            数据倾斜带来的致命性后果:


1.      OOM(根本原因数据太多)一般OOM都是由于数据倾斜所致,spark基于JVM之上的

2.      速度非常慢



(二)            数据倾斜的基本特征:


1.      任务分配不均匀 

2.      个别task处理过度大量的数据(shuffle过程中遇到同一个key的value太多了。基本都存在业务热点问题,这是现实问题【20%与80%的关系】)


(三)            数据倾斜的定位


1.      Web Ui可以清晰的看见哪些Task运行的数据量大小;

2.      Log的一个好处是可以清晰的告诉是哪一行出现问题OOM,同时的可以清晰的看到在哪个具体stage出现了数据倾斜(数据倾斜一般在shuffle过程中产生),从而定位具体的shuffle代码,也有可能出现绝大多数Task非常快,隔壁非常慢;

3.      代码走读,重点看join、 groupByKey 、 reduceByKey的关键代码;

4.      对数据特征分布进行分析;


 

(四)            均衡数据


大块数据敲碎,数据倾斜时候如果某个key非常多value,那么可以分成多个key,但是一步到位还有可能不尽人意,多步;

把数据规模变大(当一个方向走不通时候就沿着反方向走);

局部聚合+全局聚合;

先取样判断哪个数据多;

ETL对数据的key进行聚合或者对数据join操作,数据倾斜最好方式就是不要产生shuffle;

过滤掉倾斜的key;

适当提高并行度;

利用广播去进行shuffle或者join,能不进行shuffle就进行;

Spark基于RDD构建整个调度体系生态体系,核心一就是复用RDD;

 

 

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/975884
推荐阅读
相关标签
  

闽ICP备14008679号