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
Logo

永洪科技,致力于打造全球领先的数据技术厂商,具备从数据应用方案咨询、BI、AIGC智能分析、数字孪生、数据资产、数据治理、数据实施的端到端大数据价值服务能力。

更多推荐