在线支持
在线支持
微信支持
微信支持
【知识分享】Automerge用法及注意事项
2022-10-27 19:20:11
119次阅读
0个评论
功能介绍
Automerger 用于map端控制map task的数目,它根据每个partition(数据块)所在的位置及大小将多个partitions交给一个task去完成。

控制参数
总开关: ngmr.partition.automerge  默认false
ngmr.partition.mergesize  默认3,控制额外merge的数据块个数
ngmr.partition.mergesize.mb   默认8 (M),控制额外merge的数据块的大小
如果  ngmr.partition.mergesize.mb  为-1, 则不关心数据块的大小。如果数据块足够多,会将 (1 + ngmr.partition.mergesize)  合并到一个task去做。
如果  ngmr.partition.mergesize.mb  不为-1,则额外merge的数据块的大小超过  ngmr.partition.mergesize.mb  时,停止merge。

注意事项
1)只能获取base文件的size,如果一个事务表还没有base,则size为0,ngmr.partition.mergesize.mb不起作用,起作用的是ngmr.partition.mergesize
2)merge之前不检查自身大小,会导致将两个size都很大的数据块合并在一起,导致数据倾斜。
3)为了保证数据的locality,automerge只会将在相同节点的数据块合并。当集群比较大时,数据比较分散,能够合并的数据块会受到限制。

从TDH5.X起,可以用inceptor.mergecube缓解
收藏 0 0

登录 后评论。没有帐号? 注册 一个。

admin

官方人员
  • 0 回答
  • 0 粉丝
  • 0 关注