spark数据倾斜问题
2016-11-21 22:18
323 查看
数据倾斜:(加更大内存 跟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;
(一) 数据倾斜带来的致命性后果:
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;
相关文章推荐
- spark 数据倾斜问题
- 解决spark中遇到的数据倾斜问题
- spark的数据倾斜问题的解决
- spark中遇到的数据倾斜问题
- spark 通过打散热点key解决数据倾斜问题
- 解决spark中遇到的数据倾斜问题
- spark 数据倾斜问题
- Spark之通过自定义分区器解决数据倾斜问题
- Spark学习笔记之join和数据倾斜问题
- spark学习-28-Spark数据倾斜问题
- 解决spark中遇到的数据倾斜问题
- 第137课: Spark面试经典系列之数据倾斜解决之Map 端Reduce及问题思考
- 解决spark中遇到的数据倾斜问题
- 记录一下SparkStreaming中因为使用redis做数据验证而导致数据结果不对的问题
- spark性能优化:数据倾斜调优
- Spark在shuffle数据的时候遇到的问题
- spark性能优化:数据倾斜调优
- 解决数据倾斜问题
- spark streaming job数据输出数目不准确问题排查记录
- spark性能优化:数据倾斜调优