我是靠谱客的博主 壮观夕阳,最近开发中收集的这篇文章主要介绍Apache Hudi数据湖hudi-cli客户端使用1. 开启hudi-cli2. 创建表3. desc4. connect表5. 查看commit信息6. 查看FileSystem信息: show fsview7. 文件大小Statistics8. Compactions,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
目录
- 1. 开启hudi-cli
- 2. 创建表
- 3. desc
- 4. connect表
- 5. 查看commit信息
- 5.1 commits show
- 5.2 commit showpartitions
- 5.3 commit showfiles
- 6. 查看FileSystem信息: show fsview
- 7. 文件大小Statistics
- 8. Compactions
- 8.1 查看compaction
- 8.2 schedule或run compaction
- 8.3 验证compaction
- 8.4 Unscheduling Compaction
- 8.5 Repair Compaction
1. 开启hudi-cli
[root@bigdata001 hudi-cli]#
[root@bigdata001 hudi-cli]# pwd
/opt/hudi/hudi-master/hudi-cli
[root@bigdata001 hudi-cli]#
[root@bigdata001 hudi-cli]# sh hudi-cli.sh
Client jar location not set, please set it in conf/hudi-env.sh
Running : java -cp /opt/hadoop-3.3.1/etc/hadoop:......省略部分......
......省略部分......
===================================================================
*
___
___
*
*
/__
___
/
___
*
*
/ /
/
/__
/
/
*
*
/ /__/
/ /
/
/ /
*
*
/
___
/ /
/
/ /
__
/
__
*
*
/ /
/__
/ /__/
___
/ /__/ |__|
/ //__/
*
*
/
/ /
/
/__
/ /
/
// /
/
*
*
/
/
/ /
/
/ /
/
/__/
*
*
/ /
/
/ /
/
/ /
/
__
*
*
/ /
/
/
/
/
/
/__/
*
*
/__/
/__/
/__/
Apache Hudi CLI
*
*
*
===================================================================
Welcome to Apache Hudi CLI. Please type help if you are looking for help.
hudi->
hudi->help
......省略部分......
hudi->
2. 创建表
语法如下
hudi->
hudi->create --path hdfs://nnha/user/hudi/warehouse/hudi_db/test_tb --tableName test_tb --tableType COPY_ON_WRITE
2022-03-31 07:50:19,220 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
2022-03-31 07:50:20,657 INFO table.HoodieTableMetaClient: Loading HoodieTableMetaClient from hdfs://nnha/user/hudi/warehouse/hudi_db/test_tb
2022-03-31 07:50:22,221 INFO table.HoodieTableMetaClient: Initializing hdfs://nnha/user/hudi/warehouse/hudi_db/test_tb as hoodie table hdfs://nnha/user/hudi/warehouse/hudi_db/test_tb
2022-03-31 07:50:22,757 INFO table.HoodieTableMetaClient: Loading HoodieTableMetaClient from hdfs://nnha/user/hudi/warehouse/hudi_db/test_tb
2022-03-31 07:50:22,764 INFO table.HoodieTableConfig: Loading table properties from hdfs://nnha/user/hudi/warehouse/hudi_db/test_tb/.hoodie/hoodie.properties
2022-03-31 07:50:22,864 INFO table.HoodieTableMetaClient: Finished Loading Table of type COPY_ON_WRITE(version=1, baseFileFormat=PARQUET) from hdfs://nnha/user/hudi/warehouse/hudi_db/test_tb
2022-03-31 07:50:22,864 INFO table.HoodieTableMetaClient: Finished initializing Table of type COPY_ON_WRITE from hdfs://nnha/user/hudi/warehouse/hudi_db/test_tb
2022-03-31 07:50:22,865 INFO table.HoodieTableMetaClient: Loading HoodieTableMetaClient from hdfs://nnha/user/hudi/warehouse/hudi_db/test_tb
2022-03-31 07:50:22,872 INFO table.HoodieTableConfig: Loading table properties from hdfs://nnha/user/hudi/warehouse/hudi_db/test_tb/.hoodie/hoodie.properties
2022-03-31 07:50:22,881 INFO table.HoodieTableMetaClient: Finished Loading Table of type COPY_ON_WRITE(version=1, baseFileFormat=PARQUET) from hdfs://nnha/user/hudi/warehouse/hudi_db/test_tb
Metadata for table test_tb loaded
hudi:test_tb->
此时HDFS上的目录结构为
hudi_db/test_tb
|---.hoodie
|---.aux
|---.bootstrap
|---.fileids(目录)
|---.partitions(目录)
|---.temp(目录)
|---archived(目录)
|---hoodie.properties
3. desc
hudi:test_tb->desc
╔════════════════════════════════╤═════════════════════════════════════════════════════════╗
║ Property
│ Value
║
╠════════════════════════════════╪═════════════════════════════════════════════════════════╣
║ basePath
│ hdfs://nnha/user/hudi/warehouse/hudi_db/test_tb
║
╟────────────────────────────────┼─────────────────────────────────────────────────────────╢
║ metaPath
│ hdfs://nnha/user/hudi/warehouse/hudi_db/test_tb/.hoodie ║
╟────────────────────────────────┼─────────────────────────────────────────────────────────╢
║ fileSystem
│ hdfs
║
╟────────────────────────────────┼─────────────────────────────────────────────────────────╢
║ hoodie.table.name
│ test_tb
║
╟────────────────────────────────┼─────────────────────────────────────────────────────────╢
║ hoodie.table.type
│ COPY_ON_WRITE
║
╟────────────────────────────────┼─────────────────────────────────────────────────────────╢
║ hoodie.archivelog.folder
│ archived
║
╟────────────────────────────────┼─────────────────────────────────────────────────────────╢
║ hoodie.timeline.layout.version │ 1
║
╟────────────────────────────────┼─────────────────────────────────────────────────────────╢
║ hoodie.table.checksum
│ 484490499
║
╟────────────────────────────────┼─────────────────────────────────────────────────────────╢
║ hoodie.table.version
│ 4
║
╚════════════════════════════════╧═════════════════════════════════════════════════════════╝
hudi:test_tb->
4. connect表
hudi->connect --path hdfs://nnha/user/hudi/warehouse/hudi_db/my_user
2022-03-31 07:47:08,229 INFO table.HoodieTableMetaClient: Loading HoodieTableMetaClient from hdfs://nnha/user/hudi/warehouse/hudi_db/my_user
2022-03-31 07:47:08,618 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
2022-03-31 07:47:11,361 INFO table.HoodieTableConfig: Loading table properties from hdfs://nnha/user/hudi/warehouse/hudi_db/my_user/.hoodie/hoodie.properties
2022-03-31 07:47:11,662 INFO table.HoodieTableMetaClient: Finished Loading Table of type MERGE_ON_READ(version=1, baseFileFormat=PARQUET) from hdfs://nnha/user/hudi/warehouse/hudi_db/my_user
Metadata for table my_user loaded
hudi:my_user->
5. 查看commit信息
5.1 commits show
hudi:my_user->
hudi:my_user->commits show --sortBy "Total Bytes Written" --desc true --limit 3
2022-03-31 08:07:30,834 INFO timeline.HoodieActiveTimeline: Loaded instants upto : Option{val=[20220326234620162__deltacommit__COMPLETED]}
╔═══════════════════╤═════════════════════╤═══════════════════╤═════════════════════╤══════════════════════════╤═══════════════════════╤══════════════════════════════╤══════════════╗
║ CommitTime
│ Total Bytes Written │ Total Files Added │ Total Files Updated │ Total Partitions Written │ Total Records Written │ Total Update Records Written │ Total Errors ║
╠═══════════════════╪═════════════════════╪═══════════════════╪═════════════════════╪══════════════════════════╪═══════════════════════╪══════════════════════════════╪══════════════╣
║ 20220326233339019 │ 1.8 KB
│ 0
│ 2
│ 2
│ 2
│ 0
│ 0
║
╟───────────────────┼─────────────────────┼───────────────────┼─────────────────────┼──────────────────────────┼───────────────────────┼──────────────────────────────┼──────────────╢
║ 20220326234620162 │ 906.0 B
│ 0
│ 1
│ 1
│ 1
│ 1
│ 0
║
╚═══════════════════╧═════════════════════╧═══════════════════╧═════════════════════╧══════════════════════════╧═══════════════════════╧══════════════════════════════╧══════════════╝
hudi:my_user->
5.2 commit showpartitions
hudi:my_user->commit showpartitions --commit 20220326234620162 --sortBy "Total Bytes Written" --desc true --limit 3
╔═════════════╤══════════════════╤═══════════════════╤═════════════════════╤════════════════════════╤═══════════════════════╤═════════════════════╤══════════════╗
║ Action
│ Partition Path
│ Total Files Added │ Total Files Updated │ Total Records Inserted │ Total Records Updated │ Total Bytes Written │ Total Errors ║
╠═════════════╪══════════════════╪═══════════════════╪═════════════════════╪════════════════════════╪═══════════════════════╪═════════════════════╪══════════════╣
║ deltacommit │ 2022-02-02/japan │ 0
│ 1
│ 0
│ 1
│ 906.0 B
│ 0
║
╚═════════════╧══════════════════╧═══════════════════╧═════════════════════╧════════════════════════╧═══════════════════════╧═════════════════════╧══════════════╝
hudi:my_user->
5.3 commit showfiles
hudi:my_user->commit showfiles --commit 20220326234620162 --sortBy "Partition Path"
╔═════════════╤══════════════════╤══════════════════════════════════════╤═══════════════════╤═══════════════════════╤═══════════════════════╤═════════════════════╤══════════════╤═══════════╗
║ Action
│ Partition Path
│ FileId
│ Previous Commit
│ Total Records Updated │ Total Records Written │ Total Bytes Written │ Total Errors │ File Size ║
╠═════════════╪══════════════════╪══════════════════════════════════════╪═══════════════════╪═══════════════════════╪═══════════════════════╪═════════════════════╪══════════════╪═══════════╣
║ deltacommit │ 2022-02-02/japan │ 8ffd5d1e-abd4-4ad7-ae43-c3c9aa34a859 │ 20220326233339019 │ 1
│ 1
│ 906
│ 0
│ 1810
║
╚═════════════╧══════════════════╧══════════════════════════════════════╧═══════════════════╧═══════════════════════╧═══════════════════════╧═════════════════════╧══════════════╧═══════════╝
hudi:my_user->
6. 查看FileSystem信息: show fsview
hudi:my_user->show fsview all
2022-03-31 09:29:31,282 INFO table.HoodieTableMetaClient: Loading HoodieTableMetaClient from hdfs://nnha/user/hudi/warehouse/hudi_db/my_user
2022-03-31 09:29:31,319 INFO table.HoodieTableConfig: Loading table properties from hdfs://nnha/user/hudi/warehouse/hudi_db/my_user/.hoodie/hoodie.properties
2022-03-31 09:29:31,329 INFO table.HoodieTableMetaClient: Finished Loading Table of type MERGE_ON_READ(version=1, baseFileFormat=PARQUET) from hdfs://nnha/user/hudi/warehouse/hudi_db/my_user
2022-03-31 09:29:31,329 INFO table.HoodieTableMetaClient: Loading Active commit timeline for hdfs://nnha/user/hudi/warehouse/hudi_db/my_user
2022-03-31 09:29:31,333 INFO timeline.HoodieActiveTimeline: Loaded instants upto : Option{val=[20220326234620162__deltacommit__COMPLETED]}
2022-03-31 09:29:31,426 INFO view.AbstractTableFileSystemView: Took 3 ms to read
0 instants, 0 replaced file groups
2022-03-31 09:29:31,566 INFO util.ClusteringUtils: Found 0 files in pending clustering operations
2022-03-31 09:29:31,574 INFO view.AbstractTableFileSystemView: addFilesToView: NumFiles=0, NumFileGroups=0, FileGroupsCreationTime=6, StoreTimeTaken=1
╔═══════════╤════════╤══════════════╤═══════════╤════════════════╤═════════════════╤═══════════════════════╤═════════════╗
║ Partition │ FileId │ Base-Instant │ Data-File │ Data-File Size │ Num Delta Files │ Total Delta File Size │ Delta Files ║
╠═══════════╧════════╧══════════════╧═══════════╧════════════════╧═════════════════╧═══════════════════════╧═════════════╣
║ (empty)
║
╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
hudi:my_user->
hudi:my_user->show fsview latest --partitionPath "2022-02-02/japan"
2022-03-31 09:35:58,118 INFO table.HoodieTableMetaClient: Loading HoodieTableMetaClient from hdfs://nnha/user/hudi/warehouse/hudi_db/my_user
2022-03-31 09:35:58,124 INFO table.HoodieTableConfig: Loading table properties from hdfs://nnha/user/hudi/warehouse/hudi_db/my_user/.hoodie/hoodie.properties
2022-03-31 09:35:58,133 INFO table.HoodieTableMetaClient: Finished Loading Table of type MERGE_ON_READ(version=1, baseFileFormat=PARQUET) from hdfs://nnha/user/hudi/warehouse/hudi_db/my_user
2022-03-31 09:35:58,133 INFO table.HoodieTableMetaClient: Loading Active commit timeline for hdfs://nnha/user/hudi/warehouse/hudi_db/my_user
2022-03-31 09:35:58,138 INFO timeline.HoodieActiveTimeline: Loaded instants upto : Option{val=[20220326234620162__deltacommit__COMPLETED]}
2022-03-31 09:35:58,145 INFO view.AbstractTableFileSystemView: Took 1 ms to read
0 instants, 0 replaced file groups
2022-03-31 09:35:58,149 INFO util.ClusteringUtils: Found 0 files in pending clustering operations
2022-03-31 09:35:58,154 INFO view.AbstractTableFileSystemView: addFilesToView: NumFiles=1, NumFileGroups=1, FileGroupsCreationTime=5, StoreTimeTaken=0
╔══════════════════╤══════════════════════════════════════╤═══════════════════╤═══════════╤════════════════╤═════════════════╤══════════════════╤═══════════════════════════════════╤═════════════════════════════════════╤════════════════════════════════════════════╤══════════════════════════════════════════════╤═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╤══════════════════════════════════════╗
║ Partition
│ FileId
│ Base-Instant
│ Data-File │ Data-File Size │ Num Delta Files │ Total Delta Size │ Delta Size - compaction scheduled │ Delta Size - compaction unscheduled │ Delta To Base Ratio - compaction scheduled │ Delta To Base Ratio - compaction unscheduled │ Delta Files - compaction scheduled
│ Delta Files - compaction unscheduled ║
╠══════════════════╪══════════════════════════════════════╪═══════════════════╪═══════════╪════════════════╪═════════════════╪══════════════════╪═══════════════════════════════════╪═════════════════════════════════════╪════════════════════════════════════════════╪══════════════════════════════════════════════╪═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╪══════════════════════════════════════╣
║ 2022-02-02/japan │ 8ffd5d1e-abd4-4ad7-ae43-c3c9aa34a859 │ 20220326233339019 │
│ -1.0 B
│ 1
│ 1.8 KB
│ 1.8 KB
│ 0.0 B
│ -1.0
│ -1.0
│ [HoodieLogFile{pathStr='hdfs://nnha/user/hudi/warehouse/hudi_db/my_user/2022-02-02/japan/.8ffd5d1e-abd4-4ad7-ae43-c3c9aa34a859_20220326233339019.log.1_0-4-0', fileLen=1810}] │ []
║
╚══════════════════╧══════════════════════════════════════╧═══════════════════╧═══════════╧════════════════╧═════════════════╧══════════════════╧═══════════════════════════════════╧═════════════════════════════════════╧════════════════════════════════════════════╧══════════════════════════════════════════════╧═══════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╧══════════════════════════════════════╝
hudi:my_user->
show fsview all查询的结果为empty,可能是因为表有两层partition
7. 文件大小Statistics
hudi:my_user->stats filesizes --partitionPath 2022-02-02/japan --sortBy "95th" --desc true --limit 3
╔═══════════════════╤════════╤════════╤════════╤════════╤════════╤════════╤══════════╤════════╗
║ CommitTime
│ Min
│ 10th
│ 50th
│ avg
│ 95th
│ Max
│ NumFiles │ StdDev ║
╠═══════════════════╪════════╪════════╪════════╪════════╪════════╪════════╪══════════╪════════╣
║ 20220326233339019 │ 1.8 KB │ 1.8 KB │ 1.8 KB │ 1.8 KB │ 1.8 KB │ 1.8 KB │ 1
│ 0.0 B
║
╟───────────────────┼────────┼────────┼────────┼────────┼────────┼────────┼──────────┼────────╢
║ ALL
│ 1.8 KB │ 1.8 KB │ 1.8 KB │ 1.8 KB │ 1.8 KB │ 1.8 KB │ 1
│ 0.0 B
║
╚═══════════════════╧════════╧════════╧════════╧════════╧════════╧════════╧══════════╧════════╝
hudi:my_user->
当write时间特别长,可以通过下面的命令查看write amplification写放大
hudi:my_user->stats wa
╔════════════╤════════════════╤═══════════════╤════════════════════════════╗
║ CommitTime │ Total Upserted │ Total Written │ Write Amplification Factor ║
╠════════════╪════════════════╪═══════════════╪════════════════════════════╣
║ Total
│ 0
│ 0
│ 0
║
╚════════════╧════════════════╧═══════════════╧════════════════════════════╝
hudi:my_user->
8. Compactions
8.1 查看compaction
hudi:my_user->compactions show all
╔═════════════════════════╤═══════╤═══════════════════════════════╗
║ Compaction Instant Time │ State │ Total FileIds to be Compacted ║
╠═════════════════════════╧═══════╧═══════════════════════════════╣
║ (empty)
║
╚═════════════════════════════════════════════════════════════════╝
hudi:my_user->
hudi:my_user->
hudi:my_user->compaction show --instant compaction_instant_time
hudi:my_user->
如果compaction_instant_time不存在,会抛异常
8.2 schedule或run compaction
手动schedule或run一个compaction,使用下面的命令,底层是使用spark
hudi:my_user->
hudi:my_user->help compaction schedule
Keyword:
compaction schedule
Description:
Schedule Compaction
Keyword:
sparkMemory
Help:
Spark executor memory
Mandatory:
false
Default if specified:
'__NULL__'
Default if unspecified: '1G'
Keyword:
propsFilePath
Help:
path to properties file on localfs or dfs with configurations for hoodie client for compacting
Mandatory:
false
Default if specified:
'__NULL__'
Default if unspecified: ''
Keyword:
hoodieConfigs
Help:
Any configuration that can be set in the properties file can be passed here in the form of an array
Mandatory:
false
Default if specified:
'__NULL__'
Default if unspecified: ''
Keyword:
sparkMaster
Help:
Spark Master
Mandatory:
false
Default if specified:
'__NULL__'
Default if unspecified: 'local'
* compaction schedule - Schedule Compaction
hudi:my_user->
hudi:my_user->
hudi:my_user->help compaction run
Keyword:
compaction run
Description:
Run Compaction for given instant time
Keyword:
parallelism
Help:
Parallelism for hoodie compaction
Mandatory:
true
Default if specified:
'__NULL__'
Default if unspecified: '__NULL__'
Keyword:
schemaFilePath
Help:
Path for Avro schema file
Mandatory:
true
Default if specified:
'__NULL__'
Default if unspecified: '__NULL__'
Keyword:
sparkMaster
Help:
Spark Master
Mandatory:
false
Default if specified:
'__NULL__'
Default if unspecified: 'local'
Keyword:
sparkMemory
Help:
Spark executor memory
Mandatory:
false
Default if specified:
'__NULL__'
Default if unspecified: '4G'
Keyword:
retry
Help:
Number of retries
Mandatory:
false
Default if specified:
'__NULL__'
Default if unspecified: '1'
Keyword:
compactionInstant
Help:
Base path for the target hoodie table
Mandatory:
false
Default if specified:
'__NULL__'
Default if unspecified: '__NULL__'
Keyword:
propsFilePath
Help:
path to properties file on localfs or dfs with configurations for hoodie client for compacting
Mandatory:
false
Default if specified:
'__NULL__'
Default if unspecified: ''
Keyword:
hoodieConfigs
Help:
Any configuration that can be set in the properties file can be passed here in the form of an array
Mandatory:
false
Default if specified:
'__NULL__'
Default if unspecified: ''
* compaction run - Run Compaction for given instant time
hudi:my_user->
8.3 验证compaction
验证compaction plan,检测compaction的file是否存在且有效
hudi:my_user->
hudi:my_user->compaction validate --instant compaction_instant_time
hudi:my_user->
8.4 Unscheduling Compaction
取消一个file ID的compaction plan
hudi:my_user->
hudi:my_user->compaction unscheduleFileId --fileId fileID
hudi:my_user->
取消一个compaction plan
hudi:my_user->
hudi:my_user->compaction unschedule --compactionInstant compaction_instant_time
hudi:my_user->
8.5 Repair Compaction
有时Repair Compaction可能会失败,导致compaction operation和file slices的状态不一致。用compaction validate进行验证会失败。所以需要进行compaction repair
hudi:my_user->
hudi:my_user->compaction repair --instant 20181005222611
......省略部分......
Compaction successfully repaired
......省略部分......
最后
以上就是壮观夕阳为你收集整理的Apache Hudi数据湖hudi-cli客户端使用1. 开启hudi-cli2. 创建表3. desc4. connect表5. 查看commit信息6. 查看FileSystem信息: show fsview7. 文件大小Statistics8. Compactions的全部内容,希望文章能够帮你解决Apache Hudi数据湖hudi-cli客户端使用1. 开启hudi-cli2. 创建表3. desc4. connect表5. 查看commit信息6. 查看FileSystem信息: show fsview7. 文件大小Statistics8. Compactions所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复