diff --git a/README.md b/README.md index 571976a..399e970 100644 --- a/README.md +++ b/README.md @@ -1,59 +1,60 @@ - * [概述](#概述) * [部署](#部署) - * [配置准备](#配置准备) - * [主机规划](#主机规划) - * [外部资源确认](#外部资源确认) - * [Hadoop配置](#hadoop配置) - * [外部组件部署](#外部组件部署) - * [Victoria Metrics](#victoria-metrics) - * [启动脚本](#启动脚本) - * [采集配置](#采集配置) - * [Loki](#loki) - * [配置文件](#配置文件) - * [Grafana](#grafana) - * [数据源配置](#数据源配置) - * [配置数据库](#配置数据库) - * [部署配置](#部署配置) - * [接口机目录规划](#接口机目录规划) - * [脚本生成](#脚本生成) - * [启动上传服务](#启动上传服务) - * [编译打包项目](#编译打包项目) + * [配置准备](#配置准备) + * [主机规划](#主机规划) + * [外部资源确认](#外部资源确认) + * [Hadoop配置](#hadoop配置) + * [外部组件部署](#外部组件部署) + * [Victoria Metrics](#victoria-metrics) + * [启动脚本](#启动脚本) + * [采集配置](#采集配置) + * [Loki](#loki) + * [配置文件](#配置文件) + * [Grafana](#grafana) + * [数据源配置](#数据源配置) + * [配置数据库](#配置数据库) + * [部署配置](#部署配置) + * [接口机目录规划](#接口机目录规划) + * [脚本生成](#脚本生成) + * [启动上传服务](#启动上传服务) + * [编译打包项目](#编译打包项目) * [运维](#运维) - * [命令行](#命令行) - * [Web](#web) - * [概览](#概览) - * [表任务](#表任务) - * [Flink任务详情](#flink任务详情) - * [表任务详情](#表任务详情) - * [同步情况](#同步情况) - * [压缩情况](#压缩情况) - * [历史压缩](#历史压缩) - * [时间线](#时间线) - * [Pulsar队列](#pulsar队列) - * [Hudi表结构](#hudi表结构) - * [压缩队列](#压缩队列) - * [跨天](#跨天) - * [同步集群](#同步集群) - * [压缩集群](#压缩集群) - * [Cloud](#cloud) - * [小工具](#小工具) - * [查询时间线](#查询时间线) - * [提交压缩任务](#提交压缩任务) - * [批量提交压缩任务](#批量提交压缩任务) - * [停止所有压缩任务](#停止所有压缩任务) - * [离线检索](#离线检索) - * [查询文件](#查询文件) - * [检索最后操作时间](#检索最后操作时间) - * [HDFS](#hdfs) + * [命令行](#命令行) + * [Web](#web) + * [概览](#概览) + * [表任务](#表任务) + * [Flink任务详情](#flink任务详情) + * [表任务详情](#表任务详情) + * [同步情况](#同步情况) + * [压缩情况](#压缩情况) + * [历史压缩](#历史压缩) + * [时间线](#时间线) + * [Pulsar队列](#pulsar队列) + * [Hudi表结构](#hudi表结构) + * [压缩队列](#压缩队列) + * [跨天](#跨天) + * [同步集群](#同步集群) + * [压缩集群](#压缩集群) + * [Cloud](#cloud) + * [小工具](#小工具) + * [查询时间线](#查询时间线) + * [提交压缩任务](#提交压缩任务) + * [批量提交压缩任务](#批量提交压缩任务) + * [停止所有压缩任务](#停止所有压缩任务) + * [离线检索](#离线检索) + * [查询记录](#查询记录) + * [检索最后操作时间](#检索最后操作时间) + * [HDFS](#hdfs) + * [案例](#案例) + * [丢主键为xxx的某条数据](#丢主键为xxx的某条数据) + * [xxx表的数据没有到最新](#xxx表的数据没有到最新) * [模块](#模块) - * [Hudi 运行代码](#hudi-运行代码) - * [sync](#sync) - * [运维服务](#运维服务) - * [部署工具](#部署工具) + * [Hudi 运行代码](#hudi-运行代码) + * [sync](#sync) + * [运维服务](#运维服务) + * [部署工具](#部署工具) * [开发](#开发) - # 概述 @@ -436,50 +437,102 @@ uploader ##### Pulsar队列 +用于查询Pulsar Topic的相关信息,查看Reader积压情况,生产者是否在线等。 + ![](assets/hudi_web_table_meta_detail_pulsar.png) ##### Hudi表结构 +常用于查看实际的表结构是否和配置表相同,判断hudi表有没有更新表结构。 + ![](assets/hudi_web_table_meta_detail_struct.png) ### 压缩队列 +查看各个压缩队列的任务详情,方便查找问题任务。 + ![](assets/hudi_web_queue.png) ### 跨天 +查看一些简单的跨天信息。 + ![](assets/hudi_web_version.png) ### 同步集群 +常用页面,用于监控同步集群中的同步任务的启停状态,Yarn页面不能自动刷新,状态显示不清晰,这个界面基本可以替代Yarn页面,页面默认筛选hudi同步任务,也可以方便跳转同步任务对应的Yarn页面和日志。 + ![](assets/hudi_web_sync.png) ### 压缩集群 +和「同步集群」页面功能一致,这个页面还能聚合各个集群在同一个表格中,方便同时查看多个集群内的压缩任务。 + ![](assets/hudi_web_compaction.png) ### Cloud +查看服务部署实时状态和方便跳转服务日志。 + ![](assets/hudi_web_cloud_service.png) ### 小工具 +提供一些实际运维过程中需要的小工具。 + #### 查询时间线 +根据指定的HDFS路径查询;常有一些情况需要查询备份目录下的hudi表情况,这些备份表不在配置体系里面,可以通过这个工具直接查看指定路径下的hudi表时间线、表结构。 + +![](assets/hudi_web_tools_timeline.png) + #### 提交压缩任务 +手动提交压缩任务,可以指定压缩任务执行的集群。 + +![](assets/hudi_web_tools_submit_compaction.png) + #### 批量提交压缩任务 +批量提交压缩任务,一行一个hudi表,使用空格分开`flink_job_id`和`alias`。 + +![](assets/hudi_web_tools_submit_compaction_batch.png) + #### 停止所有压缩任务 +停止压缩任务往往遍布各个集群,压缩任务又可能会存在各个压缩队列里,这个工具可以直接清除各个压缩队列里的任务、停止各个集群里正在运行的压缩任务。 + +![](assets/hudi_web_tools_stop_all.png) + ### 离线检索 -#### 查询文件 +使用Flink运行一些需要耗时较长的查询任务,和hudi同步任务一样,提交到Yarn集群上,可以做一些牛逼操作;查询结果在页面下方的任务列表中查看。 + +_提交Flink任务有一定的延时,尤其在调度压缩任务的时候,可能会由于资源不足导致提交失败,要观察一些,不要多次提交,避免消耗集群资源。_ + +#### 查询记录 + +可以查询包含指定字符串(通常是主键)的记录,横跨Pulsar、hudi日志、hudi数据,通常用于丢数据时,找到数据丢在哪一个环节,解析出记录的时间线; + +_有时候Pulsar查询可能会有一点问题,导致整个任务失败,建议Pulsar查询单独启动一个任务。_ + +![](assets/hudi_web_offline_query.png) #### 检索最后操作时间 +查询hudi表最后操作时间,逐条检索data文件的记录,这个时间应该会比较准确;通常用于想知道某个表的准确最新更新时间。 + +![](assets/hudi_web_offline_query_latest_time.png) + ## HDFS +## 案例 + +### 丢主键为xxx的某条数据 + +### xxx表的数据没有到最新 + # 模块 模块主要分为三部分,包含 Hudi 运行代码、运维服务和部署工具。 diff --git a/assets/hudi_web_offline_query.png b/assets/hudi_web_offline_query.png new file mode 100644 index 0000000..fc7918a Binary files /dev/null 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 new file mode 100644 index 0000000..51c1bf7 Binary files /dev/null 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 new file mode 100644 index 0000000..8b8b67c Binary files /dev/null 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 new file mode 100644 index 0000000..acc3e13 Binary files /dev/null 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 new file mode 100644 index 0000000..202dc1f Binary files /dev/null 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 new file mode 100644 index 0000000..450d46f Binary files /dev/null and b/assets/hudi_web_tools_timeline.png differ