使用Flink对hudi MOR表进行离线压缩

默认情况下,MERGE_ON_READ表的压缩是启用的。 触发器策略是在完成五次提交后执行压缩。 因为压缩会消耗大量内存,并且与写操作处于相同的管道中,所以当数据量很大(> 100000 /秒)时,很容易干扰写操作。 此时,使用离线压缩能够更稳定地执行压缩任务。

压缩任务的执行包括两个部分:计划压缩计划和执行压缩计划。 建议调度压缩计划的进程由写任务周期性触发,默认情况下写参数compact.schedule.enable为启用状态。

离线压缩需要在命令行上提交Flink任务。 程序入口如下: hudi-flink-bundle_2.12-0.9.0.jar : org.apache.hudi.sink.compact.HoodieFlinkCompactor

命令行:

./bin/flink run -c org.apache.hudi.sink.compact.HoodieFlinkCompactor lib/hudi-flink-bundle_2.11-0.9.0.jar --path hdfs://xxx:9000/table

相关参数:

参数名 是否必须 默认值 参数含义
--path frue -- 存储在hudi上的表的路径
--compaction-max-memory false 100 压缩期间日志数据的索引映射大小,默认为100 MB。 如果您有足够的内存,您可以打开这个参数
--schedule false false 是否执行调度压缩计划的操作。 当写进程仍在写时,打开此参数有丢失数据的风险。 因此,开启该参数时,必须确保当前没有写任务向该表写入数据
--seq false LIFO 压缩任务执行的顺序。 默认情况下从最新的压缩计划执行。 LIFI:从最新的计划开始执行。 FIFO:从最古老的计划执行。

1 1 投票
文章评分

本文为从大数据到人工智能博主「xiaozhch5」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://lrting.top/backend/2011/

(0)
上一篇 2021-11-12 19:09
下一篇 2021-11-12 19:15

相关推荐

订阅评论
提醒
guest
0 评论
内联反馈
查看所有评论
0
希望看到您的想法,请您发表评论x