3)Spark中的数据倾斜
Spark中的数据倾斜,包括Spark Streaming和Spark Sql,表现主要有下面几种:
-
Executor lost,OOM,Shuffle过程出错;
-
Driver OOM;
-
单个Executor执行时间特别久,整体任务卡在某个阶段不能结束;
-
正常运行的任务突然失败;
我们以Spark和Hive的使用场景为例。
他们在做数据运算的时候会涉及到,count distinct、group by、join on等操作,这些都会触发Shuffle动作。一旦触发Shuffle,所有相同key的值就会被拉到一个或几个Reducer节点上,容易发生单点计算问题,导致数据倾斜。
一般来说,数据倾斜原因有以下几方面:
1**)key分布不均匀**

2**)建表时考虑不周**
我们举一个例子,就说数据默认值的设计吧,假设我们有两张表:
user(用户信息表):

本文探讨了Spark中的数据倾斜问题,包括Executor丢失、OOM、Shuffle错误等表现,分析了key分布不均、建表不合理和业务数据激增等原因,并提出从业务逻辑、程序层面、调参和业务数据理解四个方面解决数据倾斜的策略。提供了Hive和Spark的参数调整资源链接。
最低0.47元/天 解锁文章
&spm=1001.2101.3001.5002&articleId=137655152&d=1&t=3&u=8953628c01124672859a8437e69655d3)
961

被折叠的 条评论
为什么被折叠?



