更新时间:2026-06-29 GMT+08:00
Hudi性能调优
性能调优方式
当前版本Hudi写入操作主推Spark,因此Hudi的调优和Spark比较类似。
MOR表的性能调优
由于其本质上是写增量文件,调优可以直接根据Hudi的数据大小(dataSize)进行调整。
- 单节点运行:如果dataSize只有几GB,建议在单节点上运行Spark,或者在Yarn模式下只分配一个container。
- 并行度设置:建议并行度p设置为dataSize / 128M。例如,如果dataSize是10GB,那么p应该设置为10 * 1024 / 128 = 80。
- 核心数设置:程序分配的核心数应与并行度p保持一致。
- 内存设置:建议内存大小与core数的比例大于1.5:1,即每个core配1.5 GB内存。
- 堆外内存设置:建议堆外内存大小与core数的比例大于0.5:1。
COW表的性能调优
COW表的原理是重写原始数据,因此这种表的调优,要兼顾dataSize和最后重写的文件数量。总体来说core数量越大越好(和最后重写多少个文件数直接相关),并行度p和内存大小和mor设置类似。
Hudi使用LSM和Native提升读写性能
本章节仅适用MRS 3.6.0-LTS.1及之后版本。
- Native加速特性针对如下场景,可通过参数hoodie.insert.native=true开启:
- spark bulk_insert写入
- flink append mode写入
- LSM特性针对流式入湖加工场景默认开启:
- Flink、Spark实时入湖作业
- Flink、Spark实时加工场景
父主题: 使用Hudi
