diff --git a/README.md b/README.md index 399e970..7b74c57 100644 --- a/README.md +++ b/README.md @@ -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) diff --git a/assets/hudi_command_yarn_all.png b/assets/hudi_command_yarn_all.png new file mode 100644 index 0000000..f2ef273 Binary files /dev/null and b/assets/hudi_command_yarn_all.png differ diff --git a/assets/hudi_command_yarn_kill.png b/assets/hudi_command_yarn_kill.png new file mode 100644 index 0000000..08cad27 Binary files /dev/null and b/assets/hudi_command_yarn_kill.png differ diff --git a/assets/hudi_command_yarn_run.png b/assets/hudi_command_yarn_run.png new file mode 100644 index 0000000..2f9f46b Binary files /dev/null and b/assets/hudi_command_yarn_run.png differ diff --git a/assets/hudi_web_offline_query.png b/assets/hudi_web_offline_query.png index fc7918a..c265a0f 100644 Binary files a/assets/hudi_web_offline_query.png and b/assets/hudi_web_offline_query.png differ diff --git a/assets/hudi_web_offline_query_latest_time.png b/assets/hudi_web_offline_query_latest_time.png index 51c1bf7..6062f08 100644 Binary files a/assets/hudi_web_offline_query_latest_time.png and b/assets/hudi_web_offline_query_latest_time.png differ diff --git a/assets/hudi_web_tools_stop_all.png b/assets/hudi_web_tools_stop_all.png index 8b8b67c..161f8ad 100644 Binary files a/assets/hudi_web_tools_stop_all.png and b/assets/hudi_web_tools_stop_all.png differ diff --git a/assets/hudi_web_tools_submit_compaction.png b/assets/hudi_web_tools_submit_compaction.png index acc3e13..ebbc331 100644 Binary files a/assets/hudi_web_tools_submit_compaction.png and b/assets/hudi_web_tools_submit_compaction.png differ diff --git a/assets/hudi_web_tools_submit_compaction_batch.png b/assets/hudi_web_tools_submit_compaction_batch.png index 202dc1f..135cf7c 100644 Binary files a/assets/hudi_web_tools_submit_compaction_batch.png and b/assets/hudi_web_tools_submit_compaction_batch.png differ diff --git a/assets/hudi_web_tools_timeline.png b/assets/hudi_web_tools_timeline.png index 450d46f..3e6ed7e 100644 Binary files a/assets/hudi_web_tools_timeline.png and b/assets/hudi_web_tools_timeline.png differ