Hudi系列22:离线Clusting

一. 离线 Clustering

异步的 clustering 相对于 online 的 async clustering 资源隔离, 从未更加稳定。

1.1 设置参数

  1. clustering.async.enabled 为 false,关闭在线 clustering。

  2. clustering.scheduler.enabled 仍然保持开启,由写任务阶段性出发 clustering plan。

1.2 原理

一个 clustering 的任务的执行包括两部分:

  1. schedule plan
    推荐由写定时出发,写参数 clustering.schedule.enabled 默认开启。

  2. 执行对应的plan

1.3 使用方式

1.3.1 执行命令

离线 clustering 需要 手动执行 Java 程序, 程序入口:

  1. hudi-flink1.14-bundle-0.12.0.jar
  2. org.apache.hudi.sink.clustering.HoodieFlinkClusteringJob
// 命令行的方式
./bin/flink run -c org.apache.hudi.sink.clustering.HoodieFlinkClusteringJob lib/hudi-flink1.14-bundle-0.12.0.jar --path hdfs://xxx:8020/table

1.3.2 参数配置

参数名required默认值备注
–pathtrue目标表的路径。
–clustering-tasksfalse-1Clustering task 的并发,默认是待压缩 file group 的数量
–schedulefalsefalse是否要 执行 schedule clustering plan 的操作,当写流程还在持续写入表数据的时候,开启这个参数有丢失查询数据的风险,所以开启该参数一定要保证当前没有任务往表里写数据,写任务的 clustering plan 默认是一直 schedule 的,除非手动关闭(默认 4个 commits 一次 clustering)
–seqfalseLIFO执行压缩任务的顺序,默认是从最新的压缩plan 开始执行,可选值: LIFO:从最新的plan开始执行; FIFO: 从最老的plan开始执行
–target-file-max-bytesfalse1024 * 1024 * 1024最大目标文件,默认1GB
–small-file-limitfalse600小于该大小的文件会参与clustering,默认600MB
–sort-columnsfalseN/AClustering 可选排序列
–servicefalsefalse是否开启 service 模式,service模式会打开常驻进程,一直监听压缩并提交到 集群执行(从0.11 开始执行)
–min-compaction-interval-secondsfalse600 (单位 秒)service 模式下的执行间隔,默认10分钟
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值