更新时间:2026-10-28 GMT+08:00
分享

CheckHudiTable工具

功能说明

检查Hudi表是否存在异常,依次调用多个子工具对表进行检查并输出结果。

命令格式

spark-submit \
--master yarn \
--driver-memory 2G \
--num-executors 3 \
--executor-memory 4G \
--class com.huawei.mrs.hudi.tools.CheckHudiTable \
/opt/hudi-fix-tools-1.0.jar \
${库名.表名} [${分区}]

参数说明

参数

是否必选

参数说明

${库名.表名}

是

需要检查的Hudi表名,格式为库名.表名

${分区}

否

逗号分隔的分区路径列表,仅传递给CleanInvalidFiles检查项使用。不输入则CleanInvalidFiles检查所有分区

检查执行顺序

  1. FixHoodieMetaFile.check() — 元数据文件检查
  2. 如果FixHoodieMetaFile发现错误(hoodie.properties或hoodie.index.properties缺失),提前返回,不再执行后续检查
  3. CleanInvalidFiles.check() — 无效文件检查(使用分区参数)
  4. CleanDuplicativeSchema.check() — 重复schema检查
  5. FixHiveMetadata.check() — Hive元数据检查
  6. CheckWriteSchema.check() — 写入schema检查

输出结果说明

  • 正常流程(所有检查均执行完毕),每项检查独立输出:
    FixHoodieMetaFile RESULT:
    success
    FixHoodieMetaFile MESSAGE:
    No problems found.
    CleanInvalidFiles RESULT:
    success
    CleanInvalidFiles MESSAGE:
    ...
    ...
  • 提前返回(FixHoodieMetaFile发现错误时),仅输出错误信息:
    RESULT:
    success
    MESSAGE:
    ERROR: The hoodie.properties file does not exist.

各子工具的MESSAGE含义参见对应工具的说明。No problems found.表示对应工具未发现表异常,其他信息可以使用对应工具单独进行检查、修改。

使用样例

  • 对表进行全量检查:
    spark-submit --master yarn --driver-memory 2G --num-executors 3 --executor-memory 4G \
    --class com.huawei.mrs.hudi.tools.CheckHudiTable \
    /opt/hudi-fix-tools-1.0.jar \
    mydb.mytable
  • 指定分区检查(分区参数仅影响CleanInvalidFiles检查项):
    spark-submit --master yarn --driver-memory 2G --num-executors 3 --executor-memory 4G \
    --class com.huawei.mrs.hudi.tools.CheckHudiTable \
    /opt/hudi-fix-tools-1.0.jar \
    mydb.mytable "region=east/city=sh,region=east/city=bj"

相关文档