分布式计算框架系列文章(三)星环科技计算引擎针对数据倾斜现象的引擎保护机制

友情链接


星环的保护机制

为了防止因为数据倾斜导致executor不稳定甚至故障,影响系统的稳定运行,星环科技针对倾斜场景在task中增加了一些安全保护参数,当到达参数上限后,我们将判定存在数据倾斜,为了保护计算引擎,任务将中断并返回一些报错提醒。具体参数及提醒如下:

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或者分桶数


下篇文章将为您讲述如果在计算过程中出现数据倾斜的问题具体应该如何处理?会为您分别介绍不同应对方法涉及的原理以及如何使用,其中也包含了星环自研的SkewJoin的使用方法及工作原理。

① Key分布不均匀 --- 倾斜的key单独处理
② 大表与小表进行关联 --- Map Join
③ 大表与大表进行关联 --- Skew Join


下一篇:分布式计算框架系列文章(四)当出现数据倾斜时如何应对--倾斜key单独处理/MapJoin/星环SkewJoin的原理及使用方法


评论
登录后可评论
发布者
星小环分享号
文章
180
问答
205
关注者
27
banner
关注星环科技
获取最新活动资讯

加入TDH社区版技术交流群

获取更多技术支持 ->

扫描二维码,立即加入