- 博客(46)
- 资源 (3)
- 收藏
- 关注
原创 Hive 3.1.2 编译入口与输入统计锁详解
基于 Hive 3.1.2 源码,用四张流程与时序图讲清 globalCompileLock 和 INPUT_SUMMARY_LOCK:它们如何选择、何时持有与释放,为什么开启并行编译后仍会排队,以及如何结合日志和线程栈定位查询等待。
2026-11-12 14:08:49
115
原创 Apple Watch Ultra 2 高血压通知开通实测:iAnyGo 蓝牙模式与完整恢复流程
记录 Apple Watch Ultra 2 在 iOS 27.2、watchOS 27.0.1 下开启高血压通知的完整实测:iAnyGo 地区限制处理、临时 AppleLocale 参数、游戏模式蓝牙连接、飞行模式下重新发送香港坐标,以及恢复真实定位和重启后的验证。附开通前后截图与失败尝试说明。
2026-10-29 14:59:39
593
原创 大数据智能运维实战(十二):如何证明运维助手有用?用故障案例做验收
一次演示答对,不代表运维助手已经通过验收。本文回放任务重试、关联缺失、资源紧张、日志不完整和权限拒绝等虚构案例,检查工具选择、参数、证据与结论,并区分工具测试和真实模型验收。
2026-10-27 11:39:58
556
原创 大数据智能运维实战(十一):运维 MCP 的工程化——权限、限流、审计与错误处理
只读查询也需要权限与执行预算。本文用本机虚构教学方案实现可信身份、查询范围限制、限流、超时与最小审计,区分查询成功但缺数据、工具失败和入口拒绝,让助手正确处理不完整结果。
2026-10-27 11:39:47
414
原创 大数据智能运维实战(十):把查询工具串起来,完成一次任务变慢诊断
工具都能调用,诊断仍可能查错对象。本文把确认运行、获取状态、比较指标、限定日志与形成结论串成固定流程,用低 CPU 排队与高 CPU 运行两个虚构案例,区分事实、原因假设和待验证项。
2026-10-27 11:39:28
385
原创 大数据智能运维实战(九):让 AI 查日志——找到异常,也保留上下文
找到 timeout,不等于已经定位根因。本文用虚构日志说明如何限定运行、节点与时间范围,保留异常前后文,分别处理分页、采集缺口、单条截断和脱敏,并将日志片段作为可追溯证据。
2026-10-26 11:05:22
373
原创 大数据智能运维实战(八):从调度任务追到计算引擎——补齐排查链路
调度侧 RUNNING,不等于计算引擎正在计算。本文以模拟 Hive 作业为例,沿可靠提交回执关联运行、尝试、查询与引擎应用,分别处理关联成功、缺失和冲突,避免按名称或相近时间猜测排查链路。
2026-10-26 11:02:10
231
原创 大数据智能运维实战(七):同一个任务失败了几次?还原执行与重试过程
同一个任务失败了几次,要先分清任务定义、运行实例与执行尝试。本文用虚构重试案例串联时间、执行节点与状态,解释重复事件、手工重跑、失败次数下界和耗时口径,让助手还原有依据的任务时间线。
2026-10-26 11:00:32
421
原创 大数据智能运维实战(六):任务一直在等——排查调度队列与执行资源
任务一直在等,应该查调度规则、执行槽位,还是计算队列?本文通过五组独立虚构运行,结合准确的运行标识、节点标签、槽位及队列记录逐步定位等待层次,并讲清调度等待、执行器启动后和提交后经过时间的包含关系。
2026-10-19 18:28:55
234
原创 CPU 只有 20%,任务为什么还是慢?先查这 5 件事|大数据智能运维实战(五)
CPU 只有 20%,任务却迟迟不结束?先核对运行对象、时间窗口、指标口径、样本缺失与等待证据,再用虚构 CPU 样本解释最新值、均值和峰值,附五项排查清单与可复制记录模板。
2026-10-19 18:26:39
343
原创 大数据智能运维实战(四):集群到底健不健康?先把状态与时效讲清楚
查询到 RUNNING,就能说集群健康吗?本文继续青禾平台的虚构场景,分开判断组件状态与数据时效,区分正常、异常、未知,并用期望检查清单解释过期上报、检测缺失和有效判断覆盖率,生成能说明依据与范围的巡检结果。
2026-10-19 18:24:47
381
原创 大数据智能运维实战(三):实现第一个运维 MCP 工具——查询节点与组件状态
沿用青禾平台的虚构实验,把节点与组件上报封装成第一个运维 MCP 工具。完成 Spring AI 工具注册、参数校验和结构化返回,通过实际调用讲清上报时间、缺失数据、结果截断与可空字段,让助手有依据地回答“有哪些节点,分别运行什么组件”。
2026-10-19 18:22:37
244
原创 大数据智能运维实战(二):准备一个可复现的运维实验环境
延续青禾平台“日报迟到”的故事,用一个可直接运行的 Java 文件,构造节点、组件、CPU 指标、任务运行和日志样本。通过正常、高 CPU、失败、上报过期四组虚构场景,讲清时间口径、记录关联与证据边界,并配三张教学图,为后续 MCP 工具提供可复现的输入。
2026-10-15 19:38:06
234
原创 大数据智能运维实战(一):机器和任务数据都有了,如何用 MCP 搭建运维助手?
机器指标、任务状态和日志已经上报,如何让 AI 帮忙排查?本文延续小林与小周的故事,用虚构的“日报延迟”案例拆解调度等待与执行耗时,讲清 Spring AI、MCP 和已有平台的分工,并配图说明工具查询、证据组织与诊断边界,为后续实战搭好思路。
2026-10-15 18:48:51
460
原创 Hive Metastore OOM 怎么排查?MySQL 变慢时先查这 6 项|Hive 源码导读(八)
Hive Metastore 报 OOM,该先看什么?用虚构场景和借电话的比喻解释数据库等待、线程与对象保留,附六项排查清单,区分堆 OOM、线程资源不足和容器内存限制,按证据决定下一步。
2026-10-13 15:24:38
385
原创 Hive 源码导读(七):订单日报迟迟没出来,这次该从哪里查?
订单日报迟迟没出来,先查 Hive 还是 YARN?基于 Hive 3.1.2、Hadoop 3.2.1,把请求入口、编译、锁等待、MR 提交、任务执行、事务提交和结果获取串成证据路线,区分计算成功、SQL 成功与报表交付成功。
2026-10-13 11:25:09
242
原创 Hive 源码导读(六):订单已经写出新文件,查询为什么还不能随便读?
订单更新后产生了新文件,查询为什么不能看到什么就读什么?基于 Hive 3.1.2、Hadoop 3.2.1,用订单状态修正串起 Txn ID、Write ID、有效写入列表、ACID 读取与 Compaction,讲清文件存在和数据可见之间的区别。
2026-10-12 08:50:22
335
原创 Hive 源码导读(五):集群还有资源,SQL 为什么仍然不动?
集群还有资源,SQL 为什么仍然不动?基于 Hive 3.1.2、Hadoop 3.2.1,从两个会话更新订单的场景入手,用 DbTxnManager、DbLockManager 与 HMS 锁状态区分锁等待和资源等待,明确锁对象、兼容关系与排查证据。
2026-10-12 08:50:05
165
原创 Hive 源码导读(四):YARN Application 出现了,为什么还没开始计算?
YARN Application 已经出现,为什么还没开始计算?基于 Hive 3.1.2、Hadoop 3.2.1,沿 MapRedTask、ExecDriver、JobClient、YARNRunner 到 ResourceManager 与 MRAppMaster,拆开提交、排队、申请容器和任务执行,并串起 Query ID、Job ID 与 Application ID。
2026-10-11 09:52:37
516
原创 Hive 源码导读(三):都是 SELECT,为什么有的查询不需要 YARN?
都是 SELECT,为什么有的查询不需要 YARN?基于 Hive 3.1.2、Hadoop 3.2.1,从 Driver 编译、语义分析、优化到 FetchTask 和 MR 计划,结合 EXPLAIN 和订单样本找到执行路径的分岔口。
2026-10-11 09:52:12
293
原创 Hive 源码导读(二):客户端说“已提交”,SQL 到底走到哪了?
客户端显示已提交,服务端真的开始计算了吗?基于 Hive 3.1.2、Hadoop 3.2.1,沿 Beeline、JDBC、ThriftCLIService、Session 和 SQLOperation 追踪请求、状态与结果,讲清 Operation Handle、Query ID 和 YARN Application ID 的区别。
2026-10-10 10:09:11
436
原创 Hive 源码导读(一):SQL 执行成功了,YARN 上怎么没有新任务?
SQL 执行成功,YARN 上却没有新任务?基于 Hive 3.1.2、Hadoop 3.2.1,结合源码和两张协作图讲清 HiveServer2、Metastore、HDFS、MapReduce 与 YARN 的分工,并附整套订单实验的环境与数据准备步骤。
2026-10-10 10:08:19
370
原创 Spring AI + MCP 查数实战:用户要查 8 月,为什么会查出 9 月的数据?
用户要查 8 月,工具参数却准备查 9 月,格式和自然月校验为何都能通过?沿用虚构 H2 数据,在执行前核对本次意图与工具参数,附排查清单、记录模板和错月拦截验收项。
2026-10-09 14:04:15
839
原创 Spring AI 入门(六):接入 MCP 客户端,完成一个自然语言查数助手
让小周只说一句话,助手就能找表、看字段、查金额。本篇接入 Spring AI MCP Client,将远程工具提供给 ChatClient,串联意图校验与实际查询,核对 770.00 元结果,并说明错误处理和提示词编排的边界。
2026-10-08 09:09:30
826
原创 Spring AI 入门(五):从找表到查数,实现三个实用 MCP 工具
找到了订单表,还要看懂字段和业务口径。本篇用一张 H2 示例表实现 table_search、table_describe、table_query,加入字段白名单、参数化 SQL、自然月校验与行数限制,手动查出 2026 年 8 月每日支付金额。
2026-10-08 09:08:57
362
原创 Spring AI 入门(四):认识 MCP,编写第一个工具服务
把工具搬到独立服务,让不同助手都能使用。本篇用餐厅点单的比喻讲清 MCP Host、Client、Server,使用官方 Starter 和 @McpTool 编写找表工具,通过 HTTP 手动完成初始化、工具发现与调用。
2026-09-28 10:53:29
417
原创 Spring AI 入门(三):Tool Calling,让大模型调用你的 Java 方法
助手会填查询条件,还需要一双取数据的手。本篇用 @Tool 和 @ToolParam 提供模拟订单统计,观察模型提出调用、Java 校验执行、工具结果返回模型的完整过程,讲清工具描述、注册方式和结果验收。
2026-09-28 10:53:14
380
原创 Spring AI 入门(二):提示词与结构化输出,让回答变成 Java 对象
“查一下 8 月”少了哪一年,程序可不敢猜。本篇用 System/User 消息和提示词模板组织需求,通过 entity() 将模型回答转换成 Java record,再用确定性校验检查状态、指标、粒度和完整自然月范围。
2026-09-23 10:29:26
307
原创 Spring AI 入门(一):用 Spring Boot 完成第一次大模型对话
运营同事一句“帮我查个数”,让 Java 开发者小林开始制作 AI 助手。本篇从零搭建 Spring Boot + Spring AI 工程,用 ChatClient 完成第一次模型对话,讲清依赖配置、API Key、运行验证与常见报错。
2026-09-23 10:26:46
352
原创 Apache Paimon 源码导读(九):一张表改了字段,为什么多表入仓任务也会受影响
本文基于 Apache Paimon 1.4.2,以订单、用户和商品三张表共用一个 MySQL CDC 入仓任务为例,解释 DDL 与数据写入的处理链路、divided/combined 的故障影响范围,列举兼容、不兼容及部分同步的 DDL,并给出 Checkpoint、日志排查与生产隔离建议。
2026-09-22 10:31:29
558
原创 Apache Paimon 数据出仓源码导读(八):Paimon 出仓 MySQL 生产调优:Batch、并行度、反压与数据对账
最后一篇回到生产现场。很多任务在测试环境只有每秒几十条,看起来一切正常;这一篇不提供一个“万能最佳配置”,而是给出一套能测量、能解释、能回滚的调优方法。
2026-09-04 08:56:58
582
原创 Apache Paimon 数据出仓源码导读(七):任务失败后数据怎样重来:Checkpoint、重试与幂等恢复
第一句:Checkpoint 前 Flush 是为了防止未写出的内存数据丢失,不是为了让 MySQL 和 Checkpoint 自动组成一笔原子事务。第二句:普通 JDBC Sink 允许数据重放;主键 UPSERT 和 DELETE 解决的是重复执行后的结果收敛,不是保证 SQL 从未重复执行。Batch 设多大Flush 间隔设多久并行度为什么不是越高越好Checkpoint 为什么会形成写入尖峰MySQL 变慢为什么会让 Flink 背压怎样做源端与目标端对账。
2026-09-03 09:10:12
539
原创 Apache Paimon 数据出仓源码导读(六):UPDATE 与 DELETE 如何落库:主键归并、UPSERT 与跨批空窗
第一,+I 和 +U 都可以走 MySQL UPSERT,-D 按主键 DELETE第二,同一 Buffer 内同 Key 只保留最后动作;跨过 Flush 后无法再合并第三,最终状态正确不代表中间没有空窗,也不代表所有副作用都幂等JDBC Batch 已经写进 MySQL新的 Checkpoint 却还没有全局成功然后观察为什么 Source 会重放、为什么普通 JDBC Sink 是 At-Least-Once,以及 UPSERT / DELETE 到底在什么条件下能把重复执行收敛。
2026-09-03 09:08:30
413
原创 Apache Paimon 数据出仓源码导读(五):一条数据怎样写进 MySQL:RowData、Sink 子任务与 JDBC Batch
找到需要消费的 Snapshot↓规划并分配 FileStoreSourceSplit↓从 Split 逐条发出 RowData↓每条记录调用一次↓加入执行器,batchCount++↓按主键放进 Map,后来的覆盖前面的↓行数 / 时间 / Checkpoint / Close 触发↓↓MySQLPaimon Source:逐条发Flink invoke:逐条收Sink Buffer:按主键攒批JDBC / MySQL:Flush 时批量执行。
2026-09-02 11:27:33
435
原创 Apache Paimon 数据出仓源码导读(四):从零跑通 Paimon 到 MySQL:环境、建表与第一条数据
上一篇,我们从源码角度总览了 Paimon 出仓到 MySQL 时的 UPSERT、DELETE、批量写入和故障重放。不过,如果还没有亲手跑过这条链路,一上来就看RowKind和 Checkpoint,很容易把几个层次混在一起。所以从这一篇开始,我们暂时放慢速度,把“Paimon 出仓到 MySQL”拆成几篇独立文章。这一篇只完成一件事:从零搭好一条最小链路,亲眼看到 Paimon 中的一条订单在 MySQL 中新增、更新和删除。先不追每一个源码调用,也先不讨论失败重放。
2026-09-02 11:21:50
329
原创 Apache Paimon 数据出仓源码导读(三):Paimon 出仓到 MySQL:UPSERT、DELETE 与幂等恢复
本文从源码拆解 Paimon 出仓到 MySQL 的完整写入链路,讲清 Flink JDBC Sink 是逐条接收、按子任务攒批,再通过 UPSERT 与 DELETE 批量执行;同时分析 Checkpoint 重放、主键幂等、跨批短暂空窗及无状态重跑的边界。
2026-09-01 20:28:50
469
原创 Apache Paimon 数据出仓源码导读(二):Paimon Changelog 到底输出什么?+I、-U、+U、-D 与 Changelog Producer
同一条 MySQL UPDATE,为什么有时输出 +I,有时是 -D/+I,还有时是 -U/+U?本文结合 Apache Paimon 1.4.2 源码,从 RowKind、Changelog Producer、Changelog 文件与 Flink Normalize 入手,讲清 none、input、lookup、full-compaction 的输出差异、实现原因和运维取舍。
2026-08-31 20:46:16
393
原创 Apache Paimon 数据出仓源码导读(一):Flink 如何从最新 Snapshot 开始全量加增量消费
Flink 读取 Paimon 时,latest-full 如何固定最新 Snapshot 做全量,又从下一个 Snapshot 继续增量?本文结合 DataTableStreamScan、StartingScanner、FollowUpScanner、SplitEnumerator、Checkpoint 和 consumer-id 源码,把全量与增量的交接、故障恢复和运维注意点讲清楚。
2026-08-31 10:35:07
590
原创 Apache Paimon 源码导读(八):一条记录为什么进入这个分区、Bucket 和 Writer
本文以订单 1001 的入仓过程为主线,从源码解释 Paimon 如何根据分区和主键计算 Bucket,再把记录路由到具体 Writer,并说明 Bucket 数、Sink 并行度以及扩容时的运维影响。
2026-08-26 18:28:22
295
原创 Apache Paimon 源码导读(七):MySQL 加字段、改类型、删字段、重命名,Paimon 会跟着变吗
MySQL 执行 DDL 后,Debezium 会把“修改完成后的整张字段清单”交给 Paimon。Paimon 不会照抄 ALTER SQL,而是拿新清单和自己的旧清单逐个比较。加字段 → 新字段会增加,历史数据先读成 NULL改类型 → 放得下才扩大;缩小通常不跟;不兼容就报错删字段 → MySQL 已经删除,Paimon 旧字段仍然保留重命名 → 旧字段保留,新名字被当成一个新字段源码为什么要这样设计?说到底,是因为一张 Paimon 表里已经有历史数据,还有正在运行的下游查询。
2026-08-26 10:21:30
243
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅