数据倾斜

spark与hive的数据倾斜

Hive常见的数据倾斜:

(1)本身数据就有倾斜

(2)sql语句造成的数据倾斜

(3)join容易造成数据倾斜

(4)group by造成的数据倾斜

Hive数据倾斜解决方法:

(1)参数调节

(2)SQL语句调节

(3)对于group by或distinct,设定 hive.groupby.skewindata=true

(4)map join可以避免数据倾斜

spark中的数据倾斜:

1、Executor lost,OOM,Shuffle过程出错

2、Driver OOM

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

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

数据倾斜的原因:

[if !supportLists]1. [endif]我们以Spark和Hive的使用场景为例。他们在做数据运算的时候会设计到,countdistinct、group by、join等操作,这些都会触发Shuffle动作,一旦触发,所有相同key的值就会拉到一个或几个节点上,就容易发生单点问题。

[if !supportLists]2. [endif]Shuffle是一个能产生奇迹的地方,不管是在Spark还是Hadoop中,它们的作用都是至关重要的,因为数据分配不均匀导致的数据倾斜。

3.在Spark streaming程序中,数据倾斜更容易出现,特别是在程序中包含一些类似sql的join、group这种操作的时候。 因为Spark Streaming程序在运行的时候,我们一般不会分配特别多的内存,因此一旦在这个过程中出现一些数据倾斜,就十分容易造成OOM。

你可能感兴趣的:(数据倾斜)