TDH计算引擎针对数据倾斜现象的保护机制
Shuffle Write阶段当出现数据倾斜时将出现Bucket size is too large (>2G) after compress的报错提醒,此时应当调整reduce number或者调整分桶策略;
·
shuffle write阶段
Shuffle Write阶段当出现数据倾斜时将出现Bucket size is too large (>2G) after compress的报错提醒,此时应当调整reduce number或者调整分桶策略;
shuffle read阶段
参数一:ngmr.safety.size.single.entry -- hive-site.xml
- 该参数默认值512000000,单位为byte,可session级别生效;
- 注释:单task内相同key对应的value的数据量达到512MB的上限,判定为数据倾斜,报错Data skew for single key found;
- 当出现这个报错提醒时的解决方案:common join转map join或skewjoin
参数二:ngmr.trie.keychunk.mb -- hive-site.xml
- 默认值-1,可session级别生效;
- 注释:
a)单task内所有key本身的总数据量达到2G(默认值情况下内部赋值16,16M*128)的上限,不同key太多了,可判定为数据倾斜,报错Key size is exceed;
b)单个key本身的数据大小超过16MB,报错Can't put key into keychunk, because key length exceed;
c)单task内所有key本身的总数据量达到4G(参数不可调),报错Can't put key into keychunk, because key length exceed 4GB;
- 当出现这个报错提醒时的解决方案:调整reduce number或者分桶数
参数三:ngmr.trie.node.max -- hive-site.xml
- 默认值20480000,可session级别生效;
- 注释:与ngmr.trie.keychunk.mb类似,不同key太多了,可判定为数据倾斜,报错Exceed max trie node in key chunk;
- 当出现这个报错提醒时的解决方案:调整reduce number或者分桶数
- 大表与小表进行关联 --- Map Join
大表与大表进行关联 --- Skew Join
更多推荐
所有评论(0)