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

肖钟城
  • 大数据技术栈
  • Hudi
大约 1 分钟

使用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

相关参数:

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