docs: 补充hudi command文档

This commit is contained in:
v-zhangjc9
2024-03-12 15:58:17 +08:00
parent bad651b8a5
commit f850ad9c54
10 changed files with 268 additions and 18 deletions

286
README.md
View File

@@ -19,8 +19,17 @@
* [脚本生成](#脚本生成)
* [启动上传服务](#启动上传服务)
* [编译打包项目](#编译打包项目)
* [启动应用](#启动应用)
* [运维](#运维)
* [命令行](#命令行)
* [配置操作](#配置操作)
* [查看配置信息](#查看配置信息)
* [新增配置信息](#新增配置信息)
* [批量新增配置信息](#批量新增配置信息)
* [任务操作](#任务操作)
* [查看同步任务状态](#查看同步任务状态)
* [启停同步任务](#启停同步任务)
* [批量启停同步任务](#批量启停同步任务)
* [Web](#web)
* [概览](#概览)
* [表任务](#表任务)
@@ -83,27 +92,27 @@
- Hadoop3
用于存放Hudi数据、Flink任务业务jar包等
- Yarn集群节点到HDFS的增删改查权限
- 应用部署主机到HDFS的增删改查权限
- Yarn集群节点到HDFS的增删改查权限
- 应用部署主机到HDFS的增删改查权限
- Zookeeper
用于hudi同步压缩服务注册通常可以使用Hadoop3集群附带的zookeeper
- Yarn集群节点到zookeeper的网络连通
- 应用部署主机到zookeeper的网络连通
- Yarn集群节点到zookeeper的网络连通
- 应用部署主机到zookeeper的网络连通
- Yarn
用于运行hudi同步压缩任务
- 应用部署主机提交任务的权限
- 应用部署主机提交任务的权限
- MySQL
配置数据库;目前和汇聚平台配置库耦合,不能改,只能直接使用汇聚配置数据库
- 应用部署节点到MySQL的访问连通
- 应用部署节点到MySQL的访问连通
- Pulsar
数据源
- Yarn集群节点到pulsar的读取连通
- 应用部署主机到pulsar的client连通和admin连通
- Yarn集群节点到pulsar的读取连通
- 应用部署主机到pulsar的client连通和admin连通
- 应用部署主机
部署配套应用服务
- JDK 1.8实现OpenJDK标准即可
- Kerberos
- 接口机到应用机的ssh免密用于服务启停部署
- JDK 1.8实现OpenJDK标准即可
- Kerberos
- 接口机到应用机的ssh免密用于服务启停部署
#### Hadoop配置
@@ -361,6 +370,32 @@ uploader
将文件服务的url补充到`bin/library.sh`中,执行`bin/build-all.sh`,打包编译全部模块并上传到文件服务。
## 启动应用
`cloud`路径下有已经生成好的服务启动脚本,`deploy-service`开头的脚本为启动脚本脚本默认包含更新并启动保证每次都可以使用最新的jar包启动。
应用包含多个服务,为了方便及时监控应用启动状态,建议按照如下顺序启动:
- service-gateway、service-queue
- service-web
- service-api
- 各种query
- service-cloud-query
- service-flink-query
- service-hudi-query
- service-info-query
- service-pulsar-query
- service-yarn-query
- service-zookeeper-query
- service-launcher-*
- service-executor-manager
- service-monitor
- service-scheduler
由于scheduler包含定时任务通常放在最后确认整个项目都没问题或者同步已经启动并正常运行之后再启动压缩调度模块。
可以配合web页面和grafana日志监控保证服务启动正常通常服务启动完成一个再启动下一个避免服务启动失败导致服务间调用雪崩。
# 运维
应用提供三部分运维方案:
@@ -371,6 +406,221 @@ uploader
## 命令行
为了避免页面网络不同导致无法运维操作同时也为了方便运维人员在脚本中直接操作hudi服务提供了命令行工具用于操作hudi同步任务。
### 配置操作
用于增加同步表配置信息,涉及到`tb_app_flink_job_config``tb_app_collect_table_info`两张表,由于涉及配置项较多,特别提供命令行工具做基本的配置。
_但由于开发和运维的脱钩,往往命令行工具的配置类型不能完全满足运维同事组织同步表的模式,具体的表配置,还是由运维同事自行发挥,或者统一开发再进行配置操作。_
#### 查看配置信息
其中搜索模式包括`REGEX正则表达式``CONTAINS包含``UN_CONTAINS不包含``EQUALS全等``UN_EQUALS不全等`
```
NAME
job-all - 显示 Flink job 配置信息
SYNOPSYS
job-all [[--type] type] [[--pattern] string]
OPTIONS
--type type
搜索模式
[Optional, default = CONTAINS]
--pattern string
搜索值 (除了 REGEX 模式, 其余可使用英文逗号分隔多个值)
[Optional, default = ]
```
#### 新增配置信息
```
NAME
job-add - 新增 Flink job 配置
SYNOPSYS
job-add [--type] table-type [--database] string [--database-type] source-type [--schema] string [--table] string [--hdfs] string [--pulsar-address] string
OPTIONS
--type table-type
表类型 (BIG 为大表, SMALL 为小表, ACCT 为 ACCT 表)
[Mandatory]
--database string
数据源
[Mandatory]
--database-type source-type
数据源类型
[Mandatory]
--schema string
Scheme
[Mandatory]
--table string
表名
[Mandatory]
--hdfs string
HDFS 路径前缀
[Mandatory]
--pulsar-address string
Pulsar Address
[Mandatory]
```
#### 批量新增配置信息
`source`指向的文件,按行分隔,每行用空格分隔字段,字段内容按「新增配置信息」的字段填写。
```
NAME
job-add-batch - 批量新增 Flink job 配置
SYNOPSYS
job-add-batch [--source] string
OPTIONS
--source string
配置文件路径
[Mandatory]
```
### 任务操作
针对hudi同步任务的操作。
#### 查看同步任务状态
默认查询全部任务,也可以通过关键词筛选。
```
NAME
yarn-all - 查询表同步任务状态
SYNOPSYS
yarn-all [[--pattern] string] [--show-flink-job-id] [--running] [--un-running]
OPTIONS
--pattern string
搜索值 (包含查询)
[Optional, default = ]
--show-flink-job-id 展示结果列表的 Flink job id
[Optional, default = false]
--running 展示运行的任务
[Optional, default = false]
--un-running 展示非运行的任务
[Optional, default = false]
```
![](assets/hudi_command_yarn_all.png)
#### 启停同步任务
`--ignore-check`参数在其他脚本,如定时任务,的时候比较方便,可以跳过二次确认。
```
NAME
yarn-run - 启动表同步任务
SYNOPSYS
yarn-run [--flink-job-id] long [--ignore-check]
OPTIONS
--flink-job-id long
Flink job id
[Mandatory]
--ignore-check Ignore double check
[Optional, default = false]
```
![](assets/hudi_command_yarn_run.png)
```
NAME
yarn-run-batch - 批量启动表同步任务
SYNOPSYS
yarn-run-batch [--flink-job-ids] long[] [--ignore-check]
OPTIONS
--flink-job-ids long[]
Flink job id
[Mandatory]
--ignore-check Ignore double check
[Optional, default = false]
```
```
NAME
yarn-run-un-running - 启动所有未运行的表同步任务
SYNOPSYS
yarn-run-un-running [--ignore-check]
OPTIONS
--ignore-check Ignore double check
[Optional, default = false]
```
#### 批量启停同步任务
```
NAME
yarn-kill - 停止表同步任务
SYNOPSYS
yarn-kill [--flink-job-id] long [--ignore-check]
OPTIONS
--flink-job-id long
Flink job id
[Mandatory]
--ignore-check Ignore double check
[Optional, default = false]
```
![](assets/hudi_command_yarn_kill.png)
```
NAME
yarn-kill-batch - 批量停止表同步任务
SYNOPSYS
yarn-kill-batch [--flink-job-ids] long[] [--ignore-check]
OPTIONS
--flink-job-ids long[]
Flink job id
[Mandatory]
--ignore-check Ignore double check
[Optional, default = false]
```
```
NAME
yarn-kill-running - 停止所有正在运行的表同步任务
SYNOPSYS
yarn-kill-running [--ignore-check]
OPTIONS
--ignore-check Ignore double check
[Optional, default = false]
```
## Web
### 概览
@@ -378,17 +628,17 @@ uploader
概览页面可以看到应用的主要运行情况,从上到下分别有:
- 表数量
- 逻辑表(根据上游源表名去重得到)
- 湖底表根据目标hudi表路径去重得到
- 嗨福表根据hive表名去重得到
- 逻辑表(根据上游源表名去重得到)
- 湖底表根据目标hudi表路径去重得到
- 嗨福表根据hive表名去重得到
- Flink运行同步任务数量
- flink任务数
- flink任务下对应表总数
- flink任务数
- flink任务下对应表总数
- hudi同步集群情况
- hudi压缩集群情况
- 跨天情况
- 重点表跨天情况
- 普通表跨天情况
- 重点表跨天情况
- 普通表跨天情况
- 压缩调度定时策略
![](assets/hudi_web_override.png)