Apache Hudi数据湖的Flink优化参数

本文详细介绍了Hudi表的参数配置,包括Memory、Parallelism和Compaction三个方面。Memory部分涉及write.task.max.size、write.batch.size和write.log_block.size等参数,用于控制写入时的内存使用和数据flush策略。Parallelism部分讨论了写入、分配任务和读取的并行度设置。Compaction部分重点关注在线compaction的参数,如compaction.schedule.enabled和compaction.delta_commits,用于优化数据压缩和合并。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 表参数

1.1 Memory

参数名称描述默认值备注
write.task.max.size每个write task使用的最大内存,超过则对数据进行flush1024MBwrite buffer使用的内存 = write.task.max.size - compaction.max_memory,当write buffer总共使用的内存超过限制,则将最大的buffer进行flush
write.batch.size数据写入batch的大小64MB推荐使用默认配置
write.log_block.sizeHudi的log writer将数据进行缓存,等达到该参数限制,才将数据flush到disk形成LogBlock128MB推荐使用默认配置
write.merge.max_memoryCOW类型的表,进行incremental data和data file能使用的最大heap size100MB推荐使用默认配置
compaction.max_memory每个write task进行compaction能使用的最大heap size100MB如果是online compaction,且资源充足,可以调大该值,如1024MB

1.2 Parallelism

参数名称描述默认值备注
write.taskswrite task的并行度,每一个write task写入1~N个顺序buckets4增加该值,对小文件的数据没有影响
write.bucket_assign.tasksbucket assigner operators的并行度Flink的parallelism.default参数增加该值,会增加bucket的数量,所以也会增加小文件的数量
write.index_boostrap.tasksindex bootstrap的并行度Flink的parallelism.default参数
read.tasksread operators的并行度4
compaction.tasksonline compaction的并行度4推荐使用offline compaction

1.3 Compaction

只适用于online compaction

参数名称描述默认值备注
compaction.schedule.enabled是否定期生成compaction plantrue即使compaction.async.enabled = false,也推荐开启该值
compaction.async.enabledMOR类型表默认开启Async Compactiontruefalse表示关闭online compaction
compaction.trigger.strategy触发compaction的Strategynum_commits可选参数值:1. num_commits:delta commits数量达到多少;2. time_elapsed:上次compaction过后多少秒;3. num_and_time:同时满足num_commits和time_elapsed;4. num_or_time:满足num_commits或time_elapsed
compaction.delta_commits5
compaction.delta_seconds3600
compaction.target_io每个compaction读写合计的目标IO,默认500GB512000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值