zhw1058
monster-s
2019-02-21 15:56

spark 出现很严重的数据倾斜,跑批时间很长,有时候会报错

  • scala

目前在开发一个统计指标的脚本,跑批出现了严重的数据倾斜,
图片说明

有时候报java.lang.IllegalArgumentException: Size exceeds Integer.MAX_VALUE,但是分析sql里用到的key,在之前的商户号作为key的时候,差别也是最多的几百条,最少的几条,但是几百条的居多,以商户号和维度类别作为key的时候,分布如下

key条数正数5个
+---+---------------+--------------+
| 条数| merchant_id|statistic_type|
+---+---------------+--------------+
| 5| null| 5|
| 4|822100047220249| 5|
| 4|303300048120004| 5|
| 4|303450053310001| 5|
| 4|303650058130002| 5|
+---+---------------+--------------+

key条数倒数5个
+---+---------------+--------------+
| 条数| merchant_id|statistic_type|
+---+---------------+--------------+
| 1|822100051310533| 6|
| 1|822100059630118| 6|
| 1|822100052512420| 6|
| 1|822100055411357| 6|
| 1|822100058124973| 6|
+---+---------------+--------------+

,可是再task里,大部分都平均,就有某一个task数据量是其他的1000倍左右,看起来不像我group by的key分布不均导致的,请教各位大神,这是什么原因导致的?

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

1条回答

为你推荐

换一换