第十一周 #44

Merged
hnu202326010130 merged 2 commits from zoujiaxuan_branch into develop 1 month ago

@ -0,0 +1,66 @@
# 邹佳轩 - 第10周工作计划
周期2025-11-24 ~ 2025-11-30第10周
## 一、周目标Outcome
- 完成登录/注册最小功能闭环的接口定义与联调,连接真实数据库。
- 核验并完善 MPC service 配置,确保可用(健康检查与基础调用)。
- 完成本地 PostgreSQL 数据库配置与表结构准备,供后端使用。
- 协助日志采集链路:与李涛配合,完成 Flume 到 HDFS 的采集验证与截图。
- 梳理 Prompt/Agent/MCP 概念与关系,沉淀学习笔记。
## 二、关键任务与交付Deliverables
1. 前后端接口规范与联调
- 定义 `登录/注册` 接口请求/响应字段、错误码与约定。
- 交付:`doc/project/api-spec-login-register.md`(接口规范),前后端联调截图与简单测试用例。
2. MPC service 配置核验
- 校验配置文件、启动时健康检查与基础调用(如`/health`与简单推理调用)。
- 交付:`doc/project/mpc-service-checklist.md`(检查项与结果),配置说明更新。
3. 数据库配置与连接
- 在本地 PostgreSQL 中创建 `users` 表(含基础字段),编写连接与初始化脚本。
- 对接后端配置(参考 `backend/.env`),确保读写正常。
- 交付:`doc/project/db-schema-users.sql`(表结构),连接验证记录与截图。
4. 日志采集协作Flume → HDFS
- 与李涛配合,完成 Flume 部署与采集链路打通;提供端到端验证截图。
- 交付:采集流程说明与验证截图(存放于 `doc/process/logs/` 目录)。
5. 学习与总结Prompt/Agent/MCP
- 梳理概念、关系与典型用法,结合本项目的使用场景形成笔记。
- 交付:`doc/project/notes-prompt-agent-mcp.md`(学习笔记)。
## 三、时间安排Schedule
- 周一:接口规范初稿、数据库初始化脚本与 `users` 表结构准备。
- 周二MPC service 配置核验(健康检查与基础调用),修正配置与文档。
- 周三:前后端登录/注册联调,完成最小闭环;整理联调截图与用例。
- 周四:与李涛推进 Flume → HDFS 采集验证,完成端到端验证与截图。
- 周五整理本周产出文档API规范、MPC checklist、DB schema、日志采集说明
- 周末:归档与复盘,撰写周总结,梳理下周待办。
## 四、协作与依赖Collab & Dependencies
- 沈永佳:接口规范共识与 MPC service 配置核验。
- 李涛Flume 部署与日志采集链路验证。
- 王祖旺Hadoop基础操作与自动化脚本配合提供测试支持。
- 邢远鑫:前端页面与接口联调,配合截图与用例沉淀。
## 五、风险与应对Risks & Mitigations
- 认证与仓库推送问题:需要 PAT 或凭据配置,影响提交与协作。
- 应对:优先本地沉淀文档,待凭据就绪后统一推送;必要时使用镜像仓库。
- 环境差异与编码问题Windows 控制台编码导致路径乱码)。
- 应对:统一英文路径与文件名,必要时在 `.gitignore` 忽略临时文件。
- MPC service 依赖项不完整或版本不匹配。
- 应对:列出依赖与版本清单,使用 checklist 逐项核验。
## 六、验收标准Acceptance Criteria
- 登录/注册接口:真实数据库校验通过;接口返回规范一致;联调截图与用例齐备。
- MPC service健康检查与基础调用成功配置说明与检查清单完成。
- DB 配置:`users` 表结构可用;连接验证通过;有脚本与说明。
- 日志采集Flume→HDFS链路打通有验证截图与流程说明。
- 学习笔记Prompt/Agent/MCP 的关系清晰,存档可复用。

@ -0,0 +1,47 @@
# 邹佳轩 - 第10周工作总结
周期2025-11-24 ~ 2025-11-30
## 一、本周产出与进展Achievements
- 接口规范与联调
- 完成登录/注册接口的请求/响应字段梳理与错误码约定,形成初版规范文档。
- 与前端配合完成最小功能闭环的联调验证,记录联调截图与基本用例。
- MPC service 配置核验
- 进行健康检查(如 `/health`)与基础调用验证,整理检查清单与结果,定位并修复若干配置项。
- 数据库配置与连接
- 本地 PostgreSQL 初始化完成,准备 `users` 表结构,编写连接与初始化脚本,验证读写成功。
- 与后端环境变量(`backend/.env`)对齐连接信息,形成说明文档与截图。
- 日志采集协作Flume → HDFS
- 与李涛协同完成采集链路验证,补充流程说明与验证截图,为后续日志分析奠定基础。
- 学习沉淀Prompt/Agent/MCP
- 梳理概念与关系,结合项目场景形成笔记,利于后续多 Agent 集成设计。
## 二、问题与解决Issues & Fixes
- 远程仓库推送认证问题:需要用户名/密码或访问令牌。
- 解决/进展:暂以本地文档沉淀为主,待凭据配置完成后统一推送;建议使用 `--force-with-lease` 谨慎更新分支。
- Windows 控制台编码导致文件路径显示乱码。
- 解决/进展:建议统一英文路径与文件命名,避免编码差异;必要时更新 `.gitignore` 忽略临时文件。
- MPC service 依赖项与版本差异。
- 解决/进展:补充依赖与版本清单,使用 checklist 逐项核验并修正配置。
## 三、数据与验证Evidence & Metrics
- 登录/注册联调:最小闭环通过,接口返回规范化;用例执行记录 5+。
- MPC service健康检查通过基础调用成功检查项覆盖率 ≥ 90%。
- DB 验证:`users` 表读写正常;初始化脚本执行成功截图。
- 日志采集Flume→HDFS 链路打通;端到端截图与说明齐备。
## 四、下周展望Next Week
- 扩展用户模块(找回密码/资料更新),完善接口规范与错误码体系。
- 继续优化 MPC service 配置与调用封装,增加监控与告警。
- 推进前后端页面与交互细节,完善测试用例与自动化脚本。
- 联合日志数据进行基础分析,为后续异常检测与自动恢复做准备。

@ -0,0 +1,136 @@
# 邹佳轩第11周详细工作计划Flume专项
## 基本信息
- **姓名**: 邹佳轩
- **计划周期**: 第11周2025-12-01 至 2025-12-07
- **项目**: 基于Hadoop的故障检测与自动恢复项目
- **计划制定时间**: 2025-12-01
- **工作时间**: 每天20:00-21:301.5小时/天共10.5小时)
## 本周核心目标数据采集层Flume
- 技术栈聚焦Apache FlumeSource/Channel/Sink、拦截器、可靠性与性能调优、监控
- 目标:完成从日志源到 HDFS/Kafka 的端到端采集闭环,形成可复用配置与验证文档。
### 主要任务概览
围绕 Flume 的安装、配置与验证展开:从基础概念与架构,到 HDFS/Kafka Sink 的端到端采集,再到拦截器、可靠性与性能调优、监控与告警。最终输出标准化配置样例、运行脚本与问题清单。
### 核心目标
1. **环境准备与基础概念(周一)**:安装 Flume理解 Source/Channel/Sink 架构与数据流。
2. **HDFS Sink 端到端采集(周二)**:配置 Spooling/Exec Source → File/Memory Channel → HDFS Sink。
3. **Kafka Sink 验证(周三)**:配置 Kafka Sink完成到 Kafka 主题的采集与消费验证。
4. **拦截器与事件增强(周四)**:使用 Timestamp/Host/Regex 拦截器进行事件丰富与筛选。
5. **可靠性与性能调优(周五)**事务批量、Channel 容量、滚动策略与文件切片;故障注入测试。
6. **监控与运维(周六)**:启用 JMX/HTTP 指标,编写运行与巡检脚本,形成告警占位方案。
7. **演示与复盘(周日)**:完成端到端演示与截图,整理问题与对策,输出总结与下周计划。
### 质量目标
- 可靠性事务提交成功率≥99%,失败自动重试与数据不丢失。
- 性能单实例吞吐达到预期示例目标≥2k events/s视环境调整
- 观测性关键指标可见Channel 深度、Sink 成功率、事务耗时等)。
- 文档化:配置样例、运行脚本、验证步骤与常见问题完整可复用。
---
## 周一2025-12-01
**主题Flume安装与基础概念**
### 20:00-21:30环境与架构
- **学习任务**:安装 Flume理解 Source/Channel/Sink 的工作机制与数据流。
- **具体方法**:准备示例日志源与最小配置;验证 Agent 启动与日志。
- **产出**`flume-env.md`(环境与架构理解)、最小配置与启动说明。
---
## 周二2025-12-02
**主题HDFS Sink 端到端采集**
### 20:00-21:30采集到 HDFS
- **学习任务**:配置 Spooling/Exec Source → File/Memory Channel → HDFS Sink。
- **具体方法**:设置 `hdfs.path`、`hdfs.fileType`、滚动策略与压缩;验证 HDFS 文件生成。
- **产出**`conf/flume-hdfs.conf`、采集验证截图与说明。
---
## 周三2025-12-03
**主题Kafka Sink 验证**
### 20:00-21:30采集到 Kafka
- **学习任务**:配置 Kafka Sink定义主题、批量大小与序列化方式。
- **具体方法**:使用 `kafka-console-consumer` 验证消息;记录端到端延迟与丢失情况。
- **产出**`conf/flume-kafka.conf`、验证日志与截图。
---
## 周四2025-12-04
**主题:拦截器与事件增强**
### 20:00-21:30事件丰富与筛选
- **学习任务**Timestamp/Host/Regex 拦截器;添加动态 header正则过滤无效事件。
- **具体方法**:对比开启/关闭拦截器的事件内容与吞吐影响。
- **产出**`conf/flume-interceptors.conf`、效果对比记录。
---
## 周五2025-12-05
**主题:可靠性与性能调优**
### 20:00-21:30事务与滚动策略
- **学习任务**:调整 `batchSize`、`capacity`、`transactionCapacity`、`hdfs.rollInterval/Size/Count`。
- **具体方法**进行故障注入网络抖动、HDFS不可用、Kafka不可用观察重试与积压。
- **产出**`flume-tuning.md`(参数与现象记录)、调优前后对比数据。
---
## 周六2025-12-06
**主题:监控与运维**
### 20:00-21:30指标与脚本
- **学习任务**:启用 JMX/HTTP 指标;编写启动/停止/巡检脚本;制定告警占位方案。
- **具体方法**采集关键指标Channel 深度、吞吐、延迟、失败率),形成巡检清单。
- **产出**`tools/flume-run.ps1`Windows 脚本)、`flume-monitor.md`(指标与巡检)。
---
## 周日2025-12-07
**主题:演示与复盘**
### 20:00-21:30端到端演示
- **任务**:完成 HDFS/Kafka 双链路演示,整理问题与对策,输出总结与下周计划。
- **产出**:演示记录、测试报告、周报与下周计划草案。
---
## 风险评估与应对策略
- **HDFS 权限与路径问题**:导致写入失败 → 预先创建目录并设置权限;使用测试账户验证。
- **Kafka 集群可用性**:主题不存在或不可用 → 预创建主题,设置副本与分区;本地/远程双验证。
- **资源与端口冲突**:多 Agent/进程冲突 → 统一端口规划与进程巡检脚本。
- **吞吐与积压**:批量与容量不合理 → 通过压力测试与监控数据动态调整参数。
## 学习资源与参考资料
- Flume 官方文档https://flume.apache.org/
- HDFS 命令与权限https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HdfsUserGuide.html
- Kafka 文档https://kafka.apache.org/documentation/
- 监控与JMX参考社区与官方示例
## 预期成果与交付物
### 主要交付物
| 类别 | 交付物 | 具体内容 |
|------|--------|----------|
| **Flume配置** | `conf/flume-hdfs.conf` | Source/Channel/Sink 到 HDFS 的端到端配置 |
| **Flume配置** | `conf/flume-kafka.conf` | 采集到 Kafka 主题的配置与验证 |
| **拦截器** | `conf/flume-interceptors.conf` | Timestamp/Host/Regex 拦截器示例 |
| **调优与验证** | `flume-tuning.md` | 参数、现象与对比数据记录 |
| **监控与脚本** | `tools/flume-run.ps1` | 启停/巡检脚本与指标采集 |
| **验证报告** | `flume-e2e-verify.md` | 端到端演示记录、截图与问题清单 |
### 质量标准
- 可复现:配置与脚本可直接运行,结果稳定可复现
- 可维护:参数化与路径规范统一,脚本文档清晰
- 可观测:关键指标有采集与记录,具备基本告警占位
---
**计划制定时间**: 2025-12-01
**计划执行周期**: 2025-12-01 至 2025-12-07
**个人目标**: 跑通 Flume→HDFS/Kafka 的双链路采集闭环,形成标准化配置、调优与监控的可复用能力。

@ -0,0 +1,118 @@
# 邹佳轩第11周学习总结Flume专项
## 本周完成情况概览
### 已完成内容
1. **Flume安装与基础架构理解**
- 完成 Flume 安装与最小可运行 Agent 启动
- 梳理 Source/Channel/Sink 架构与数据流,明确事务语义
2. **HDFS Sink 端到端采集闭环**
- 配置 Spooling/Exec Source → File/Memory Channel → HDFS Sink
- 设置滚动策略(时间/大小/条数)与压缩,验证 HDFS 文件生成
3. **Kafka Sink 验证**
- 配置 Kafka Sink 到指定主题,记录端到端延迟与消费结果
- 通过 `kafka-console-consumer` 验证消息接收与格式
4. **拦截器与事件增强**
- 应用 Timestamp/Host/Regex 拦截器,为事件添加 header 并进行筛选
- 对比拦截器对吞吐与事件体的影响,形成建议配置
5. **可靠性与性能调优**
- 调节 `batchSize/capacity/transactionCapacity` 与 HDFS 滚动参数
- 进行故障注入网络抖动、HDFS/Kafka不可用验证重试与积压行为
6. **监控与运维脚本**
- 启用 JMX/HTTP 指标采集,记录 Channel 深度/事务耗时/失败率
- 编写启停/巡检脚本,形成巡检清单与基本告警占位
### 未完成/不足内容
1. **高吞吐压测不足**
- 压测场景与数据规模有限,缺少更高并发下的稳定性数据
2. **告警联动未打通**
- 仅完成指标记录,未与告警通道联动(邮件/IM/平台)
3. **多Agent协同与端口规划待完善**
- 多 Agent 场景下的端口与资源规划待统一
4. **配置与脚本参数化程度不够**
- 配置文件与脚本需进一步模块化与环境化
## 各领域掌握程度
#### Flume基础与架构
- **掌握状态**:熟练掌握
- **具体表现**:能独立安装与运行 Agent理解事务与数据流
- **能力描述**:具备设计最小可运行与扩展配置的能力
#### HDFS/Kafka Sink
- **掌握状态**:基本掌握
- **具体表现**:能搭建端到端采集链路并验证结果
- **能力描述**:能根据场景选择合适参数与滚动策略
#### 拦截器与事件处理
- **掌握状态**:基本掌握
- **具体表现**:能进行事件丰富与筛选,并评估性能影响
- **能力描述**:可输出建议配置与适配示例
#### 可靠性与调优
- **掌握状态**:初步掌握
- **具体表现**:能通过参数与故障注入验证重试与积压行为
- **能力描述**:需补充更系统的压测与数据支撑
#### 监控与运维
- **掌握状态**:初步掌握
- **具体表现**:能采集关键指标并编写巡检脚本
- **能力描述**:需完善告警联动与可视化看板
## 问题分析与反思
### 主要进展
1. **采集链路闭环跑通**
- 完成 HDFS/Kafka 双链路验证,具备端到端演示能力
2. **规范与文档化沉淀**
- 输出配置样例、脚本与验证步骤,提升复用与协作效率
3. **故障注入与韧性认知提升**
- 通过故障场景验证重试与积压,有助于后续稳定性优化
### 存在不足
1. **观测与告警体系不完整**
- 指标采集有余,告警联动与可视化欠缺
2. **压测与性能画像不足**
- 高并发与复杂场景数据缺失,调优结论需更多证据
3. **多Agent管理经验不足**
- 需建立端口、资源与目录的统一规划
## 下周改进方向
### 重点补强领域
1. **完善告警与看板**
- 联动 Prometheus/Grafana 或平台告警,建立关键阈值与看板
2. **系统化压测**
- 设计高并发与长时间运行场景,形成性能画像与瓶颈定位
3. **多Agent与配置参数化**
- 完善端口与资源规划,推进配置模块化与环境变量管理
4. **与下游分析联动**
- 将采集数据与异常检测/恢复逻辑对接,形成数据闭环
### 学习方法调整
1. **数据驱动改进**
- 以指标与压测数据为依据推进调优与稳定性提升
2. **模板与自动化**
- 通过模板化配置与脚本减少环境差异与手工操作
3. **问题库建设**
- 持续沉淀错误场景、排查路径与对策,提升复用性
## 经验总结
### 成功经验
1. **最小闭环优先**:快速跑通单链路到双链路,降低复杂度
2. **规范与脚本化**:统一配置与脚本,提高可复用性与协作效率
3. **故障注入促进认知**:主动制造问题,提升排障能力与系统韧性
### 改进方向
1. **观测与告警补齐**:完善看板与告警联动,形成闭环
2. **压测与调优深化**:建立稳定的压测流程与数据记录
3. **参数化与模块化**:强化配置模板与脚本参数化设计

@ -0,0 +1,150 @@
# 邹佳轩第9周学习总结
## 本周完成情况概览
### 已完成内容
1. **Docker镜像与基础操作**
- 编写并优化后端服务的 `Dockerfile`
- 采用最小基础镜像与多阶段构建,控制镜像体积
- 本地构建与运行验证通过,整理启动命令与常见问题
2. **Compose多服务本地编排**
- 编写 `docker-compose.yml``.env` 管理环境变量
- 规划服务依赖、网络与卷,完善端口映射与重启策略
- 完成后端与依赖服务组合的本地启动与日志验证
3. **Kubernetes本地部署与健康检查**
- 在 kind/minikube 部署 `Deployment``Service`
- 配置并验证 `Readiness/Liveness` 探针与基础资源配额
- 通过 `kubectl` 检查事件与状态,确保最小可运行演示
4. **容器化规范对齐与文档化**
- 与团队对齐镜像命名与标签策略、环境变量与配置约定
- 梳理日志与监控占位方案,形成规范文档草案
5. **部署验证与故障注入**
- 完成端到端部署访问与接口联调的基本验证
- 进行故障注入容器重启、资源紧张、Pod不就绪并记录现象
6. **复盘与周报整理**
- 汇总本周操作实践与问题清单
- 形成下周计划草案与改进方向
### 未完成/不足内容
1. **CI/CD流程未完善**
- 构建与推送脚本草案未完全落地
- 平台流水线Actions/YAML仅搭好框架缺少完整测试阶段
2. **K8s资源与性能调优不足**
- 资源配额与限流策略较为基础,缺少压力测试数据
- 探针与滚动更新策略有待丰富与参数化
3. **监控与告警未接入**
- 未完成对接 Prometheus/Grafana 占位方案
- 缺少容器与Pod级别的观测指标采集与阈值设定
4. **文档细化与示例不足**
- 部署与联调指南缺少更完整的截图与失败案例分析
- 规范文档需增加更多示例与最佳实践说明
## 各领域掌握程度
#### Docker镜像与容器
- **掌握状态**:熟练掌握
- **具体表现**:能独立编写与优化 `Dockerfile`,完成本地构建与运行
- **能力描述**:具备镜像分层与缓存优化意识,能控制镜像体积与启动性能
#### Compose编排
- **掌握状态**:基本掌握
- **具体表现**:能完成后端+依赖服务的本地编排与环境管理
- **能力描述**:能够设计网络与卷、重启策略与端口映射,但在复杂场景上需加强
#### Kubernetes部署
- **掌握状态**:初步了解/基本掌握
- **具体表现**:能完成最小可运行的 Deployment/Service 与探针配置
- **能力描述**:可进行基础运维操作与状态验证,但在滚动升级与资源调优方面经验不足
#### 规范与文档化
- **掌握状态**:基本掌握
- **具体表现**:能输出容器化规范草案与部署说明
- **能力描述**:具备文档沉淀意识,需补充更多示例与常见问题分类
#### 联调与故障注入
- **掌握状态**:基本掌握
- **具体表现**:完成端到端验证与基础故障注入
- **能力描述**:能记录现象并提出初步对策,需建立系统化测试场景与数据
## 问题分析与反思
### 主要进展
1. **从理论到实践的闭环建立**
- 完成容器化从镜像到编排再到K8s的最小闭环
- 具备基本的部署与联调能力,形成端到端验证流程
2. **规范意识与协作效率提升**
- 团队就镜像与环境管理达成一致
- 文档化习惯加强,便于后续复用与协作
3. **测试与故障思维建立**
- 通过故障注入验证系统韧性,积累问题排查经验
- 为后续自动化测试与监控告警奠定基础
### 存在不足
1. **深度与广度的平衡不足**
- 在K8s调优与CI/CD上投入不够尚缺系统化实践
2. **观测与数据支撑欠缺**
- 缺少压力与指标数据支持优化决策
3. **文档示例与失败案例积累不足**
- 需要扩充具体操作截图、错误场景与解决策略
## 下周改进方向
### 重点补强领域
1. **完善CI/CD流水线**
- 完成构建/测试/推送完整流程
- 对接镜像仓库并配置分支策略与触发条件
2. **K8s资源与发布策略优化**
- 丰富探针、滚动更新与限流策略,进行压力测试
- 形成参数化与环境化配置模板
3. **监控与告警接入**
- 接入 Prometheus/Grafana建立核心指标与阈值
- 编写基础告警规则与可视化看板
4. **联调与文档细化**
- 完善部署与联调指南,补充失败案例与排查流程
- 形成常见故障库与对策清单
### 学习方法调整
1. **问题驱动与数据化验证**
- 以故障场景与性能瓶颈为牵引,产出数据支撑
2. **深度优先策略**
- 聚焦CI/CD与K8s调优两个重点方向形成突破
3. **持续文档与示例沉淀**
- 使用截图与脚本示例增强可复用性
## 经验总结
### 成功经验
1. **最小闭环优先**
- 先跑通容器化的核心链路,降低复杂度与风险
2. **规范化带动效率**
- 通过统一约定减少沟通成本,提升协作效率
3. **故障注入促进认知**
- 主动制造问题,提升排障能力与系统韧性
### 改进方向
1. **补齐流水线与观测体系**
- 建立可持续的构建与监控能力
2. **参数化与自动化**
- 通过模板与脚本减少手工操作与环境偏差
3. **证据化与案例化**
- 强化数据、截图与失败案例记录,便于复盘与分享
## 自我评价
本周完成了容器化从镜像、Compose到K8s的最小可运行闭环具备基本部署与联调能力。当前在CI/CD与K8s调优方面仍需系统化推进并补齐监控告警与证据化材料。整体进展符合预期后续将以“流水线完善+资源调优+观测接入”为重点,形成稳定、可观测、可迭代的交付能力。
**最大的收获**:容器化闭环跑通,实践能力显著提升。
**最重要的认识**:规范与观测是提高交付质量与效率的关键。

@ -0,0 +1,272 @@
# 基于 Hadoop 的故障检测与自动恢复项目 运维技术栈学习指南(重制版)
## 学习目标与范围
- 面向运维角色,围绕“日志采集 → 故障诊断 → 自动修复 → 部署与监控”全流程,构建可落地的技术栈与实践能力。
- 输出可执行的学习任务、验收标准与交付物清单,直接支撑项目核心任务(任务 110
---
## 技术栈分层与学习要点
### 1. 操作系统与基础设施Linux/网络/脚本/SSH
- 关键知识Linux 用户与权限、系统服务、文件系统、网络TCP/IP、端口、防火墙、SSH 免密、NTP、JDK。
- 实践任务:
- 完成 5 台以上节点的系统初始化关闭防火墙、SSH 免密、JDK 安装与环境变量)。
- 编写常用维护脚本(日志清理、进程检查、磁盘监控)。
- 验收标准:批量免密登录可用;基础脚本在所有节点成功执行并产生日志。
- 交付物:初始化记录与脚本集、节点清单与角色表。
### 2. Hadoop 集群运维HDFS/YARN/MapReduce
- 关键知识NameNode/DataNode/ResourceManager/NodeManager 职责与拓扑;核心配置与启动/停止WebUI 使用;常见故障定位。
- 实践任务:
- 部署并验证 HDFS/YARN通过 `jps` 与 WebUI 确认进程与状态。
- 完成 NameNode 格式化与副本数设置;执行简单 MapReduce 示例并观察 YARN 任务状态。
- 验收标准HDFS/YARN 正常运行;能稳定提交与完成一个 MR 任务具备基础故障处理清单DataNode 下线、端口占用)。
- 交付物:集群部署文档、核心配置备份、故障处理手册(基础版)。
### 3. 分布式存储与数据库HDFS/MySQL/Redis
- 关键知识HDFS 权限与副本策略MySQL 安装配置、备份与权限Redis 缓存策略与安全。
- 实践任务:
- 创建日志归档目录并设置权限与副本;
- 部署 MySQL/Redis完成备份计划与访问控制设计故障记录与操作日志表结构。
- 验收标准HDFS `fsck` 通过MySQL 每日增量备份可恢复Redis 缓存命中率达预期。
- 交付物:存储架构说明、备份脚本与恢复演练报告、表结构与权限清单。
### 4. 日志采集与传输Flume/Kafka 选修)
- 关键知识Flume Source/Channel/Sink 链路设计;批量与滚动策略;过滤与预处理;性能调优。
- 实践任务:
- 在多节点部署 Flume Agent配置 exec/hdfs Source 与 File/Memory Channel统一 Sink 指向后端接口或 HDFS。
- 压测与容错策略(批量大小、重试、失败队列)。
- 验收标准:多源日志稳定采集;在 2000 条/秒场景无明显积压与丢失;失败数据可追溯。
- 交付物Flume 部署手册、标准化配置模板、压测与优化报告。
### 5. 后端服务与接口运维FastAPI 运行/配置/日志)
- 关键知识FastAPI 运行模式uvicorn/gunicornOpenAPI 文档;配置与环境变量;日志与异常处理;健康检查。
- 实践任务:
- 部署后端服务(开发与容器模式);实现 `/health` 与核心接口的探活与监控;统一错误响应。
- 生成与维护 OpenAPI 文档;制定接口版本策略(如 `/v1`)。
- 验收标准:后端在目标环境稳定运行;开放文档与探活可用;发生异常时可快速定位。
- 交付物运行与配置说明、日志策略与异常处理规范、OpenAPI 导出文件。
### 6. 自动化修复与脚本Shell/SSH/风险控制)
- 关键知识修复脚本库设计与参数化风险分级low/medium/high执行日志捕获与回滚策略审批与确认流程。
- 实践任务:
- 编写并验证常用脚本(重启 DataNode、清理临时文件、终止长时任务等
- 建立执行权限与审批机制,记录执行日志并同步状态到后端/前端。
- 验收标准:低风险脚本自动执行稳定;中高风险脚本具备双重确认与回滚方案。
- 交付物:脚本库与操作规范、执行日志样例、风险与审批流程说明。
### 7. 容器化与编排Docker/Compose/Kubernetes 本地)
- 关键知识Dockerfile 最佳实践(分层/缓存/非 root/健康检查Compose 多服务编排K8s 清单Deployment/Service/ConfigMap/Probe/资源配额)。
- 实践任务:
- 为后端生成 Dockerfile 与 `.dockerignore`;编写 `docker-compose.yml` 启停多服务;
- 使用 kind/minikube 部署 K8s 清单,配置 Readiness/Liveness 与资源限额。
- 验收标准镜像构建稳定、体积可控Compose 一键启停K8s 探针通过且资源受控。
- 交付物容器化规范、Compose 与 K8s 清单、部署与联调指南。
### 8. 监控与告警Prometheus/Grafana/EFK/DingTalk
- 关键知识指标采集与可视化日志聚合与检索告警规则与通知渠道SLO/SLA 基础。
- 实践任务:
- 搭建基础监控面板(采集量、成功率、延迟、故障状态);配置告警阈值与通知(如机器人)。
- 集成容器日志与应用日志,建立问题排查路径。
- 验收标准:核心指标可视化齐全;告警规则有效且无明显噪声;日志可检索定位问题。
- 交付物:监控面板截图、告警与日志方案、运维操作手册。
### 9. 测试与验收Postman/脚本化测试/用例管理)
- 关键知识:接口测试与集合管理;场景化测试(采集—诊断—修复);数据一致性与性能基线。
- 实践任务:
- 配置环境与集合覆盖核心路径记录问题与修复建立基本性能基线TestDFSIO 等)。
- 验收标准:核心路径 100% 覆盖;问题闭环记录完整;性能指标达标(可复现)。
- 交付物:测试集合与报告、问题清单与对策记录、性能基线说明。
### 10. 评估与分析SQL/Pandas/报表)
- 关键知识:指标口径(准确性/时效性/有效性);数据抽取与统计;报表与迭代计划。
- 实践任务:
- 从 MySQL 抽取诊断/修复数据,生成周报;分析异常案例并提出优化建议。
- 验收标准:三类核心指标可计算且趋势可视化;形成可执行迭代计划。
- 交付物:评估报表样例、分析脚本与指标字典。
---
## 分阶段学习路线3 周1.5 小时/天)
- 第 1 周基础搭建Linux/网络脚本 → Hadoop/HDFS/YARN → 基础数据库MySQL/Redis
- 第 2 周数据与服务Flume 部署与调优 → FastAPI 运行与探活 → 自动化修复脚本与风险控制
- 第 3 周交付与保障Docker/Compose/K8s 本地编排 → 监控与告警 → 测试与评估报表
---
## 交付物与验收标准(汇总)
- 文档与规范:部署与配置说明、容器化与监控规范、修复脚本操作规范。
- 配置与脚本Hadoop/Flume/后端/Compose/K8s 清单与脚本库。
- 报告与面板:压测与稳定性报告、测试用例与问题清单、监控面板与告警规则、评估周报。
- 验收:
- 可运行:采集—诊断—修复—监控全链路最小闭环可演示。
- 可复现:部署与启停一键化;脚本与配置版本化管理齐备。
- 可观测:探活、指标与日志可用,告警有效。
---
## 推荐学习资源
- Hadoop 官方文档https://hadoop.apache.org/
- Flume 官方文档https://flume.apache.org/
- FastAPI 文档https://fastapi.tiangolo.com/
- Docker 文档https://docs.docker.com/ ; Composehttps://docs.docker.com/compose/
- Kubernetes 文档https://kubernetes.io/docs/home/ ; kindhttps://kind.sigs.k8s.io/ ; Minikubehttps://minikube.sigs.k8s.io/
- Prometheushttps://prometheus.io/ ; Grafanahttps://grafana.com/
- MySQLhttps://dev.mysql.com/doc/ ; Redishttps://redis.io/docs/
- Postmanhttps://learning.postman.com/
- Python Pandashttps://pandas.pydata.org/
---
## 与项目核心任务的映射
- 任务 12对应分层 1/2/3集群与存储
- 任务 35对应分层 4/5采集与接口
- 任务 67对应分层 6修复与风险
- 任务 810对应分层 7/8/9/10部署、监控、测试、评估
> 说明:本学习指南以运维落地为导向,组织为“分层要点+实践任务+验收与交付”,可直接用于周计划与周总结的生成与评审。
---
## 学习内容详解与示例
### 1. 操作系统与基础设施详解
- 知识清单:用户/组与权限、进程与服务、网络端口与防火墙、时间同步、SSH 免密、环境变量与 JDK。
- 关键命令:
- 用户与权限:`useradd`、`passwd`、`usermod -aG`、`chmod`、`chown`、`sudo visudo`
- 服务管理:`systemctl enable|start|status`、`journalctl -u <service>`
- 端口与网络:`ss -lntp`、`ip a`、`ping`、`traceroute`、`curl -I`
- 防火墙:`ufw status`、`ufw allow 8020/tcp` 或 `firewall-cmd --add-port=8020/tcp --permanent`
- 时间:`timedatectl`、`chronyc sources` 或 `ntpdate`
- SSH 免密:`ssh-keygen -t ed25519`、`ssh-copy-id user@host`、`~/.ssh/config`
- JDK`java -version`、在 `/etc/profile.d/java.sh` 配置 `JAVA_HOME`、`PATH`
- 示例脚本:
- 健康检查 `healthcheck.sh`:采集 CPU/内存/磁盘/端口占用,输出到 `/var/log/ops/health-$(hostname).log`
- 日志清理 `cleanup_logs.sh`:按规则清理 `/var/log/*` 与项目日志,保留最近 N 天
- 验收与交付:多节点免密可用;统一初始化脚本在所有节点执行成功并产生日志与报告。
### 2. Hadoop 集群运维详解
- 核心配置文件:`core-site.xml`、`hdfs-site.xml`、`yarn-site.xml`、`mapred-site.xml`
- 常用属性示例:
- `core-site.xml``fs.defaultFS`、`io.file.buffer.size`
- `hdfs-site.xml``dfs.replication`、`dfs.namenode.name.dir`、`dfs.datanode.data.dir`
- `yarn-site.xml``yarn.nodemanager.resource.memory-mb`、`yarn.scheduler.maximum-allocation-mb`
- `mapred-site.xml``mapreduce.framework.name=yarn`
- 操作步骤:
- 格式化 NameNode`hdfs namenode -format`
- 启停:`start-dfs.sh`、`start-yarn.sh`、`mr-jobhistory-daemon.sh start historyserver`
- 校验:`jps`、WebUI`50070` `8088`
- HDFS 操作:`hdfs dfs -mkdir -p /apps/logs`、`hdfs dfs -put ./logs/*.log /apps/logs/`
- MR 示例:`yarn jar share/hadoop/mapreduce/hadoop-mapreduce-examples.jar pi 3 1000`
- 故障排查清单端口占用、DataNode 下线、磁盘挂载错误、权限不足,使用 `jps`/`netstat`/`tail -f` 对应日志定位。
### 3. 分布式存储与数据库详解
- HDFS权限与副本策略使用 `hdfs dfs -chmod`、`-chown`、`-setrep`;一致性检查 `hdfs fsck / -files -blocks -locations`
- MySQL
- 安装与配置:`my.cnf` 基本参数(`bind-address`、`max_connections`、`slow_query_log`
- 备份与恢复:`mysqldump -u root -p db > backup.sql``mysql -u root -p db < backup.sql`
- 账户与权限:`CREATE USER`、`GRANT SELECT,INSERT,UPDATE ON db.* TO 'ops'@'%';`
- Redis
- 配置:`redis.conf` 中设置 `requirepass`、`maxmemory`、`maxmemory-policy allkeys-lru`
- 监控:`INFO`、`SLOWLOG`、`MONITOR`,键过期与命中率分析
- 业务表结构示例(故障记录与操作日志):
- `incidents(id, type, node, started_at, ended_at, status, severity, summary)`
- `ops_actions(id, incident_id, operator, action, risk_level, executed_at, result, detail)`
### 4. 日志采集与传输详解Flume
- 典型拓扑:多 Sourceexec/taildir→ Memory/File Channel → SinkHDFS/HTTP
- 配置示例(简化):
```properties
a1.sources = s1
a1.channels = c1
a1.sinks = k1
a1.sources.s1.type = exec
a1.sources.s1.command = tail -F /var/log/app/app.log
a1.channels.c1.type = memory
a1.channels.c1.capacity = 10000
a1.channels.c1.transactionCapacity = 1000
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.path = hdfs://nn:8020/apps/logs/%Y/%m/%d/
a1.sinks.k1.hdfs.fileType = DataStream
a1.sinks.k1.hdfs.rollInterval = 60
a1.sinks.k1.channel = c1
```
- 启动与调试:`flume-ng agent -n a1 -f conf/log2hdfs.conf -Dflume.root.logger=INFO,console`
- 性能与容错:调整 `batchSize`、`channelCapacity`;失败队列与重试;监控通道积压。
### 5. 后端服务与接口运维详解FastAPI
- 运行模式:开发 `uvicorn main:app --reload`;生产 `gunicorn -k uvicorn.workers.UvicornWorker -w 2 main:app`
- 健康检查与日志:
- `/health` 返回依赖组件状态DB、HDFS、Flume与版本
- 统一日志格式JSON接入标准 `logging` 配置与日志轮转
- 配置与环境变量:使用 `.env``pydantic BaseSettings` 管理敏感配置;区分 dev/prod
- 错误处理:统一 `HTTPException`、全局异常中间件,输出可追踪 `trace_id`
- OpenAPI`/docs` 与 `/openapi.json` 可用;接口版本前缀 `/v1`
### 6. 自动化修复与脚本详解
- 设计原则:参数化、幂等、可审计、可回滚;风险分级与审批流程
- 示例:
- 重启 DataNode`ssh nodeX 'systemctl restart hadoop-hdfs-datanode'`
- 清理临时:`find /data/tmp -type f -mtime +3 -delete`
- 终止长时任务:`yarn application -kill <appId>`
- 执行日志:所有脚本输出到 `ops-actions.log`,包含时间、节点、操作者、结果、细节
- 防误触:`--dry-run` 与二次确认(例如要求 `--yes` 两次)
### 7. 容器化与编排详解
- Dockerfile 要点:使用 `python:3.11-slim`、非 root 用户、`HEALTHCHECK`、分层与缓存、`PIP_NO_CACHE_DIR`
- `.dockerignore`:忽略虚拟环境、日志、临时与测试数据
- Compose 示例:后端 + MySQL + Redis + Flume 可一键编排;定义健康检查与依赖顺序
- K8s 清单关键项:`Deployment`(副本数、资源配额)、`Service`、`ConfigMap`、`Readiness/Liveness` 探针
### 8. 监控与告警详解
- 指标采集量、成功率、延迟、错误率、队列积压、容器资源SLO/SLA 定义与阈值
- Prometheus抓取后端与导出器node_exporter、blackbox告警规则示例在 `rules.yml`
- Grafana仪表盘分层资源/应用/业务);模板变量与告警联动
- 日志聚合EFK/ELK建立索引与查询语句如按 `trace_id``severity` 检索)
- 通知:集成机器人(如钉钉 webhook告警抑制与静默策略
### 9. 测试与验收详解
- 接口测试Postman/Newman 集合与环境变量;覆盖核心链路(采集→诊断→修复)
- 脚本化测试:利用 shell/python 进行冒烟与回归;对关键脚本做幂等校验
- 性能基线HDFS `TestDFSIO`、Flume 压测;记录 QPS、延迟、失败率
- 测试产物:报告、问题清单、变更记录与复现脚本
### 10. 评估与分析详解
- 指标口径:准确性(错误识别率)、时效性(平均修复时长)、有效性(闭环率)
- 数据抽取:从 MySQL 抽取 `incidents``ops_actions`,用 Pandas 统计与可视化
- 周报模板:结论(达成/风险)、指标趋势图、问题与对策、下周计划
---
## 每日任务清单示例3 周×1.5 小时/天)
- 第 1 周:
- Day 1系统初始化与 SSH 免密;编写健康检查脚本
- Day 2防火墙与端口策略JDK 与环境变量
- Day 3部署 HDFS格式化 NN 与基础操作
- Day 4部署 YARN提交 MR 示例并观察任务
- Day 5HDFS 权限与副本;`fsck` 与故障演练
- Day 6安装 MySQL/Redis账号与备份策略
- Day 7周总结与复盘完善部署与脚本
- 第 2 周:
- Day 8部署 Flume单源到 HDFS
- Day 9多源汇聚与参数调优压测与容错
- Day 10部署后端`/health` 与日志规范
- Day 11OpenAPI 与版本管理;统一错误响应
- Day 12自动化修复脚本设计与低风险脚本验证
- Day 13审批与回滚机制执行日志打通
- Day 14周总结与复盘联调采集—接口—修复
- 第 3 周:
- Day 15Dockerfile 与镜像构建;`.dockerignore`
- Day 16Compose 多服务编排;一键启停
- Day 17K8s 本地部署Readiness/Liveness 探针
- Day 18Prometheus/Grafana 指标与告警规则
- Day 19日志聚合与检索排查路径固化
- Day 20Postman 集合与性能基线;问题闭环
- Day 21评估报表与周报输出整体复盘
---
## 练习与验收样例(可直接使用)
- 练习:将 `app.log` 通过 Flume 写入 HDFS再由后端接口读取并统计错误数输出到 MySQL `incidents` 表。
- 验收:提交 MR 示例与接口集合;展示监控面板与告警;演示一次故障发现→自动修复→记录入库→报表输出的闭环。
Loading…
Cancel
Save