使用Hudi-Cli.sh操作Hudi表
前提条件
- 对于开启了Kerberos认证的安全模式集群,已在集群FusionInsight Manager界面创建一个用户并关联“hadoop”和“hive”用户组。
- 已下载并安装Hudi集群客户端。
基础操作
- 使用root用户登录集群客户端节点,执行如下命令:
cd {客户端安装目录}
source bigdata_env
source Hudi/component_env
kinit 创建的用户
- 执行hudi-cli.sh进入Hudi客户端,
cd {客户端安装目录}/Hudi/hudi/bin/
./hudi-cli.sh
- 即可执行各种Hudi命令,执行示例(仅部分命令,全部命令请参考Hudi官网:https://hudi.apache.org/docs/quick-start-guide/):
- 查看帮助:
help 'command' //查看某一个命令的帮助及参数列表。
- 连接表:
- 查看表信息:
- 查看compaction计划:
- 查看clean计划:
- 执行clean:
- 查看commit信息:
- 查看commit写入的分区:
commit showpartitions --commit 20210127153356
20210127153356表示commit的时间戳,下同。
- 查看指定commit写入的文件:
- 比较两个表的commit信息差异:
- rollback指定提交(rollback每次只允许rollback最后一次commit):
- compaction调度:
compaction schedule --hoodieConfigs 'hoodie.compaction.strategy=org.apache.hudi.table.action.compact.strategy.BoundedIOCompactionStrategy,hoodie.compaction.target.io=1,hoodie.compact.inline.max.delta.commits=1'
- 执行compaction
compaction run --parallelism 100 --sparkMemory 1g --retry 1 --compactionInstant 20210602101315 --hoodieConfigs 'hoodie.compaction.strategy=org.apache.hudi.table.action.compact.strategy.BoundedIOCompactionStrategy,hoodie.compaction.target.io=1,hoodie.compact.inline.max.delta.commits=1' --propsFilePath hdfs://hacluster/tmp/default/tb_test_mor/.hoodie/hoodie.properties --schemaFilePath /tmp/default/tb_test_mor/.hoodie/compact_tb_base.json
- 创建savepoint
- 回滚指定的savepoint
savepoint rollback --savepoint 20210318155750
- 若commit写入导致元数据冲突异常,执行commit rollback、savepoint rollback能回退数据,但不能回退Hive元数据,只能删除Hive表然后手动进行同步刷新。
- commit rollback只能回退当前最新的一个commit,savepoint rollback只能回退到最新的一个savepoint。二者均不能随意指定进行回退。
- 查看帮助: