找回密码
 注册
搜索
热搜: 活动 交友
查看: 721|回复: 1

如何缓解/消除数据倾斜尽量避免数据源的数据倾斜

[复制链接]

149

主题

220

回帖

2740

积分

金牌会员

积分
2740
发表于 2017-8-3 18:05:25 | 显示全部楼层 |阅读模式
以 Spark Stream 通过DirectStream 方式读取Kafka数据为例。 由于 Kafka的 每一个Partition对应Spark的一关 Topic的各Partition之间数据是否平衡,直接决定Spark处理该数据时是否会产生数据倾斜。如 KafKa设计解析(一) - Kafka背景及架构介绍》一文所述,Kafka某一Topic内消息在不同Partition之间的分布,主要有Producer端所使用的Partition实现类决定。如果使用随机Partitioner,则每条消息会随机发送到一个Partition中, 从而概率上来讲,各Partition间的数据会达到平衡。此时源Stage(直接读取Kafka 数据的 Stage)不会产生数据倾斜。
但很多时候,业务场景可能会要求将具备同一特征的数据顺序消费,次是就需要将具有相同特征的数据放于同一个Partition中。一个典型的场景是,需要将同一个用户相关的PV信息置于同一个Partition中。次是如果产生了数据倾斜,则需要通过其它方式处理。

149

主题

220

回帖

2740

积分

金牌会员

积分
2740
 楼主| 发表于 2017-8-3 18:09:39 | 显示全部楼层
大数据分析
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|阿波罗网

GMT+8, 2024-12-24 10:36

快速回复 返回顶部 返回列表