|
|
|
@ -612,3 +612,11 @@ spark.shuffle.io.retryWait 5s
|
|
|
|
|
spark作业的数据来源,通常是从hive表。对于spark作业的输入源头,可以将同一key的数据进行拼接,对于这种操作,之后可能就没有shuffle操作了,何来数据倾斜?
|
|
|
|
|
|
|
|
|
|
如果没法对每一个key进行聚合出来一条数据。可以对于数据进行粗粒度的聚合,比如根据时间或者地域进行聚合,尽量去聚合,减少每个key的数量,也许聚合到比较粗的粒度后,原来的数据减少了,减轻了数据倾斜的现象和问题。
|
|
|
|
|
### 数据倾斜解决方案之提高shuffle操作reduce端的并行度
|
|
|
|
|
将reduce task的数量变多,就可以让每个reduce task分配到更少的数据量,这样的话,也许就可以缓解,或者甚至是解决数据倾斜的问题
|
|
|
|
|
|
|
|
|
|
提升shuffle reduce端并行度,怎么操作?
|
|
|
|
|
|
|
|
|
|
在调用的时候,传入进入一个参数,这个数字表示reduce端的并行度。
|
|
|
|
|
|
|
|
|
|
这个方案只是缓解了数据倾斜的问题。
|
|
|
|
|