diff --git a/README.md b/README.md index 991e6f6..243455f 100644 --- a/README.md +++ b/README.md @@ -600,3 +600,15 @@ spark.shuffle.io.retryWait 5s 1.在程序中找到产生shuffle得算子 2.看log,log一般会报你的哪一行代码,导致OOM异常,看看执行到第几个stage。 +### 数据倾斜解决方案之聚合源数据 +解决数据倾斜的方案: + +1.聚合源数据 + +2.过滤导致倾斜的Key + +聚合源数据的思路: + +spark作业的数据来源,通常是从hive表。对于spark作业的输入源头,可以将同一key的数据进行拼接,对于这种操作,之后可能就没有shuffle操作了,何来数据倾斜? + +如果没法对每一个key进行聚合出来一条数据。可以对于数据进行粗粒度的聚合,比如根据时间或者地域进行聚合,尽量去聚合,减少每个key的数量,也许聚合到比较粗的粒度后,原来的数据减少了,减轻了数据倾斜的现象和问题。