阿里、字节offer收割系列:数据仓库岗(面试真题,建议收藏)

本文探讨了Spark中的数据倾斜问题,包括Executor丢失、OOM、Shuffle错误等表现,分析了key分布不均、建表不合理和业务数据激增等原因,并提出从业务逻辑、程序层面、调参和业务数据理解四个方面解决数据倾斜的策略。提供了Hive和Spark的参数调整资源链接。
摘要由CSDN通过智能技术生成

3)Spark中的数据倾斜

Spark中的数据倾斜,包括Spark Streaming和Spark Sql,表现主要有下面几种:

  1. Executor lost,OOM,Shuffle过程出错;

  2. Driver OOM;

  3. 单个Executor执行时间特别久,整体任务卡在某个阶段不能结束;

  4. 正常运行的任务突然失败;

二、数据倾斜产生原因


我们以Spark和Hive的使用场景为例。

他们在做数据运算的时候会涉及到,count distinct、group by、join on等操作,这些都会触发Shuffle动作。一旦触发Shuffle,所有相同key的值就会被拉到一个或几个Reducer节点上,容易发生单点计算问题,导致数据倾斜。

一般来说,数据倾斜原因有以下几方面:

1**)key分布不均匀**

2**)建表时考虑不周**

我们举一个例子,就说数据默认值的设计吧,假设我们有两张表:

user(用户信息表):

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>