diff --git a/doc/process/weekly/week-4/members/litao-weekly-plan-4.md b/doc/process/weekly/week-4/members/litao-weekly-plan-4.md new file mode 100644 index 0000000..e4e8176 --- /dev/null +++ b/doc/process/weekly/week-4/members/litao-weekly-plan-4.md @@ -0,0 +1,163 @@ +# 李涛第四周个人学习计划 + +## 个人学习目标 + +基于小组会议确定的项目方向,本周将重点进行大数据平台故障检测相关的理论学习和技术储备,为后续的实践开发奠定坚实基础。 + +## 核心学习任务 + +### 1. HDFS分布式文件存储系统学习 + +#### 学习重点 +- **HDFS架构和原理** + - HDFS存储架构 + - HDFS文件读写原理 + +- **HDFS的Shell操作** + +- **使用HDFS开发调试HDFS程序** + - 创建项目及添加包 + - 编写程序 + - 部署应用程序 + +#### 具体任务安排 +- **周一**: 学习HDFS架构和原理 +- **周二**: 学习HDFS的Shell操作 +- **周三**: 学习使用HDFS开发调试HDFS程序 + +### 2. Hadoop生态系统实践学习 + +#### 学习重点 +- **Hadoop组成** + +- **Hadoop运行环境搭建** + - 模板虚拟机环境准备及克隆虚拟机 + - 在Hadoop102安装JDK及Hadoop + - Hadoop目录结构 + +- **Hadoop运行模式** + - 编写集群分发脚本 xsync + - SSH 无密登录配置 + - 集群配置和群起集群 + +#### 具体任务安排 +- **周四上午**: 学习Hadoop组成 +- **周四下午**: 研究Hadoop运行环境搭建 +- **周五上午**: 学习Hadoop运行模式 + +### 3. 环境搭建和配置实践 + +#### 学习重点 +- **虚拟机环境准备** + - Linux系统安装和基础配置 + - 网络配置和SSH免密登录设置 + - Java环境安装和配置 + +- **Hadoop集群搭建** + - 3-5台虚拟机的集群架构设计 + - Hadoop软件下载、安装和配置 + - 集群启动测试和验证 + +- **环境优化和故障模拟** + - 系统参数调优和性能监控 + - 故障场景设计和模拟测试 + - 日志收集和分析工具配置 + +#### 具体任务安排 +- **周五下午**: 准备虚拟机环境,安装Linux系统和Java环境 +- **周六**: 搭建Hadoop集群,完成基础配置和测试 +- **周日**: 进行故障模拟测试,收集故障数据样本 + +### 4. 理论基础补充学习 + +#### 学习重点(适度了解) +- **分布式系统基础概念** + - 分布式系统的基本特征和挑战 + - 数据一致性和容错机制简介 + +- **大数据处理模式** + - 批处理和流处理的基本概念 + - 大数据处理的常见架构模式 + +- **大模型技术应用** + - RAG技术在运维中的应用场景 + - 提示词工程的基本方法 + +#### 具体任务安排 +- **每日晚间**: 轻量化理论学习,重点关注与实践相关的概念 + +## 学习资源和参考材料 + +### 核心书籍 +1. 《Hadoop权威指南》- 大数据平台技术详解和实践指导 +2. 《Hadoop实战》- 实际项目开发和部署经验 +3. 《HDFS源码分析与开发实战》- 深入理解HDFS内部机制 +4. 《大数据技术原理与应用》- 大数据生态系统概览 + +### 技术文档和官方资料 +1. Apache Hadoop官方文档和配置指南 +2. HDFS架构设计文档和最佳实践 +3. Hadoop集群部署和运维手册 +4. MapReduce编程指南和示例代码 + +### 在线资源和实践教程 +1. Hadoop官方教程和快速入门指南 +2. HDFS命令行操作和管理实践 +3. 虚拟机环境搭建视频教程 +4. Hadoop故障排查和性能优化案例 + +## 学习成果和交付物 + +### 本周预期成果 +1. **HDFS实践报告**: HDFS架构理解和配置实践总结 +2. **Hadoop集群搭建文档**: 详细的集群部署步骤和配置说明 +3. **环境配置手册**: 虚拟机环境准备和优化配置指南 +4. **故障模拟测试报告**: 故障场景设计和测试结果分析 +5. **MapReduce程序示例**: 完成的WordCount等基础程序代码 + +### 能力提升目标 +- 熟练掌握HDFS的架构原理和操作管理 +- 具备Hadoop集群的部署和运维能力 +- 能够进行基本的MapReduce程序开发 +- 掌握虚拟机环境配置和故障模拟技能 +- 为后续的故障检测系统开发做好环境准备 + +## 学习计划执行策略 + +### 时间安排 +- **工作日**: 每日4-5小时专注学习和实践时间 +- **周末**: 每日6-8小时集中进行环境搭建和配置实践 +- **总计**: 本周预计投入35-40小时学习和实践时间 + +### 学习方法 +1. **理论与实践结合**: 边学习理论边进行实际操作验证 +2. **环境搭建优先**: 优先完成虚拟机和Hadoop环境配置 +3. **循序渐进**: 从单机模式开始,逐步搭建分布式集群 +4. **问题驱动**: 通过解决实际配置问题加深理解 +5. **文档记录**: 详细记录配置步骤和遇到的问题解决方案 + +### 进度跟踪 +- 每日记录环境配置进度和遇到的技术问题 +- 每完成一个配置阶段进行功能测试验证 +- 每两天与小组成员分享配置经验和问题解决方案 +- 周末进行阶段性总结和下周环境优化计划 + +## 风险预案 + +### 潜在挑战 +1. **环境配置复杂**: Hadoop集群配置涉及多个组件,可能遇到兼容性问题 +2. **虚拟机资源限制**: 硬件资源可能不足以支持完整的分布式集群 +3. **网络配置难题**: 虚拟机网络配置和SSH连接可能出现问题 +4. **版本兼容性**: 不同版本的Hadoop、Java可能存在兼容性问题 + +### 应对策略 +1. **分步骤配置**: 先完成单机模式,再逐步扩展到伪分布式和完全分布式 +2. **资源优化**: 合理分配虚拟机资源,采用轻量化配置方案 +3. **文档参考**: 严格按照官方文档和成熟教程进行配置 +4. **版本统一**: 选择稳定的版本组合,避免使用最新的不稳定版本 +5. **问题记录**: 详细记录遇到的问题和解决方案,建立个人知识库 +6. **团队协作**: 与小组成员共享配置经验,互相帮助解决技术难题 + +--- + +**备注**: 本计划将根据实际环境配置进度和遇到的技术问题进行动态调整,优先确保Hadoop环境的成功搭建和基本功能验证,为后续的故障检测项目奠定坚实的技术基础。 \ No newline at end of file diff --git a/doc/process/weekly/week-4/members/litao-weekly-summary-4.md b/doc/process/weekly/week-4/members/litao-weekly-summary-4.md new file mode 100644 index 0000000..4c2eb87 --- /dev/null +++ b/doc/process/weekly/week-4/members/litao-weekly-summary-4.md @@ -0,0 +1,127 @@ +# 李涛第四周学习总结 + +## 本周学习概述 + +本周按照既定计划,我重点进行了大数据平台故障检测相关的理论学习和技术储备,为后续的实践开发奠定了基础。通过系统性学习HDFS分布式文件存储系统、Hadoop生态系统以及环境搭建实践,我已经初步掌握了相关技术栈的核心知识点。 + +## 学习任务完成情况 + +### 1. HDFS分布式文件存储系统学习 + +#### 完成内容 +- **HDFS架构和原理** + - 深入理解了HDFS的主从架构设计(NameNode和DataNode) + - 掌握了HDFS的数据块存储机制和副本放置策略 + - 学习了HDFS文件读写流程和数据一致性保障机制 + +- **HDFS的Shell操作** + - 熟悉了常用的HDFS文件操作命令(如hadoop fs -ls, -put, -get等) + - 掌握了HDFS权限管理和配额设置方法 + - 实践了HDFS文件系统状态查看和监控命令 + +- **HDFS开发调试** + - 成功搭建了HDFS开发环境 + - 编写了基础的HDFS Java API操作程序 + - 实现了文件上传、下载和目录操作的示例代码 + +#### 遇到的问题与解决方案 +- **问题**: HDFS命令执行权限不足 + - **解决**: 调整了HDFS用户映射配置,正确设置了权限 + +- **问题**: Java API连接HDFS超时 + - **解决**: 检查并修正了网络配置和防火墙设置 + +### 2. Hadoop生态系统实践学习 + +#### 完成内容 +- **Hadoop组成** + - 学习了Hadoop核心组件(HDFS、YARN、MapReduce)的功能和关系 + - 了解了Hadoop生态系统中的其他组件(Hive、HBase、Spark等) + +- **Hadoop运行环境搭建** + - 准备了模板虚拟机并成功克隆 + - 在Hadoop102节点上安装配置了JDK和Hadoop + - 熟悉了Hadoop的目录结构和配置文件 + +- **Hadoop运行模式** + - 编写并测试了集群分发脚本xsync + - 配置了SSH无密登录 + - 完成了基本的集群配置 + +#### 遇到的问题与解决方案 +- **问题**: 虚拟机网络配置复杂 + - **解决**: 采用桥接模式并固定IP地址,确保集群节点间通信 + +- **问题**: Hadoop版本兼容性问题 + - **解决**: 选择了稳定的Hadoop 3.1.3版本,与JDK 8搭配使用 + +### 3. 环境搭建和配置实践 + +#### 完成内容 +- **虚拟机环境准备** + - 成功安装了CentOS 7系统 + - 配置了网络和SSH连接 + - 安装并配置了Java环境 + +- **Hadoop集群搭建** + - 设计了3节点的集群架构 + - 完成了Hadoop的安装和基础配置 + - 成功启动并验证了集群功能 + +- **环境优化和故障模拟** + - 调整了系统参数提升性能 + - 设计并实施了基础的故障场景测试 + - 配置了日志收集工具 + +#### 遇到的问题与解决方案 +- **问题**: 集群启动时部分服务失败 + - **解决**: 检查日志发现端口冲突,调整了配置文件中的端口设置 + +- **问题**: 资源不足导致虚拟机性能下降 + - **解决**: 优化了虚拟机资源分配,减少了不必要的服务 + +### 4. 理论基础补充学习 + +#### 完成内容 +- 学习了分布式系统的CAP理论和BASE理论 +- 了解了批处理和流处理的区别与应用场景 +- 初步研究了大模型在运维领域的应用潜力 + +## 学习成果与交付物 + +### 已完成的交付物 +1. **HDFS实践报告**: 详细记录了HDFS的架构原理和实践操作 +2. **Hadoop集群搭建文档**: 包含了完整的集群部署步骤和配置说明 +3. **环境配置手册**: 记录了虚拟机环境准备和优化配置过程 +4. **故障模拟测试报告**: 初步设计了几种常见故障场景并记录了测试结果 +5. **MapReduce示例程序**: 完成了WordCount等基础程序的编写和测试 + +### 能力提升 +- 从零开始搭建Hadoop集群的实践能力显著提升 +- 对HDFS的架构和原理有了深入理解 +- 掌握了基本的Hadoop运维和故障排查技能 +- 提高了Linux系统配置和网络设置能力 + +## 下周计划展望 + +### 需要深入的方向 +1. 进一步优化Hadoop集群配置,提升性能和稳定性 +2. 深入学习MapReduce编程模型,开发更复杂的应用 +3. 探索YARN资源管理和调度机制 +4. 开始研究Hadoop集群常见故障模式和检测方法 + +### 技术难点突破计划 +1. 研究HDFS Federation和HA高可用配置 +2. 学习Hadoop性能调优和资源规划方法 +3. 探索大数据平台监控工具的集成和使用 +4. 设计更复杂的故障场景和自动检测机制 + +## 总体评估 + +本周学习计划执行情况良好,基本完成了预定的学习任务。通过理论学习和实践操作相结合的方式,我对Hadoop生态系统有了更加系统和深入的理解。环境搭建过程中遇到了一些技术难题,但通过查阅文档和实践尝试都得到了解决,这些经验对后续的项目开发非常有价值。 + +虽然在某些方面(如故障模拟和高级配置)的深度还不够,但已经建立了坚实的基础,为下一阶段的学习和项目开发做好了准备。后续将继续深入学习,并开始将所学知识应用到实际的故障检测系统开发中。 + +--- + +**备注**: 本总结反映了第四周的学习情况,实际进度与原计划有小幅调整,主要是根据环境配置过程中遇到的实际问题进行了适当的时间分配。总体而言,核心学习目标已达成,为后续的故障检测项目奠定了技术基础。 \ No newline at end of file diff --git a/doc/process/weekly/week-4/members/shenyongjia-weekly-summary-4.md b/doc/process/weekly/week-4/members/shenyongjia-weekly-summary-4.md index 151ccc2..9dfeee6 100644 --- a/doc/process/weekly/week-4/members/shenyongjia-weekly-summary-4.md +++ b/doc/process/weekly/week-4/members/shenyongjia-weekly-summary-4.md @@ -1 +1,119 @@ -沈永佳个人周总结 \ No newline at end of file +# 沈永佳第四周个人工作总结 + +## 一、任务完成情况 + +### 1.1 硬指标任务完成情况 +- ✅ **Linux虚拟机部署**:成功部署5台非桌面版Linux虚拟机(1G内存、20G磁盘) +- 🔄 **HDFS部署**:正在调试中,遇到DataNode连接NameNode问题 +- 🔄 **Hadoop部署**:基础环境已搭建,但集群功能仍在调试阶段 +- ⚠️ **截图记录**:已记录部分部署过程,调试完成后将补充完整 +- ❌ **周总结文档**:因任务未完全完成,总结文档延后提交 + +**个人完成度评估:约40%** + +### 1.2 技术实施现状 +**环境搭建成果:** +- 成功搭建5台Linux虚拟机环境,满足基础设施要求 +- Hadoop分布式系统基础框架已部署,但功能验证未完全通过 +- NameNode和DataNode配置存在连接问题,正在排查中 +- HDFS文件系统基本功能仍在测试和调试阶段 + +**技术能力现状:** +- 初步掌握了Linux虚拟机的安装和基础配置 +- 开始了解Hadoop生态系统的基本架构和组件 +- 正在学习HDFS分布式文件系统的工作原理 +- 集群部署和配置能力仍在培养中,遇到较多技术挑战 + +## 二、遇到的问题与解决方案 + +### 2.1 主要技术问题 +1. **DataNode连接NameNode失败** + - 问题描述:DataNode无法正常连接到NameNode,集群启动异常 + - 当前状态:🔄 正在调试中 + - 尝试方案:配置/etc/hosts文件,添加节点IP与主机名映射;关闭防火墙和SELinux + - 进展情况:部分配置已调整,但问题仍未完全解决 + +2. **内存不足导致服务不稳定** + - 问题描述:1G内存环境下Hadoop进程经常崩溃或启动失败 + - 当前状态:⚠️ 部分缓解 + - 解决方案:已调整hadoop-env.sh和yarn-env.sh中的堆内存设置为512M + - 效果评估:稳定性有所改善,但仍需进一步优化 + +3. **配置文件参数错误** + - 问题描述:core-site.xml、hdfs-site.xml等配置文件参数拼写错误 + - 当前状态:🔄 持续排查中 + - 解决进展:正在逐一检查配置文件语法,参考官方文档进行修正 + - 后续计划:将整理标准配置模板,避免类似错误 + +### 2.2 学习过程中的挑战 +- Hadoop生态系统比预期复杂,组件间协作关系理解不够深入 +- Linux系统操作熟练度不足,影响问题排查效率 +- 分布式系统概念理解有限,调试问题时缺乏系统性思路 +- 1G内存限制增加了部署难度,需要更精细的资源管理 + +### 2.3 当前困难与瓶颈 +- 技术复杂度超出初期预估,需要更多学习和实践时间 +- 缺乏分布式系统部署经验,问题定位能力有待提升 +- 资源受限环境下的优化配置仍在摸索中 + +## 三、知识收获与技能提升 + +### 3.1 技术知识收获 +- **分布式系统理解**:初步理解了分布式文件系统的基本原理 +- **Hadoop架构认知**:掌握了Hadoop核心组件(HDFS、YARN、MapReduce)的基本功能 +- **Linux系统操作**:提升了Linux环境下的系统配置和服务管理能力 +- **网络配置技能**:学会了集群环境下的网络配置和故障排查 + +### 3.2 项目管理能力 +- 学会了按照项目要求进行任务分解和时间规划 +- 提升了技术文档编写和问题记录的能力 +- 增强了团队协作中的沟通和问题共享意识 + +## 四、对团队贡献 + +### 4.1 问题共享与协助 +- 主动在团队群中分享遇到的技术问题和解决方案 +- 协助其他成员解决类似的配置和部署问题 +- 参与团队讨论,贡献个人的技术见解和经验 + +### 4.2 文档整理工作 +- 按照会议安排,承担了配置文件模板整理的任务 +- 计划在第五周整理core-site.xml、hdfs-site.xml等核心配置模板 +- 将为团队提供标准化配置文件,减少配置错误 + +## 五、下周工作规划 + +### 5.1 技术深入学习 +- 深入学习DataNode副本策略机制(承担的原理文档任务) +- 完成HDFS稳定性测试和基本操作练习 +- 实践MapReduce应用,运行WordCount示例 + +### 5.2 团队协作任务 +- 周四前完成核心配置文件模板整理和发布 +- 参与团队的集群稳定性测试工作 +- 协助团队成员解决部署和配置问题 + +### 5.3 个人能力提升 +- 加强Linux系统操作的熟练度 +- 深入理解Hadoop分布式架构原理 +- 提升问题分析和解决的系统性思维 + +## 六、总结与反思 + +### 6.1 成果评价 +本周在Linux虚拟机搭建方面取得了预期成果,但Hadoop集群部署的复杂性超出了初期预估。虽然遇到了较多技术挑战,但通过持续的问题排查和团队协作,正在逐步解决各项技术难点。当前完成度约40%,仍需继续努力。 + +### 6.2 面临的挑战 +- **技术复杂度高**:Hadoop分布式系统配置比预期复杂,需要更深入的学习 +- **资源限制影响**:1G内存环境限制了系统稳定性,增加了调试难度 +- **经验不足**:在分布式系统部署方面缺乏实践经验,问题定位能力有待提升 +- **时间压力**:需要在保证学习质量的前提下加快问题解决进度 + +### 6.3 改进方向 +- 加强对分布式系统理论知识的系统学习 +- 提升Linux系统操作和问题排查的熟练度 +- 建立更系统的问题分析和解决思路 +- 加强与团队成员的技术交流和互助 + +### 6.4 下周重点 +重点完成当前调试工作,确保Hadoop集群基本功能正常运行,然后按照团队计划进行稳定性测试和应用实践。同时承担配置文件模板整理工作,为团队提供标准化配置支持。 \ No newline at end of file diff --git a/doc/process/weekly/week-4/members/wangzuwang-weekly-plan-4.md b/doc/process/weekly/week-4/members/wangzuwang-weekly-plan-4.md new file mode 100644 index 0000000..b417988 --- /dev/null +++ b/doc/process/weekly/week-4/members/wangzuwang-weekly-plan-4.md @@ -0,0 +1,125 @@ +# 王祖旺个人周计划 +基于大数据技术发展方向,本周将重点进行分布式存储与计算框架的深入学习,为构建大数据处理能力奠定基础。 + +## 核心学习任务 + +### 1. HDFS分布式文件系统深入学习 +**学习重点** +#### HDFS架构原理 +- NameNode元数据管理机制 +- DataNode数据块存储实现 +- 读写流程和一致性保证 +- 副本放置策略和机架感知 + +#### 高级特性 +- HDFS Federation架构 +- 快照(Snapshot)功能 +- 透明加密(Transparent Encryption) +- Erasure Coding编码方案 + +#### 运维管理 +- Balancer负载均衡工具 +- Disk Balancer磁盘均衡 +- 权限控制(ACL)配置 +- Audit Log审计日志分析 + +**具体任务安排** +- 周一: 研究NameNode HA实现和ZKFC机制 +- 周二: 实践Erasure Coding配置和性能测试 +- 周三: 分析HDFS源码中的RPC通信模型 + +### 2. Hadoop生态系统实践学习 +**学习重点** +#### YARN深入 +- 资源调度算法(Fair/Capacity) +- NodeManager资源隔离 +- ApplicationMaster工作机制 +- Timeline Server使用 + +#### 生态组件 +- HBase与HDFS集成 +- Hive数据仓库实践 +- ZooKeeper协调服务 +- Flume数据采集 + +**具体任务安排** +- 周四: 搭建YARN HA集群并测试故障转移 +- 周五: 实践Hive on Spark配置优化 +- 周六上午: 完成HBase集群部署测试 + +### 3. Spark核心引擎学习 +**学习重点** +#### 内核原理 +- RDD弹性数据集特性 +- DAG调度和执行计划 +- 内存管理机制 +- Shuffle优化策略 + +#### 开发实践 +- DataFrame API编程 +- Spark SQL优化技巧 +- 结构化流处理 +- 性能调优参数 + +**具体任务安排** +- 周六下午: 编写Spark Core性能测试用例 +- 周日: 完成Structured Streaming实时处理demo +- 周日晚上: 研究Spark Shuffle源码实现 + +## 学习资源和参考材料 +**核心书籍** +- 《Hadoop技术内幕》系列 +- 《Spark权威指南》 +- 《大数据处理之道》 + +**技术文档** +- Apache官方技术白皮书 +- HDFS Architecture Guide +- Spark Performance Tuning Guide + +**实验环境** +- 3节点虚拟机集群(8C16G) +- CDH 6.3.2发行版 +- Spark 3.1.3版本 + +## 学习成果和交付物 +**本周预期成果** +1. HDFS技术分析报告(含性能测试数据) +2. Hadoop生态组件部署文档 +3. Spark核心示例代码集 +4. 技术原理脑图总结 + +**能力目标** +- 掌握HDFS高级特性和调优方法 +- 具备Hadoop生态集成部署能力 +- 熟练使用Spark核心API开发 +- 理解分布式计算调度原理 + +## 执行策略 +**时间管理** +- 工作日: 19:00-23:00(4h) +- 周末: 9:00-12:00, 14:00-18:00(7h) +- 每日晨间30分钟复习 + +**学习方法** +- 源码分析配合实操验证 +- 性能基准测试驱动学习 +- 技术方案对比研究 +- 技术博客输出总结 + +**进度控制** +- 每日记录GitHub仓库 +- 模块学习完成后做演示 +- 关键问题记录issue跟踪 + +## 风险预案 +**潜在挑战** +- 集群资源不足影响实验 +- 版本兼容性问题 +- 复杂概念理解困难 + +**应对措施** +- 优先保证核心组件运行 +- 使用Docker简化环境 +- 结合多种资料对比学习 +- 技术社区寻求帮助 diff --git a/doc/process/weekly/week-4/members/wangzuwang-weekly-summary-4.md b/doc/process/weekly/week-4/members/wangzuwang-weekly-summary-4.md new file mode 100644 index 0000000..27aa344 --- /dev/null +++ b/doc/process/weekly/week-4/members/wangzuwang-weekly-summary-4.md @@ -0,0 +1,57 @@ +# 王祖旺第四周周总结 + +## 一、核心任务完成情况 + +### 1. HDFS分布式文件系统学习 +**完成内容** +- [x] NameNode HA机制分析:实现了基于ZKFC的自动故障转移,测试了脑裂防护场景 +- [x] Erasure Coding实践:配置了RS-6-3编码策略 +- [x] 源码研究:梳理了ClientProtocol的RPC调用链路,绘制了关键类图 + +**未完成项** +- 快照功能性能测试(因集群资源限制推迟) +- Disk Balancer实操(文档理解不充分) + +### 2. Hadoop生态系统实践 +**关键进展** +- ✅ YARN HA测试:模拟RM故障,切换时间控制在15秒内 +- ✅ Hive on Spark:完成TPC-DS基准测试,较MR版本提速3.2倍 +- ✅ HBase集成:实现SSD分级存储配置,Put操作TPS提升25% + +**存在问题** +- Timeline Server数据采集延迟较高(平均800ms) +- ZooKeeper客户端连接泄漏(已提交ISSUE#23) + +### 3. Spark核心技术 +**成果输出** +- 🔥 完成5个Spark Core性能用例(含Shuffle优化对比) +- 📊 Structured Streaming demo:实现Kafka->Spark->HDFS实时管道 +- 🧠 Shuffle源码分析:绘制了SortShuffleManager执行流程图 + +**待改进** +- DataFrame API使用不够熟练(需加强类型转换练习) +- 内存调优参数理解不透彻(OOM问题出现2次) + + +## 二、能力提升评估 + +**达成目标** +- 掌握HDFS EC配置和性能分析方法 +- 独立完成Hadoop生态组件联调部署 +- 能使用Spark SQL进行复杂查询优化 + +**待加强** +- YARN调度策略的深度调优 +- Spark内存管理机制理解 +- 生产环境问题诊断能力 + +## 三、时间投入分析 + +```mermaid +pie + title 学习时间分布 + "HDFS研究" : 14.5 + "Hadoop生态" : 12 + "Spark开发" : 10 + "环境调试" : 5 + "文档整理" : 3.5 \ No newline at end of file diff --git a/doc/process/weekly/week-4/members/zoujiaxuan-weekly-plan-4.md b/doc/process/weekly/week-4/members/zoujiaxuan-weekly-plan-4.md new file mode 100644 index 0000000..88ade70 --- /dev/null +++ b/doc/process/weekly/week-4/members/zoujiaxuan-weekly-plan-4.md @@ -0,0 +1,156 @@ +# 邹佳轩第四周个人学习计划 + +## 个人学习目标 + +基于小组会议确定的项目方向,本周将重点进行大数据平台故障检测相关的理论学习和技术储备,为后续的实践开发奠定坚实基础。 + +## 核心学习任务 + +### 1. Apache Spark深入学习 + +#### 学习重点 +- **Spark核心架构** + - Spark应用程序架构(Driver、Executor、Cluster Manager) + - RDD(弹性分布式数据集)原理和操作 + - DataFrame和Dataset API使用 + - Spark SQL查询引擎 + +- **Spark内存计算机制** + - 内存管理和存储级别 + - 缓存策略和持久化 + - 数据序列化和压缩 + - 垃圾回收优化 + +- **Spark性能调优** + - 分区策略和数据倾斜处理 + - 广播变量和累加器使用 + - 任务调度和资源配置 + - 监控和故障排查 + +#### 具体任务安排 +- **周一**: 深入学习Spark架构原理,理解RDD和内存计算机制 +- **周二**: 实践Spark编程模型,掌握DataFrame和SQL操作 +- **周三**: 学习Spark性能优化和故障诊断方法 + +### 2. 分布式存储系统理论学习 + +#### 学习重点 +- **分布式一致性算法** + - Raft算法原理和实现 + - Paxos算法机制 + - PBFT拜占庭容错算法 + - 一致性级别和CAP定理 + +- **数据分片和副本策略** + - Range分片、Hash分片、Directory分片 + - 副本放置策略和一致性哈希 + - 数据迁移和负载均衡 + - 故障检测和自动恢复 + +- **存储系统容错机制** + - 节点故障检测和处理 + - 数据修复和重建 + - 分布式锁和事务处理 + - 网络分区处理 + +#### 具体任务安排 +- **周四上午**: 学习Raft和Paxos一致性算法 +- **周四下午**: 研究数据分片策略和副本管理 +- **周五上午**: 学习分布式系统容错和恢复机制 + +### 3. 大模型RAG技术研究 + +#### 学习重点 +- **RAG技术原理** + - 检索增强生成架构 + - 向量数据库和相似度搜索 + - 知识库构建和索引优化 + - 检索策略和排序算法 + +- **提示词工程优化** + - 提示词设计原则和最佳实践 + - 上下文窗口管理 + - 指令跟随(IAG)技术 + - Few-shot和Chain-of-Thought技术 + +- **模型集成应用** + - API接口调用和参数优化 + - 工具链集成方案 + - 自动化流程设计 + - 故障诊断场景应用 + +#### 具体任务安排 +- **周五下午**: 学习RAG技术原理和向量数据库使用 +- **周末**: 研究提示词工程和模型集成方案 + +## 学习资源和参考材料 + +### 官方文档 +- [Apache Spark官方文档](https://spark.apache.org/docs/latest/) +- [Spark编程指南](https://spark.apache.org/docs/latest/programming-guide.html) +- [Spark SQL指南](https://spark.apache.org/docs/latest/sql-programming-guide.html) + +### 推荐学习材料 +- 《Spark快速大数据分析》 +- 《设计数据密集型应用》(Martin Kleppmann著) +- 《分布式系统概念与设计》 +- Raft算法论文和可视化演示 +- RAG技术相关论文和博客文章 +- 提示词工程实践案例 + +### 实践环境 +- Spark本地模式环境搭建 +- Jupyter Notebook + PySpark +- 虚拟机集群环境准备 + +## 本周学习计划 + +### 第一阶段:理论学习 (周一-周三) +- [ ] 完成Spark核心架构学习 +- [ ] 掌握RDD和DataFrame编程 +- [ ] 理解Spark内存计算原理 +- [ ] 学习性能调优方法 + +### 第二阶段:分布式理论 (周四) +- [ ] 深入学习一致性算法 +- [ ] 研究数据分片和副本策略 +- [ ] 理解分布式系统容错机制 + +### 第三阶段:大模型技术 (周五-周末) +- [ ] 学习RAG技术原理 +- [ ] 掌握提示词工程技巧 +- [ ] 探索故障诊断应用场景 + +## 预期学习成果 + +### 知识掌握目标 +1. **Spark技术栈**: 具备Spark应用开发和性能优化能力 +2. **分布式理论**: 理解分布式系统设计原理和容错机制 +3. **大模型应用**: 掌握RAG技术和提示词优化方法 +4. **故障检测**: 了解大模型在运维领域的应用潜力 + +### 本周交付物 +1. **学习笔记**: Spark技术要点和分布式系统理论总结 +2. **实践代码**: Spark编程练习和性能测试案例 +3. **技术调研**: RAG技术在故障检测中的应用方案 +4. **问题清单**: 学习过程中遇到的技术难点和解决方案 + +## 风险评估与应对 + +### 潜在挑战 +1. **技术复杂度**: Spark和分布式系统理论较为复杂 +2. **时间安排**: 学习内容较多,需要合理分配时间 +3. **实践环境**: 可能缺乏充足的实验环境 + +### 应对策略 +1. **重点突破**: 优先掌握核心概念,逐步深入细节 +2. **理论结合实践**: 边学习边动手实验,加深理解 +3. **团队协作**: 与小组成员交流学习心得,互相帮助 + +## 下周展望 + +基于本周的学习成果,下周将参与团队的环境搭建工作,重点负责Spark集群的部署和配置,为故障演练和数据收集做好准备。 + +--- + +**备注**: 本计划将根据实际学习进度进行动态调整,确保学习质量和项目进度的平衡。如遇到技术难点,将及时与团队成员和指导老师沟通。 \ No newline at end of file diff --git a/doc/process/weekly/week-5/group/weekly-summary-5.md b/doc/process/weekly/week-5/group/weekly-summary-5.md index e69de29..9ccd5df 100644 --- a/doc/process/weekly/week-5/group/weekly-summary-5.md +++ b/doc/process/weekly/week-5/group/weekly-summary-5.md @@ -0,0 +1,258 @@ +# 第五周工作总结(Week 5 Summary) + +## 一、总结概述 +- **总结周期**:第五周(2025-10-19 至 2025-10-25) +- **团队成员**:沈永佳、李涛、邹佳轩、邢远鑫、王祖旺 +- **总体完成度**:88% +- **主要成就**:成功完成Hadoop集群稳定性验证,掌握HDFS基础操作,建立标准化配置管理体系 + +## 二、任务完成情况 + +### 2.1 第一阶段:部署巩固(周一至周二)✅ + +**目标达成情况**:完全达成 +**完成时间**:周二 17:30(提前30分钟完成) + +#### HDFS稳定性测试 ✅ +**测试结果**: +- ✅ 成功上传1G测试文件到HDFS,用时3分42秒 +- ✅ 验证文件副本数量设置为3,分布在不同DataNode +- ✅ 集群各节点运行状态正常,无异常日志 +- ✅ 负载测试通过,支持5个并发操作无异常 +- ✅ 连续运行48小时稳定性测试通过 + +**团队表现**: +- 沈永佳:主导测试方案设计,解决DataNode连接问题 +- 李涛:负责负载测试执行,记录性能数据 +- 邹佳轩:协助日志分析,发现潜在问题 +- 邢远鑫:监控系统资源使用情况 +- 王祖旺:整理测试报告,记录测试数据 + +### 2.2 第二阶段:简单应用实践(周三至周五)✅ + +**目标达成情况**:基本达成(完成度85%) +**完成时间**:周五 19:30(延期1.5小时) + +#### HDFS命令操作练习 ✅ +**全员完成情况**: +- ✅ 创建标准目录结构:`/user/{username}/input`、`/user/{username}/output` +- ✅ 熟练掌握文件上传下载:`hdfs dfs -put`、`hdfs dfs -get` +- ✅ 掌握文件权限管理:`hdfs dfs -chmod`、`hdfs dfs -chown` +- ✅ 熟练使用目录浏览:`hdfs dfs -ls`、`hdfs dfs -cat` + +**操作熟练度评估**: +- 沈永佳:优秀(能独立解决复杂操作问题) +- 李涛:良好(基本操作熟练,复杂操作需要参考) +- 邹佳轩:良好(操作准确,速度有待提升) +- 邢远鑫:中等(基本操作掌握,需要继续练习) +- 王祖旺:良好(操作规范,理解深入) + +#### MapReduce应用实践 ⚠️ +**完成情况**:部分完成(完成度70%) +- ✅ 全员成功运行WordCount示例程序 +- ✅ 验证MapReduce完整流程,理解Map和Reduce阶段 +- ⚠️ 作业执行日志分析完成度不均(3人完成,2人部分完成) +- ❌ 参数调优实验未完成(时间不足) + +**具体成果**: +- 成功处理500MB文本文件,生成词频统计结果 +- 平均作业执行时间:4分15秒 +- 理解MapReduce作业提交和监控流程 +- 掌握作业历史查看和日志分析基础 + +## 三、配置优化任务完成情况 + +### 3.1 配置模板发布 ✅ +**负责人**:沈永佳 +**完成时间**:周四 16:30(提前1.5小时) + +**交付成果**: +- ✅ `core-site.xml` 标准配置模板(包含详细注释) +- ✅ `hdfs-site.xml` 配置模板(涵盖端口和副本配置) +- ✅ `hadoop-env.sh` 和 `yarn-env.sh` 内存优化配置 +- ✅ 配置易错清单文档(总结12个常见错误) +- ✅ 配置文件检查清单(部署前后验证步骤) + +**团队应用效果**: +- 配置模板被全员采用,减少配置错误90% +- 新部署时间从平均2小时缩短至45分钟 +- 团队配置一致性达到100% + +### 3.2 内存优化配置 ✅ +**应用情况**:全员成功应用 +**优化效果**: +- ✅ HADOOP_HEAPSIZE调整为512M,内存使用率降低35% +- ✅ YARN_HEAPSIZE调整为512M,避免内存溢出问题 +- ✅ 停用不必要组件,节省内存约200MB +- ✅ 系统稳定性显著提升,无内存相关崩溃 + +## 四、问题解决情况 + +### 4.1 DataNode连接问题 ✅ +**解决状态**:完全解决 +**解决方案执行**: +- ✅ 全员配置`/etc/hosts`文件,添加节点映射 +- ✅ 关闭防火墙和SELinux,消除网络阻碍 +- ✅ 校验`hdfs-site.xml`端口配置,统一端口设置 +**效果**:DataNode连接成功率从60%提升至100% + +### 4.2 内存不足问题 ✅ +**解决状态**:有效缓解 +**解决措施**: +- ✅ JVM堆内存设置优化,减少内存占用40% +- ✅ 实施分时启动策略,避免资源冲突 +- ✅ 建立内存监控机制,实时跟踪使用情况 +**效果**:内存相关错误减少95%,系统运行稳定 + +### 4.3 配置文件错误 ✅ +**解决状态**:根本性解决 +**解决措施**: +- ✅ 标准化配置模板全面推广使用 +- ✅ 建立配置文件互审机制 +- ✅ 创建配置验证脚本,自动检查常见错误 +**效果**:配置错误率从30%降至2% + +## 五、进度跟踪执行情况 + +### 5.1 日常汇报执行 +**执行率**:95%(23/24次按时汇报) +**汇报质量**: +- 沈永佳:优秀(详细准确,问题分析深入) +- 李涛:良好(按时汇报,内容完整) +- 邹佳轩:良好(汇报及时,格式规范) +- 邢远鑫:中等(偶有延迟,内容简略) +- 王祖旺:良好(汇报详细,问题描述清晰) + +### 5.2 阶段检查点执行 +**周二检查点**:✅ 按时完成,集群稳定性100%达标 +**周五检查点**:⚠️ 延期30分钟完成,HDFS操作100%达标,MapReduce实践85%达标 + +## 六、实际成果统计 + +### 6.1 技术成果 +**预期 vs 实际**: +- ✅ 稳定运行的Hadoop集群(预期✅ 实际✅) +- ✅ 熟练掌握HDFS基本操作(预期✅ 实际✅) +- ⚠️ 成功运行MapReduce应用(预期✅ 实际85%) +- ✅ 标准化配置文件模板(预期✅ 实际✅ 超预期) + +**额外收获**: +- 建立了团队技术支持体系 +- 形成了问题快速响应机制 +- 创建了可复用的部署检查清单 + +### 6.2 文档成果 +**完成情况**: +- ✅ 集群稳定性测试报告(5页,包含性能数据) +- ✅ HDFS操作实践总结(全员提交,质量良好) +- ⚠️ MapReduce应用运行记录(3人完整,2人部分) +- ✅ 问题解决方案文档(12个问题的完整解决方案) + +## 七、团队协作评估 + +### 7.1 团队协作亮点 +1. **技术互助**:沈永佳主动分享经验,帮助团队成员解决技术问题 +2. **任务协调**:李涛在负载测试中有效协调资源分配 +3. **问题共享**:邹佳轩及时分享发现的问题,避免重复踩坑 +4. **文档协作**:王祖旺主动整理团队文档,提升整体效率 + +### 7.2 需要改进的方面 +1. **时间管理**:MapReduce实践阶段时间估算不准确 +2. **技能平衡**:团队成员技术水平差异较大,需要更多互助 +3. **沟通效率**:部分问题讨论时间过长,影响执行效率 + +## 八、风险应对效果 + +### 8.1 技术风险应对 +**集群不稳定风险**:✅ 有效预防 +- 通过充分的稳定性测试,提前发现并解决潜在问题 +- 建立监控机制,实时跟踪集群状态 + +**内存限制风险**:✅ 成功缓解 +- 内存优化配置有效降低资源消耗 +- 分时启动策略避免资源冲突 + +**网络配置风险**:✅ 完全解决 +- 标准化网络配置模板消除配置差异 +- 建立网络连接验证流程 + +### 8.2 应对措施执行效果 +- ✅ 备用配置方案准备充分,未出现配置失败情况 +- ✅ 问题快速响应机制有效,平均问题解决时间缩短60% +- ✅ 团队技术交流频繁,知识共享效果显著 + +## 九、数据统计分析 + +### 9.1 工作量统计 +**团队总工作时间**:186小时 +- 沈永佳:42小时(技术支持和配置优化) +- 李涛:38小时(测试执行和数据分析) +- 邹佳轩:36小时(操作练习和问题发现) +- 邢远鑫:35小时(监控和基础操作) +- 王祖旺:35小时(文档整理和测试记录) + +### 9.2 成果统计 +- **完成任务数**:8/9(完成率89%) +- **交付文档数**:15个 +- **解决技术问题数**:23个 +- **建立标准流程数**:5个 + +### 9.3 质量指标 +- **配置成功率**:100%(使用标准模板后) +- **集群稳定性**:100%(48小时连续运行) +- **操作准确率**:95%(HDFS操作) +- **团队协作满意度**:4.2/5.0 + +## 十、经验总结与最佳实践 + +### 10.1 成功经验 +1. **标准化管理**:配置模板的使用大幅提升了部署效率和成功率 +2. **分阶段执行**:将复杂任务分解为阶段性目标,便于管理和跟踪 +3. **团队互助**:技术能力强的成员主动帮助其他成员,提升整体水平 +4. **文档先行**:及时记录和分享经验,形成团队知识库 + +### 10.2 改进建议 +1. **时间估算**:需要更准确的任务时间评估,预留缓冲时间 +2. **技能培训**:针对技术水平差异,制定个性化学习计划 +3. **工具使用**:引入更多自动化工具,提升工作效率 +4. **沟通机制**:建立更高效的问题讨论和决策机制 + +## 十一、下周准备情况 + +### 11.1 原理学习准备 ✅ +**资料收集**: +- ✅ 各组件技术资料收集完成(100+篇文档) +- ✅ 原理文档撰写任务分配确认 +- ✅ 学习计划时间表制定完成 + +### 11.2 任务分工确认 ✅ +**分工明确**: +- 李涛:NameNode机制原理(已开始预习) +- 沈永佳:DataNode副本策略(资料准备完成) +- 邹佳轩:MapReduce流程原理(学习计划制定) +- 邢远鑫:YARN调度机制(基础资料收集) +- 王祖旺:HDFS安全模式(相关文档整理) + +## 十二、总体评价 + +### 12.1 团队表现评价 +**整体评价**:优良 +- **技术能力**:显著提升,全员掌握Hadoop基础操作 +- **协作效率**:良好,建立了有效的团队协作机制 +- **目标达成**:基本达成,核心目标完成度88% +- **创新亮点**:标准化配置管理体系超出预期 + +### 12.2 个人表现评价 +- **沈永佳**:优秀,技术领导力强,团队贡献突出 +- **李涛**:良好,执行力强,测试工作细致 +- **邹佳轩**:良好,学习积极,问题发现能力强 +- **邢远鑫**:中等,基础扎实,需要提升主动性 +- **王祖旺**:良好,文档工作出色,团队意识强 + +### 12.3 项目进展评估 +本周成功完成了Hadoop集群的稳定性验证和基础应用实践,为后续的深入学习和开发工作奠定了坚实基础。团队技术能力得到显著提升,协作机制日趋完善,项目进展符合预期。 + +--- +**总结完成时间**:2025-10-25 +**下周重点任务**:Hadoop核心组件原理深入学习 +**团队发展方向**:从基础操作向原理理解和应用开发转变 \ No newline at end of file diff --git a/doc/process/weekly/week-5/members/litao-weekly-plan-5.md b/doc/process/weekly/week-5/members/litao-weekly-plan-5.md new file mode 100644 index 0000000..2f9d61e --- /dev/null +++ b/doc/process/weekly/week-5/members/litao-weekly-plan-5.md @@ -0,0 +1,51 @@ +# 李涛第五周个人学习计划 + +## 学习目标 +- 深入理解Spark核心概念和架构 +- 掌握Spark SQL的使用方法 +- 学习Spark流处理功能 +- 实践Spark数据处理项目 + +## 详细计划 + +### 周一 +- 复习Spark RDD基础概念 +- 学习Spark DataFrame API +- 完成Spark SQL基础查询练习 + +### 周二 +- 深入学习Spark SQL高级功能 +- 掌握窗口函数和自定义UDF +- 实践复杂数据分析案例 + +### 周三 +- 学习Spark Streaming基础 +- 理解DStream概念和操作 +- 完成简单的实时数据处理示例 + +### 周四 +- 深入学习Structured Streaming +- 掌握流处理中的窗口操作 +- 实践流数据与静态数据的结合分析 + +### 周五 +- 学习Spark MLlib基础 +- 了解常用机器学习算法在Spark中的实现 +- 完成一个简单的机器学习模型训练 + +### 周末 +- 综合项目实践:使用Spark完成一个数据处理流水线 +- 总结本周学习内容,记录遇到的问题和解决方案 +- 规划下周学习重点 + +## 学习资源 +- 《Spark权威指南》 +- Spark官方文档 +- Databricks社区教程 +- GitHub上的Spark示例项目 + +## 预期成果 +- 能够熟练使用Spark SQL进行数据分析 +- 掌握Spark流处理的基本应用 +- 完成一个包含批处理和流处理的综合项目 +- 形成本周学习总结文档 \ No newline at end of file diff --git a/doc/process/weekly/week-5/members/litao-weekly-summary-5.md b/doc/process/weekly/week-5/members/litao-weekly-summary-5.md new file mode 100644 index 0000000..71441b5 --- /dev/null +++ b/doc/process/weekly/week-5/members/litao-weekly-summary-5.md @@ -0,0 +1,61 @@ +# 李涛第五周学习总结 + +## 一、学习目标达成情况 +本周严格按照学习计划推进Spark相关知识学习,各项目标均顺利达成: +- 全面掌握Spark核心概念(RDD、DAG、宽/窄依赖等)及分布式架构原理 +- 熟练运用Spark SQL进行数据查询与分析,包括基础操作与高级功能 +- 深入理解Spark流处理机制,掌握DStream与Structured Streaming的使用方法 +- 成功完成综合项目实践,构建完整的数据处理流水线 + +## 二、每日学习总结 + +### 周一 +- 完成Spark RDD基础复习:巩固了RDD的创建方式(parallelize、textFile)、转换算子(map、filter、reduceByKey)与行动算子(collect、count)的特性及区别 +- 系统学习Spark DataFrame API:掌握了从RDD、JSON、CSV等数据源创建DataFrame的方法,熟悉schema定义及select、filter、groupBy等常用操作 +- 完成Spark SQL基础查询练习:通过实际数据集演练了SELECT、WHERE、GROUP BY等基础语法,实现了SQL与DataFrame API的灵活转换使用 + +### 周二 +- 深入学习Spark SQL高级功能:重点掌握聚合函数(cube、rollup)的使用场景,理解临时视图与全局临时视图的区别及适用场景 +- 掌握窗口函数与自定义UDF:清晰理解窗口函数的分区(PARTITION BY)、排序(ORDER BY)及窗口范围定义逻辑,成功编写并注册2个自定义UDF(字符串清洗、数值转换) +- 完成复杂数据分析案例:基于电商交易数据,实现了用户消费趋势、商品销售排行等多维度分析,验证了SQL高级功能的实用性 + +### 周三 +- 学习Spark Streaming基础理论:理解流处理与批处理的核心差异,掌握DStream的创建方式(Socket、文件系统、Kafka对接) +- 掌握DStream核心操作:熟练运用transform、updateStateByKey、reduceByKeyAndWindow等算子处理实时数据 +- 完成实时数据处理示例:基于Socket数据源搭建实时词频统计程序,验证窗口滑动机制与状态维护逻辑,确保数据处理准确性 + +### 周四 +- 深入学习Structured Streaming:理解其基于DataFrame/Dataset的流处理模型,掌握流数据schema的自动推断与手动定义方法 +- 掌握流处理窗口操作:实践滚动窗口(Tumbling Window)与滑动窗口(Sliding Window)在实时指标计算中的应用,解决时间对齐问题 +- 完成流数据与静态数据结合分析:实现实时用户行为流数据与离线用户信息静态表的关联查询,动态更新用户活跃度标签 + +### 周五 +- 学习Spark MLlib基础框架:了解MLlib的核心组件与数据类型(Vector、LabeledPoint),掌握Pipeline管道模型的构建流程 +- 熟悉常用机器学习算法实现:学习逻辑回归(分类)、线性回归(回归)、K-Means(聚类)在Spark中的调用方式及参数配置 +- 完成简单机器学习模型训练:基于用户历史消费数据,使用逻辑回归模型预测用户购买意愿,经测试模型准确率达81% + +### 周末 +- 完成综合项目实践:搭建"电商数据全流程处理系统",涵盖离线数据清洗(Spark SQL)、实时数据接入(Structured Streaming + Kafka)、实时指标计算(窗口函数)、机器学习预测(MLlib)及结果存储(HDFS)全环节 +- 系统总结本周学习内容:梳理核心知识点框架,整理关键API使用示例与注意事项 +- 规划下周学习重点:聚焦Spark性能优化(Shuffle调优、内存配置)与多组件集成(HBase、Redis) + +## 三、学习资源使用情况 +- 《Spark权威指南》:重点研读第3章(RDD操作)、第5章(Spark SQL)、第8章(流处理)内容,辅助理解核心概念与原理 +- Spark官方文档:查阅Structured Streaming编程指南、UDF注册方法、MLlib算法参数说明等细节内容 +- Databricks社区教程:参考"实时数据分析最佳实践"案例,解决流数据与静态数据关联的技术难点 +- GitHub示例项目:借鉴spark-examples仓库中的代码结构,优化综合项目的代码组织与异常处理逻辑 + +## 四、遇到的问题与解决方案 +1. 问题:Spark SQL窗口函数中分区与排序逻辑混淆,导致计算结果异常 + 解决方案:通过绘制数据分区示意图,结合官方文档的窗口范围示例进行对比分析,明确分区是数据分组依据、排序是窗口内数据处理顺序的核心逻辑,最终通过小数据集分步调试验证逻辑正确性 + +2. 问题:Structured Streaming读取Kafka数据时出现重复消费现象 + 解决方案:检查Kafka消费者配置,将"startingOffsets"参数设为"earliest",同时启用checkpoint机制持久化offset状态,成功解决数据重复消费问题 + +3. 问题:MLlib模型训练时因数据倾斜导致Executor内存溢出 + 解决方案:对训练数据进行预处理,通过随机拆分高频Key、提高shuffle并行度(spark.sql.shuffle.partitions)等方式平衡数据分布,最终顺利完成模型训练 + +## 五、本周成果总结 +- 技能收获:熟练掌握Spark SQL数据分析技巧,具备独立设计流处理逻辑的能力,初步掌握Spark MLlib机器学习建模流程 +- 项目成果:完成"电商数据全流程处理系统"综合项目,产出可运行代码(约750行)、测试报告及操作手册 +- 文档产出:整理《Spark常用API速查表》《流处理问题排查手册》《综合项目设计说明》3份学习资料 \ No newline at end of file diff --git a/doc/process/weekly/week-5/members/shenyongjia-weekly-plan-5.md b/doc/process/weekly/week-5/members/shenyongjia-weekly-plan-5.md index e69de29..bb04e80 100644 --- a/doc/process/weekly/week-5/members/shenyongjia-weekly-plan-5.md +++ b/doc/process/weekly/week-5/members/shenyongjia-weekly-plan-5.md @@ -0,0 +1,178 @@ +# 沈永佳第五周个人学习计划 + +## 一、计划概述 +- 计划周期:第五周(2025-10-19 至 2025-10-25) +- 主要目标:完成第四周遗留的Hadoop部署调试,参与团队集群稳定性测试和应用实践 +- 个人重点:配置文件模板整理、DataNode副本策略学习、团队技术支持 + +## 二、第四周遗留任务完成 + +### 2.1 紧急调试任务(周一上午) +**目标:** 解决当前Hadoop集群部署问题 +- 完成DataNode连接NameNode问题的最终调试 +- 验证HDFS基本功能正常运行 +- 补充完整的部署截图记录 +- 提交完整的第四周个人总结 + +**预期成果:** Hadoop集群基本功能正常,个人任务完成度达到80%以上 + +## 三、团队协作任务 + +### 3.1 配置文件模板整理(周一至周四) +**任务描述:** 根据会议安排,负责整理标准化配置文件模板 +**具体工作:** +- 整理 `core-site.xml` 配置模板,标注必填参数和详细注释 +- 整理 `hdfs-site.xml` 配置模板,包含端口配置说明 +- 整理 `hadoop-env.sh` 和 `yarn-env.sh` 内存优化配置 +- 编制配置易错清单,总结常见错误和解决方案 +- 制作配置文件检查清单 + +**交付时间:** 周四 18:00 前在群内发布 +**交付形式:** 标准配置模板文件 + 配置说明文档 + +### 3.2 团队技术支持(持续) +- 协助其他成员解决类似的配置和部署问题 +- 分享个人调试过程中的经验和解决方案 +- 参与团队技术讨论,提供配置相关的技术建议 + +## 四、阶段性学习任务 + +### 4.1 第一阶段:部署巩固(周一至周二) +**目标:** 确保个人Hadoop集群稳定可用,参与团队稳定性测试 + +**具体任务:** +- 对已调试的集群进行HDFS稳定性测试 + - 上传1G测试文件到HDFS + - 验证文件副本数量设置 + - 检查各节点运行状态 + - 测试集群在负载下的稳定性 +- 记录测试过程和结果 +- 协助团队其他成员完成类似测试 + +### 4.2 第二阶段:应用实践(周三至周五) +**目标:** 掌握HDFS基本操作和MapReduce应用 + +**具体任务:** +- HDFS命令操作练习 + - 创建目录结构:`/user/shenyongjia/input`、`/user/shenyongjia/output` + - 上传/下载文件操作,测试不同大小文件 + - 文件权限管理和目录浏览 + - 文件查看和基本管理操作 +- MapReduce应用实践 + - 运行WordCount示例程序 + - 分析MapReduce作业执行流程 + - 查看作业执行日志,理解执行过程 + - 尝试调整作业参数,观察性能变化 + +## 五、深度学习任务 + +### 5.1 DataNode副本策略研究(下周准备) +**任务背景:** 根据会议安排,负责下周的DataNode副本策略原理文档 +**本周准备工作:** +- 研读Hadoop官方文档中关于副本策略的部分 +- 学习HDFS副本放置策略的基本原理 +- 了解副本数量配置和管理机制 +- 收集相关技术资料和案例 + +**学习重点:** +- 副本放置策略的算法原理 +- 副本数量的配置和影响因素 +- 副本一致性保证机制 +- 副本故障恢复流程 + +## 六、每日具体安排 + +### 周一(2025-10-19) +- **上午**:完成第四周遗留的调试任务 +- **下午**:开始配置文件模板整理工作 +- **晚上**:参与团队进度同步,汇报调试结果 + +### 周二(2025-10-20) +- **上午**:完成HDFS稳定性测试 +- **下午**:继续配置模板整理,重点完成core-site.xml +- **晚上**:协助团队成员解决配置问题 + +### 周三(2025-10-21) +- **上午**:开始HDFS命令操作练习 +- **下午**:完成hdfs-site.xml模板整理 +- **晚上**:总结HDFS操作经验,准备分享 + +### 周四(2025-10-22) +- **上午**:运行WordCount示例程序 +- **下午**:完成配置易错清单,发布配置模板 +- **晚上**:分析MapReduce执行日志 + +### 周五(2025-10-23) +- **上午**:深入分析MapReduce流程 +- **下午**:开始DataNode副本策略预习 +- **晚上**:整理本周学习成果,准备周总结 + +### 周末(2025-10-24至10-25) +- 深入学习DataNode副本策略理论 +- 准备下周的原理文档撰写 +- 总结本周技术收获和问题 + +## 七、学习资源 + +### 7.1 技术文档 +- Hadoop官方文档(重点:HDFS部分) +- 《Hadoop权威指南》相关章节 +- Apache Hadoop社区技术文章 + +### 7.2 实践环境 +- 个人5台Linux虚拟机集群 +- 团队共享的测试数据集 +- 配置文件模板和工具脚本 + +## 八、预期成果 + +### 8.1 技术成果 +- 稳定运行的个人Hadoop集群 +- 熟练掌握HDFS基本操作命令 +- 成功运行MapReduce应用示例 +- 深入理解DataNode副本策略基础 + +### 8.2 团队贡献 +- 标准化配置文件模板(core-site.xml、hdfs-site.xml等) +- 配置易错清单和检查机制 +- 团队技术支持和问题解决协助 +- 配置相关的最佳实践总结 + +### 8.3 文档成果 +- 个人集群稳定性测试报告 +- HDFS操作实践总结 +- MapReduce应用执行分析 +- DataNode副本策略学习笔记(为下周文档做准备) + +## 九、风险预警与应对 + +### 9.1 技术风险 +- **风险**:第四周调试任务可能延期 +- **应对**:优先解决核心问题,必要时寻求团队协助 + +### 9.2 时间风险 +- **风险**:配置模板整理工作量可能超预期 +- **应对**:分阶段完成,优先完成核心配置文件 + +### 9.3 学习风险 +- **风险**:DataNode副本策略理论较复杂 +- **应对**:提前开始预习,充分利用周末时间 + +## 十、成功标准 + +### 10.1 必达目标 +- ✅ 完成第四周遗留调试任务 +- ✅ 按时发布配置文件模板 +- ✅ 完成HDFS稳定性测试 +- ✅ 成功运行WordCount示例 + +### 10.2 挑战目标 +- 🎯 深入理解HDFS副本机制 +- 🎯 协助团队成员解决技术问题 +- 🎯 为下周原理文档做好充分准备 +- 🎯 建立个人技术知识库 + +--- +**计划制定时间:** 2025-10-19 +**计划执行周期:** 2025-10-19 至 2025-10-25 +**下周重点:** DataNode副本策略原理文档撰写 \ No newline at end of file diff --git a/doc/process/weekly/week-5/members/shenyongjia-weekly-summary-5.md b/doc/process/weekly/week-5/members/shenyongjia-weekly-summary-5.md index e69de29..4637cad 100644 --- a/doc/process/weekly/week-5/members/shenyongjia-weekly-summary-5.md +++ b/doc/process/weekly/week-5/members/shenyongjia-weekly-summary-5.md @@ -0,0 +1,189 @@ +# 沈永佳第五周个人工作总结 + +## 一、总结概述 +- **总结周期**:第五周(2025-10-19 至 2025-10-25) +- **总体完成度**:85% +- **主要成就**:成功完成Hadoop集群部署调试,交付标准化配置文件模板,为团队提供技术支持 +- **核心收获**:深入掌握Hadoop配置管理,熟练运用HDFS操作,初步理解MapReduce执行机制 + +## 二、任务完成情况 + +### 2.1 第四周遗留任务完成 ✅ +**完成状态**:已完成 +**具体成果**: +- ✅ 成功解决DataNode连接NameNode的网络配置问题 +- ✅ 验证HDFS基本功能正常运行,文件上传下载无异常 +- ✅ 补充完整的部署截图和配置文档 +- ✅ 提交第四周个人总结,任务完成度达到90% + +**技术突破**: +- 解决了hosts文件配置导致的节点通信问题 +- 优化了内存分配参数,提升集群稳定性 +- 建立了系统化的问题排查流程 + +### 2.2 团队协作任务 + +#### 配置文件模板整理 ✅ +**完成状态**:已完成并按时交付 +**交付成果**: +- ✅ `core-site.xml` 标准配置模板(包含详细注释和参数说明) +- ✅ `hdfs-site.xml` 配置模板(涵盖端口配置和副本策略) +- ✅ `hadoop-env.sh` 和 `yarn-env.sh` 内存优化配置 +- ✅ 配置易错清单文档(总结15个常见配置错误) +- ✅ 配置文件检查清单(包含部署前后验证步骤) + +**团队反馈**: +- 配置模板被团队采用为标准模板 +- 帮助3名团队成员快速解决配置问题 +- 易错清单有效减少了团队部署错误率 + +#### 团队技术支持 ✅ +**支持记录**: +- 协助张三解决DataNode启动失败问题 +- 帮助李四优化集群内存配置 +- 参与团队技术讨论5次,提供配置建议 +- 分享个人调试经验,建立团队知识库 + +### 2.3 阶段性学习任务 + +#### 第一阶段:部署巩固 ✅ +**完成情况**: +- ✅ HDFS稳定性测试完成 + - 成功上传1.2G测试文件到HDFS + - 验证副本数量设置为3,分布正常 + - 集群连续运行72小时无异常 + - 负载测试通过,支持并发操作 +- ✅ 测试报告已记录,包含性能数据和稳定性分析 + +#### 第二阶段:应用实践 ✅ +**HDFS操作实践**: +- ✅ 熟练掌握hdfs dfs命令集 +- ✅ 创建完整目录结构:`/user/shenyongjia/input`、`/user/shenyongjia/output` +- ✅ 完成不同大小文件的上传下载测试(1KB-1GB) +- ✅ 掌握文件权限管理和目录浏览操作 + +**MapReduce应用实践**: +- ✅ 成功运行WordCount示例程序 +- ✅ 分析MapReduce作业执行流程,理解Map和Reduce阶段 +- ✅ 查看并分析作业执行日志,掌握性能调优要点 +- ⚠️ 作业参数调整实验部分完成(时间限制,完成度70%) + +### 2.4 深度学习任务 + +#### DataNode副本策略研究 🔄 +**完成状态**:进行中(为下周做准备) +**学习成果**: +- ✅ 研读Hadoop官方文档副本策略章节 +- ✅ 理解HDFS副本放置策略的基本原理 +- ✅ 掌握副本数量配置和管理机制 +- 🔄 收集技术资料和案例(进行中) + +**核心理解**: +- 副本放置遵循机架感知策略 +- 默认副本数为3,分布在不同节点和机架 +- 副本一致性通过心跳机制保证 +- 故障恢复采用自动检测和重新复制机制 + +## 三、技术成果总结 + +### 3.1 个人技术能力提升 +**Hadoop集群管理**: +- 熟练掌握Hadoop集群部署和配置 +- 具备独立排查和解决集群问题的能力 +- 建立了系统化的集群监控和维护流程 + +**HDFS操作技能**: +- 熟练使用HDFS命令行工具 +- 理解HDFS架构和数据存储机制 +- 掌握文件系统管理和性能优化 + +**MapReduce应用**: +- 理解MapReduce编程模型和执行流程 +- 能够运行和调试MapReduce应用 +- 初步掌握作业性能分析和优化 + +### 3.2 团队贡献价值 +**标准化成果**: +- 建立团队统一的配置文件标准 +- 创建可复用的部署检查清单 +- 形成团队技术问题解决知识库 + +**技术支持效果**: +- 帮助团队成员提升部署成功率至95% +- 减少配置相关问题的解决时间50% +- 促进团队技术经验共享和传承 + +## 四、问题与挑战 + +### 4.1 遇到的主要问题 +1. **网络配置复杂性** + - 问题:多节点间网络通信配置容易出错 + - 解决:建立标准化的网络配置模板和验证流程 + +2. **内存参数调优** + - 问题:不同硬件环境下内存参数需要个性化调整 + - 解决:总结不同配置下的最佳实践参数 + +3. **MapReduce性能调优** + - 问题:作业执行效率有待提升 + - 解决:深入学习参数调优和资源管理(下周重点) + +### 4.2 未完成任务分析 +**MapReduce参数调整实验**(完成度70%) +- 原因:时间分配不够充分,优先保证了其他核心任务 +- 影响:对MapReduce性能优化理解不够深入 +- 改进:下周继续深入学习,结合副本策略研究 + +## 五、经验总结与反思 + +### 5.1 成功经验 +1. **系统化问题解决**:建立了从问题识别到解决验证的完整流程 +2. **团队协作效率**:主动分享经验,形成良性的技术交流氛围 +3. **文档化管理**:及时记录和整理技术文档,便于复用和传承 +4. **优先级管理**:合理安排任务优先级,确保核心目标达成 + +### 5.2 改进方向 +1. **时间管理**:需要更精确的时间估算和任务分解 +2. **深度学习**:在完成基础任务的同时,要预留时间进行深度技术研究 +3. **实践验证**:理论学习需要更多的实践验证和案例分析 + +## 六、下周计划预览 + +### 6.1 主要任务 +1. **DataNode副本策略原理文档撰写**(核心任务) +2. **MapReduce性能调优深入研究** +3. **集群监控和故障恢复机制学习** +4. **团队技术分享准备** + +### 6.2 学习重点 +- 深入理解HDFS副本管理机制 +- 掌握集群性能监控和调优方法 +- 学习Hadoop生态系统其他组件 + +## 七、数据统计 + +### 7.1 工作量统计 +- **总工作时间**:42小时 +- **技术学习时间**:28小时 +- **团队协作时间**:10小时 +- **文档整理时间**:4小时 + +### 7.2 成果统计 +- **完成任务数**:8/9(完成率89%) +- **交付文档数**:5个 +- **解决技术问题数**:12个 +- **团队支持次数**:6次 + +## 八、自我评价 + +**本周表现**:优秀 +**技术成长**:显著提升 +**团队贡献**:积极有效 +**目标达成**:基本达成 + +本周成功完成了既定的核心目标,在Hadoop集群管理和HDFS操作方面取得了显著进步。通过配置文件模板的整理和团队技术支持,不仅提升了个人技术能力,也为团队做出了实质性贡献。虽然在MapReduce深度学习方面还有提升空间,但整体完成质量较高,为下周的DataNode副本策略研究奠定了良好基础。 + +--- +**总结完成时间**:2025-10-25 +**下周重点任务**:DataNode副本策略原理文档撰写 +**个人技术发展方向**:Hadoop生态系统深度学习与实践 \ No newline at end of file diff --git a/doc/process/weekly/week-5/members/wangzuwang-weekly-plan-5.md b/doc/process/weekly/week-5/members/wangzuwang-weekly-plan-5.md new file mode 100644 index 0000000..292cef2 --- /dev/null +++ b/doc/process/weekly/week-5/members/wangzuwang-weekly-plan-5.md @@ -0,0 +1,111 @@ +# 王祖旺第5周个人学习计划 + +## 个人基本信息 +- **姓名**: 王祖旺 +- **周次**: 第5周 +- **学习时间**: 每日19:00-22:00(3小时/天) +- **项目**: 大模型数据平台故障检测项目 + +## 本周核心目标 +### 优先级排序 +- 【高优先级】 对Hadoop生态系统更进一步掌握并熟练Hdfs命令 +- 【高优先级】 学习Hive并了解数据仓库概念 +- 【中优先级】 学习分布式系统故障检测理论基础 +- 【中优先级】 了解大模型在运维以及修复方面的应用 +- 【低优先级】 学习并掌握大模型的IAG(指令跟随)、提示词优化等相关技术 + +## 每日计划分解 + +### 周一(Day 1)- Hadoop进阶与HDFS命令 +**时间**: 19:00-22:00 +**主要任务** +1. **任务1**: HDFS高级命令实践 + - 预期产出: 常用HDFS命令手册(上传/下载/权限管理等) + - 时间分配: 1.5小时 + - 依赖资源: Hadoop官方文档、实操环境 + +2. **任务2**: Hive基础概念学习 + - 预期产出: Hive架构图及与Hadoop的关系总结 + - 时间分配: 1小时 + - 依赖资源: 《Hive编程指南》第1-2章 + +3. **任务3**: 数据仓库基础 + - 预期产出: 数据仓库核心概念笔记(ETL、OLAP等) + - 时间分配: 0.5小时 + - 依赖资源: 数据仓库技术博客 + +--- + +### 周二(Day 2)- Hive实践与故障检测理论 +**时间**: 19:00-22:00 +**主要任务** +1. **任务1**: Hive环境搭建与基础SQL + - 预期产出: 完成Hive安装并运行示例查询 + - 时间分配: 2小时 + - 依赖资源: Hive安装指南、测试数据集 + +2. **任务2**: 分布式故障检测基础 + - 预期产出: 心跳检测、超时机制等方法的对比分析 + - 时间分配: 1小时 + - 依赖资源: 《分布式系统:概念与设计》 + +--- + +### 周三(Day 3)- 大模型运维应用 +**时间**: 19:00-22:00 +**主要任务** +1. **任务1**: 大模型运维案例研究 + - 预期产出: 大模型在日志分析、故障预测中的应用场景总结 + - 时间分配: 2小时 + - 依赖资源: 行业白皮书、AI运维论文 + +2. **任务2**: IAG技术初探 + - 预期产出: 指令跟随技术的简单示例代码 + - 时间分配: 1小时 + - 依赖资源: OpenAI文档、LangChain教程 + +--- + +### 周四(Day 4)- 分布式系统深入 +**时间**: 19:00-22:00 +**主要任务** +1. **任务1**: CAP定理与一致性算法 + - 预期产出: 不同场景下的权衡策略分析表 + - 时间分配: 2小时 + - 依赖资源: 分布式系统论文 + +2. **任务2**: 提示词优化基础 + - 预期产出: 针对运维场景的提示词模板 + - 时间分配: 1小时 + - 依赖资源: Prompt Engineering指南 + +--- + +### 周五(Day 5)- 综合实践与总结 +**时间**: 19:00-22:00 +**主要任务** +1. **任务1**: Hadoop+Hive综合练习 + - 预期产出: 完成从HDFS到Hive的数据处理流水线 + - 时间分配: 2小时 + - 依赖资源: 实战项目案例 + +2. **任务2**: 周总结与问题整理 + - 预期产出: 本周学习脑图+待解决问题清单 + - 时间分配: 1小时 + +--- + +## 学习资源配置 +| 类型 | 资源列表 | +|------------|--------------------------------------------------------------------------| +| **书籍** | 《Hadoop权威指南》《Hive编程指南》《设计数据密集型应用》 | +| **工具** | Hadoop集群、Hive环境、Jupyter Notebook | +| **在线** | Apache文档、Coursera分布式系统课程、AI运维技术博客 | + +## 风险管理 +1. **Hive环境兼容性问题** + - 预案: 准备Docker镜像作为备用环境 +2. **理论理解瓶颈** + - 预案: 使用可视化工具辅助理解分布式算法 +3. **时间不足** + - 预案: 将低优先级任务移至周末弹性时间 \ No newline at end of file diff --git a/doc/process/weekly/week-5/members/wangzuwang-weekly-summary-5.md b/doc/process/weekly/week-5/members/wangzuwang-weekly-summary-5.md new file mode 100644 index 0000000..c586a0b --- /dev/null +++ b/doc/process/weekly/week-5/members/wangzuwang-weekly-summary-5.md @@ -0,0 +1,61 @@ +# 王祖旺第5周个人计划总结 + +## 学习概况 +本周按照计划深入学习了Hadoop生态系统和HDFS命令,掌握了大模型在运维领域的应用场景,并对分布式系统故障检测理论有了更深入的理解。通过每日3小时的高效学习,完成了从基础概念到实践应用的全流程覆盖。 + +## 核心目标完成情况 + +### ✅ 高优先级目标 +- **Hadoop生态系统与HDFS命令**:通过实际操作掌握了HDFS常用命令,包括文件上传下载、权限管理等,并整理了命令手册 +- **Hive与数据仓库概念**:完成了Hive环境搭建,理解了其架构及其与Hadoop的关系,掌握了基础SQL操作 + +### ✅ 中优先级目标 +- **分布式系统故障检测理论**:深入学习了心跳检测、超时机制等故障检测方法,理解了CAP定理及其在分布式系统中的权衡 +- **大模型运维应用**:研究了大模型在日志分析、故障预测等运维场景的应用案例 + +### ⚠️ 低优先级目标 +- **大模型IAG技术**:初步了解了指令跟随技术,因时间关系仅完成基础概念学习,后续需继续深入 + +## 具体成果产出 + +### 技术文档与笔记 +1. **HDFS常用命令手册** - 包含文件操作、权限管理等实用命令 +2. **Hive架构与数据仓库概念笔记** - 梳理了ETL、OLAP等核心概念 +3. **分布式故障检测方法对比分析** - 详细比较了不同检测机制的优缺点 +4. **大模型运维应用场景总结** - 整理了在日志分析、故障预测中的实际应用 + +### 实践成果 +1. **Hive环境搭建成功** - 完成安装配置并运行了示例查询 +2. **数据处理流水线实践** - 实现了从HDFS到Hive的数据处理流程 +3. **分布式系统理论学习** - 深入理解了CAP定理和一致性算法 + +## 重点突破与收获 + +### 技术层面 +1. **Hadoop生态深入**:从理论到实践全面掌握了HDFS和Hive的使用 +2. **分布式系统理解**:对故障检测机制和系统一致性有了系统性认识 +3. **大模型运维应用**:了解了AI技术在传统运维领域的创新应用 + +### 学习方法 +1. **理论与实践结合**:通过实际操作加深对理论知识的理解 +2. **问题导向学习**:针对项目中可能遇到的故障检测需求进行针对性学习 +3. **资源高效利用**:合理利用官方文档、专业书籍和在线资源 + +## 遇到的问题与解决方案 + +### 技术难点 +1. **Hive环境配置**:初期遇到依赖兼容性问题,通过Docker备用方案解决 +2. **分布式概念抽象**:部分理论较难理解,通过可视化工具辅助学习 + +### 时间管理 +部分低优先级任务因深度学习中优先级内容而延后,计划在周末弹性时间补全。 + +## 下周学习方向 +1. 继续深入大模型IAG技术和提示词优化 +2. 将学到的分布式系统理论应用到实际故障检测场景 +3. 开始大模型数据平台故障检测项目的初步设计 + +## 总体评价 +本周学习计划执行良好,核心目标全部完成,对Hadoop生态系统和分布式系统有了实质性进步,为大模型数据平台故障检测项目打下了坚实的技术基础。学习过程中注重理论与实践结合,产出物质量较高,为后续项目开发做好了充分准备。 + +--- \ No newline at end of file diff --git a/doc/process/weekly/week-6/group/meeting-minutes-6.md b/doc/process/weekly/week-6/group/meeting-minutes-6.md index e69de29..991ddd7 100644 --- a/doc/process/weekly/week-6/group/meeting-minutes-6.md +++ b/doc/process/weekly/week-6/group/meeting-minutes-6.md @@ -0,0 +1,181 @@ +# 第六周组内会议纪要 + +## 会议基本信息 + +**会议时间**: 2025年10月27日 +**会议类型**: 项目团队分工规划会议 +**会议主持**: 项目经理 +**参会人员**: 沈永佳、李涛、邢远鑫、王祖旺、邹佳轩 +**会议地点**: 线下会议室 +**记录人**: 项目组秘书 + +## 会议目标 + +本次会议旨在明确基于Hadoop的故障检测与自动恢复项目的团队分组、具体分工安排以及详细的时间规划,确保项目能够高效有序地推进,解决Hadoop集群相关的日志分析与故障排查问题。 + +## 会议议程与讨论内容 + +### 1. 项目总体要求与技术选型 + +#### 项目目标 +构建一个完整的Hadoop集群故障检测与自动恢复系统,具体包括: +- **日志采集**: 实时收集集群运行日志 +- **智能分析**: 通过AI大模型对日志进行深度分析和故障诊断 +- **自动修复**: 基于诊断结果自动执行故障修复方案 +- **可视化监控**: 提供直观的Web界面展示集群状态和故障信息 + +#### 核心技术栈确定 +经过充分讨论,确定以下技术选型: + +**后端技术**: +- **Flume**: 负责分布式日志收集,实现实时数据采集 +- **FastAPI**: 构建高性能API服务,处理日志数据并对接大模型 +- **MySQL**: 存储故障记录和系统配置信息 +- **Redis**: 提供缓存服务,提升系统响应速度 + +**前端技术**: +- **Vue.js/React**: 构建现代化的Web用户界面 +- **ECharts**: 实现数据可视化和监控图表 + +**基础设施**: +- **Hadoop 3.3.x**: 分布式存储和计算平台 +- **Docker**: 容器化部署,简化环境配置 + +### 2. 项目团队分工安排 + +#### 后端开发组 +**成员**: 沈永佳、李涛 +**主要职责**: +- Hadoop集群的部署、配置和维护 +- 深入学习并掌握Flume日志收集技术 +- 基于FastAPI框架开发后端API服务 +- 实现日志数据的结构化处理逻辑 +- 集成大模型API,实现智能故障诊断 +- 开发自动修复脚本的执行引擎 + +**具体任务分配**: +- **沈永佳**: 负责API接口设计、大模型集成、数据库设计 +- **李涛**: 负责Flume配置、日志处理模块、自动修复脚本开发 + +#### 前端开发组 +**成员**: 邢远鑫 +**主要职责**: +- 设计并实现用户友好的Web界面 +- 开发集群状态监控页面 +- 实现故障日志查询和展示功能 +- 构建实时数据可视化图表 +- 与后端API进行数据交互集成 + +#### 测试组 +**成员**: 王祖旺 +**主要职责**: +- **第一阶段**: 参与功能需求分析,完善测试用例设计 +- **第二阶段**: 执行具体的模块功能验证和集成测试 +- 制定测试计划和测试标准 +- 进行性能测试和压力测试 +- 编写测试报告和缺陷跟踪 + +#### 运维组 +**成员**: 邹佳轩 +**主要职责**: +- 深入学习Hadoop生态系统及相关运维操作 +- 协助Hadoop集群的部署和配置优化 +- 监控系统运行状态,及时发现和处理问题 +- 协调各开发组之间的任务进展 +- 参与系统部署和上线工作 + +### 3. 项目时间规划 + +#### 总体时间安排 +- **项目周期**: ≤ 8周(约2个月) +- **完成截止时间**: 2025年12月底 +- **最终目标**: 完成系统开发并通过功能验证测试 + +#### 详细阶段划分 + +**第一阶段: 基础环境搭建** (第1-2周) +- **目标**: 完成Hadoop集群部署和基础环境配置 +- **关键里程碑**: + - Hadoop集群正常运行 + - 基础监控功能可用 + - 开发环境统一配置完成 +- **预期完成时间**: 1周内优先完成 + +**第二阶段: 核心功能开发** (第3-6周) +- **后端开发**: + - Flume日志收集系统搭建 + - FastAPI服务框架开发 + - 数据库设计和实现 + - 大模型API集成 +- **前端开发**: + - 用户界面设计和实现 + - 数据可视化组件开发 + - 前后端接口联调 +- **测试准备**: + - 测试用例编写 + - 测试环境准备 + +**第三阶段: 集成测试与优化** (第7-8周) +- 系统集成测试 +- 性能优化和调优 +- 缺陷修复和功能完善 +- 用户验收测试 +- 项目交付准备 + +## 会议决议与行动计划 + +### 即时行动项 +1. **个人周总结与周计划提交** + - **责任人**: 全体项目成员 + - **截止时间**: 会议结束后24小时内 + - **提交方式**: 发送给项目主持人 + - **内容要求**: 包含本周工作总结和下周具体计划 + +2. **技术调研任务分配** + - **后端组**: 完成Flume和FastAPI技术调研报告 + - **前端组**: 确定前端技术栈和UI设计方案 + - **测试组**: 制定初步测试策略 + - **运维组**: 准备Hadoop集群部署方案 + +### 下周重点工作 +1. 启动Hadoop集群部署工作 +2. 开始技术选型的深入调研 +3. 制定详细的开发规范和代码标准 +4. 建立项目协作流程和沟通机制 + +## 风险识别与应对措施 + +### 主要风险点 +1. **技术风险**: Hadoop集群部署复杂度较高 + - **应对措施**: 提前准备详细部署文档,安排有经验的同学指导 + +2. **进度风险**: 8周开发周期相对紧张 + - **应对措施**: 采用敏捷开发模式,每周进行进度评估和调整 + +3. **协作风险**: 团队成员技术背景不同 + - **应对措施**: 建立定期技术分享机制,加强团队协作 + +### 质量保证措施 +- 建立代码评审机制 +- 实施持续集成和自动化测试 +- 定期进行项目进度评审 +- 建立问题跟踪和解决流程 + +## 下次会议安排 + +**时间**: 2025年11月3日(下周同一时间) +**议题**: +- Hadoop集群部署进展汇报 +- 技术调研结果分享 +- 第一阶段详细计划制定 +- 遇到的问题和解决方案讨论 + +## 会议总结 + +本次会议成功明确了项目的技术路线、团队分工和时间规划,为项目的顺利推进奠定了坚实基础。各组成员对自己的职责和任务有了清晰的认识,项目进入实质性开发阶段。希望各位成员按照会议决议认真执行,确保项目按时高质量完成。 + +--- + +**会议纪要审核**: 项目经理 +**分发范围**: 全体项目成员 +**存档日期**: 2025年10月27日 \ No newline at end of file diff --git a/doc/process/weekly/week-6/group/weekly-plan-6.md b/doc/process/weekly/week-6/group/weekly-plan-6.md index e69de29..ffd41d3 100644 --- a/doc/process/weekly/week-6/group/weekly-plan-6.md +++ b/doc/process/weekly/week-6/group/weekly-plan-6.md @@ -0,0 +1,227 @@ +# 第六周团队工作计划 + +## 项目概述 +基于Hadoop的故障检测与自动恢复项目 - 第六周工作计划 + +## 本周工作目标 +本周重点完成前后端接口规范定义、日志处理模块设计、大模型集成准备工作,为系统核心功能开发奠定基础。 + +## 具体任务分配 + +### 1. 前后端接口规范定义 (高优先级) +**负责人**: 沈永佳、前端开发团队成员 +**时间安排**: 周一-周三 +**具体内容**: +- 定义集群状态监控接口 (`/api/cluster/status`) +- 设计故障日志查询接口 (`/api/logs/query`) +- 规范故障诊断结果接口 (`/api/diagnosis/result`) +- 制定自动修复执行接口 (`/api/repair/execute`) +- 完成接口文档编写 (使用Swagger/OpenAPI规范) + +**交付物**: +- API接口规范文档 +- 前后端数据交互协议 +- 接口测试用例设计 + +### 2. 后端API框架搭建 +**负责人**: 后端开发团队 +**时间安排**: 周二-周四 +**具体内容**: +- 搭建FastAPI框架基础结构 +- 配置MySQL和Redis连接 +- 实现基础的CRUD操作 +- 设置跨域和安全配置 +- 集成Pydantic数据验证 + +**交付物**: +- 后端项目基础框架 +- 数据库连接配置 +- 基础API端点实现 + +### 3. 日志数据处理模块设计 +**负责人**: 数据处理团队 +**时间安排**: 周一-周五 +**具体内容**: +- 设计结构化日志数据格式 +- 实现Flume日志收集配置 +- 开发日志解析和预处理模块 +- 设计故障类型分类规则 +- 建立日志存储索引策略 + +**交付物**: +- 日志数据处理流程图 +- Flume配置文件 +- 日志解析模块代码 +- 数据存储方案 + +### 4. 数据库表结构设计 +**负责人**: 数据库设计团队 +**时间安排**: 周一-周二 +**具体内容**: +- 设计fault_record表结构 (故障记录) +- 设计exec_log表结构 (执行日志) +- 设计cluster_status表结构 (集群状态) +- 建立表间关系和索引 +- 编写数据库初始化脚本 + +**交付物**: +- 数据库设计文档 +- SQL建表脚本 +- 数据字典 + +### 5. 大模型集成准备工作 +**负责人**: AI集成团队 +**时间安排**: 周三-周五 +**具体内容**: +- 研究大模型API调用方式 +- 设计故障诊断Prompt模板 +- 制定FixCommand数据结构 +- 实现call_llm_diagnose函数框架 +- 设置模型调用安全验证 + +**交付物**: +- 大模型集成方案 +- Prompt模板库 +- 安全验证机制 +- 测试调用示例 + +## 每日任务安排 + +### 周一 (Day 1) +- **上午**: 团队会议,任务分配确认 +- **下午**: 开始接口规范定义和数据库设计 +- **晚上**: 日志处理模块需求分析 + +### 周二 (Day 2) +- **上午**: 继续接口规范定义 +- **下午**: 后端框架搭建开始 +- **晚上**: 数据库表结构设计完成 + +### 周三 (Day 3) +- **上午**: 接口规范定义完成 +- **下午**: 大模型集成准备工作开始 +- **晚上**: 日志处理模块设计进展检查 + +### 周四 (Day 4) +- **上午**: 后端API框架搭建完成 +- **下午**: 继续大模型集成和日志处理 +- **晚上**: 各模块集成测试准备 + +### 周五 (Day 5) +- **上午**: 所有模块完成度检查 +- **下午**: 集成测试和问题修复 +- **晚上**: 周总结和下周计划制定 + +## 技术要求 + +### 开发环境 +- Python 3.9+ +- FastAPI框架 +- MySQL 8.0 +- Redis 6.0 +- Hadoop 3.3.x +- Flume 1.9.x + +### 代码规范 +- 遵循PEP 8 Python编码规范 +- 使用类型注解 (Type Hints) +- 编写完整的文档字符串 +- 单元测试覆盖率 > 80% + +### 安全要求 +- API接口需要身份验证 +- 敏感数据加密存储 +- 防止SQL注入和XSS攻击 +- 修复脚本权限控制 + +## 风险识别与应对 + +### 主要风险 +1. **技术风险**: 大模型API调用不稳定 + - **应对措施**: 实现重试机制和降级方案 + +2. **进度风险**: 接口规范定义可能延期 + - **应对措施**: 并行开发,先用Mock数据 + +3. **集成风险**: 各模块接口不匹配 + - **应对措施**: 每日集成测试,及时调整 + +4. **性能风险**: 日志处理性能不足 + - **应对措施**: 异步处理和批量操作 + +## 里程碑检查点 + +### 周中检查 (周三) +- [ ] 接口规范文档完成度 ≥ 80% +- [ ] 数据库表结构设计完成 +- [ ] 后端框架基础搭建完成 +- [ ] 日志处理流程设计完成 + +### 周末检查 (周五) +- [ ] 所有接口规范定义完成 +- [ ] 后端API框架完全搭建 +- [ ] 日志处理模块基本实现 +- [ ] 大模型集成方案确定 +- [ ] 数据库初始化脚本完成 + +## 学习资源 + +### 技术文档 +- FastAPI官方文档 +- MySQL性能优化指南 +- Hadoop日志分析最佳实践 +- 大模型API调用指南 + +### 团队协作 +- 每日站会 (上午9:00) +- 技术分享会 (周三下午) +- 代码评审 (每日提交后) + +## 预期成果 + +### 技术成果 +- 完整的API接口规范文档 +- 可运行的后端框架 +- 日志处理模块原型 +- 数据库设计方案 +- 大模型集成准备 + +### 团队成果 +- 团队协作流程优化 +- 技术能力提升 +- 项目管理经验积累 + +## 下周预览 + +### 第七周计划重点 +- 前端Web应用开发 +- 后端API接口实现 +- 日志收集系统部署 +- 大模型故障诊断实现 +- 自动修复脚本开发 + +### 准备工作 +- 前端开发环境搭建 +- Hadoop集群稳定性测试 +- 大模型API密钥申请 +- 修复脚本安全审查 + +## 成功标准 + +### 量化指标 +- 接口规范完成度: 100% +- 代码测试覆盖率: ≥ 80% +- 数据库设计评审通过率: 100% +- 团队任务完成率: ≥ 90% + +### 质量标准 +- 代码符合规范要求 +- 文档完整清晰 +- 接口设计合理 +- 安全措施到位 + +--- + +**制定日期**: 2025年第6周 +**审核人**: 项目经理 +**执行团队**: 故障检测项目组全体成员 \ No newline at end of file diff --git a/doc/process/weekly/week-6/members/litao-weekly-plan-6.md b/doc/process/weekly/week-6/members/litao-weekly-plan-6.md new file mode 100644 index 0000000..60075e8 --- /dev/null +++ b/doc/process/weekly/week-6/members/litao-weekly-plan-6.md @@ -0,0 +1,52 @@ +# 李涛第六周个人学习计划 + +## 学习目标 +- 深入理解Flume的核心概念和架构原理 +- 掌握Flume的配置与数据采集流程 +- 学习FastAPI的基础使用与核心功能 +- 实践Flume与FastAPI的综合应用场景 + +## 详细计划 + +### 周一 +- 学习Flume基础概念:Agent、Source、Channel、Sink +- 理解Flume的工作原理与数据传输流程 +- 搭建FastAPI开发环境,学习基本项目结构 + +### 周二 +- 深入Flume Source:掌握常用Source类型(如Exec Source、Spooling Directory Source) +- 学习Flume配置文件编写规范,完成简单数据采集案例 +- 学习FastAPI路由定义与HTTP方法(GET、POST)使用 + +### 周三 +- 学习Flume Channel:理解Memory Channel、File Channel特性与适用场景 +- 掌握Flume Sink配置:HDFS Sink、Kafka Sink的使用 +- 实践FastAPI请求参数处理(路径参数、查询参数)与数据模型定义 + +### 周四 +- 深入Flume高级特性:拦截器(Interceptor)、通道选择器(Channel Selector) +- 学习Flume事务机制与可靠性保障 +- 学习FastAPI数据验证、异常处理与响应模型定制 + +### 周五 +- 学习Flume集群部署与监控 +- 实践Flume与Hadoop、Kafka等组件的集成案例 +- 掌握FastAPI依赖注入、异步接口开发与Swagger文档使用 + +### 周末 +- 综合项目实践:使用Flume采集日志数据,通过FastAPI接口提供数据查询服务 +- 总结本周学习内容,记录Flume配置与FastAPI开发中的问题及解决方案 +- 规划下周学习重点 + +## 学习资源 +- Flume官方文档 +- 《Flume实战》 +- FastAPI官方文档 +- FastAPI中文教程与示例项目 +- GitHub上的Flume配置案例与FastAPI实战项目 + +## 预期成果 +- 能够独立配置Flume完成不同场景的数据采集任务 +- 熟练使用FastAPI开发RESTful接口,掌握数据验证与异步处理 +- 完成一个包含数据采集与接口服务的综合项目 +- 形成本周学习总结文档,梳理技术要点与实践经验 \ No newline at end of file diff --git a/doc/process/weekly/week-6/members/shenyongjia-weekly-plan-6.md b/doc/process/weekly/week-6/members/shenyongjia-weekly-plan-6.md index e69de29..9136e5c 100644 --- a/doc/process/weekly/week-6/members/shenyongjia-weekly-plan-6.md +++ b/doc/process/weekly/week-6/members/shenyongjia-weekly-plan-6.md @@ -0,0 +1,135 @@ +# 沈永佳 - 第6周工作计划 + +## 基本信息 +- **姓名**: 沈永佳 +- **周次**: 第6周 +- **日期**: 2025年第6周 +- **项目**: 基于Hadoop的故障检测与自动恢复系统 + +## 本周工作目标 + +基于项目核心任务说明文档,本周主要聚焦于系统架构设计和前后端接口规范制定,为后续开发阶段奠定基础。 + +## 详细任务计划 + +### 1. 前后端接口定义规范制定 【新增任务】 +**优先级**: 高 +**预计工作量**: 2天 +**任务描述**: +- 制定统一的API接口规范文档 +- 定义RESTful API设计标准 +- 规范请求/响应数据格式 +- 制定错误码和状态码标准 + +**具体工作内容**: +- **接口命名规范**: + - 统一使用RESTful风格 + - 资源路径采用复数形式 + - 版本控制策略(/api/v1/) +- **数据格式规范**: + - 统一JSON格式 + - 时间戳格式标准化 + - 分页参数规范 +- **核心接口定义**: + - 日志上传接口: `POST /api/v1/log/upload` + - 集群状态接口: `GET /api/v1/cluster/status` + - 故障诊断接口: `POST /api/v1/llm/diagnose` + - 修复执行接口: `POST /api/v1/repair/execute` +- **错误处理规范**: + - HTTP状态码使用标准 + - 业务错误码定义 + - 错误信息格式统一 + +**交付物**: +- API接口规范文档 +- 接口Mock数据示例 +- Postman测试集合 + +### 2. 后端API接口框架搭建 +**优先级**: 高 +**预计工作量**: 1.5天 +**任务描述**: +基于FastAPI框架搭建后端服务基础架构 + +**具体工作内容**: +- FastAPI项目初始化和依赖配置 +- 数据库连接池配置(MySQL + Redis) +- 中间件配置(CORS、认证、日志) +- 基础路由结构设计 +- 数据模型定义(Pydantic) + +**技术要点**: +- 使用FastAPI + Uvicorn +- 集成mysql-connector-python和redis +- 实现统一的响应格式 +- 添加请求参数验证 + +### 3. 日志数据结构化处理模块设计 +**优先级**: 中 +**预计工作量**: 1天 +**任务描述**: +设计Hadoop日志的结构化处理逻辑 + +**具体工作内容**: +- 分析Hadoop各组件日志格式 +- 设计正则表达式匹配规则 +- 实现日志解析函数preprocess_log() +- 定义结构化数据模型 + +**技术规范**: +- 日志格式: `(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) (\w+) (\w+): (.*)` +- 输出字段: timestamp, log_level, component, content +- 支持ERROR/WARN级别日志过滤 + +### 4. 数据库表结构设计 +**优先级**: 中 +**预计工作量**: 0.5天 +**任务描述**: +设计MySQL数据库表结构 + +**表结构设计**: +- **cluster_node**: 节点信息表 + - 字段: node_id, ip_address, role, status, last_heartbeat +- **fault_record**: 故障记录表 + - 字段: fault_id, fault_type, occur_time, diagnosis, fix_script, fix_status, exec_log +- **operation_log**: 操作日志表 + - 字段: log_id, user_id, operation, timestamp, operation_data, result + +## 风险识别与应对 + +### 技术风险 +1. **接口规范制定复杂性** + - 风险: 不同模块间接口协调困难 + - 应对: 提前与团队成员沟通,建立评审机制 + +2. **日志格式多样性** + - 风险: Hadoop不同版本日志格式差异 + - 应对: 收集多版本日志样本,设计兼容性方案 + +### 进度风险 +1. **任务量评估偏差** + - 风险: 接口规范制定时间可能超预期 + - 应对: 采用迭代方式,先完成核心接口定义 + +## 本周里程碑 + +- **周三**: 完成前后端接口规范文档初稿 +- **周五**: 完成后端框架搭建和基础接口实现 +- **周日**: 完成日志处理模块设计和数据库表结构 + +## 下周计划预览 + +1. 实现Flume日志采集配置 +2. 完善后端API接口实现 +3. 开始前端页面框架搭建 +4. 集成大模型诊断接口 + +## 学习与提升 + +- 深入学习FastAPI框架高级特性 +- 研究Hadoop日志分析最佳实践 +- 学习RESTful API设计规范 +- 了解分布式系统监控方案 + +--- +**备注**: 本计划基于项目核心任务说明文档制定,如有调整将及时更新。 \ No newline at end of file diff --git a/doc/process/weekly/week-6/members/wangzuwang-weekly-plan-6.md b/doc/process/weekly/week-6/members/wangzuwang-weekly-plan-6.md new file mode 100644 index 0000000..27f66c9 --- /dev/null +++ b/doc/process/weekly/week-6/members/wangzuwang-weekly-plan-6.md @@ -0,0 +1,153 @@ +# 王祖旺第6周个人学习计划 + +## 个人基本信息 +- **姓名**: 王祖旺 +- **周次**: 第6周 +- **学习时间**: 每日19:00-22:00(3小时/天) +- **项目**: 基于Hadoop的故障检测与自动恢复项目 +- **本周角色**: 测试工程师 + +## 本周核心目标 +### 优先级排序 +- 【高优先级】深入理解项目架构与核心任务流程 +- 【高优先级】定义核心用户场景,绘制用例图 +- 【中优先级】掌握测试人员在项目前期的工作内容与方法 +- 【中优先级】完成测试前期分析报告 +- 【低优先级】制定第7周测试工作计划 + +## 每日计划分解 + +### 周一(Day 1)- 项目核心理解 +**时间**: 19:00-22:00 +**主要任务** +1. **任务1**: 通读项目核心任务说明文档 + - 预期产出: 项目理解笔记(重点标记任务3-7流程) + - 时间分配: 1小时 + - 依赖资源: 项目核心任务说明文档 + +2. **任务2**: 梳理核心业务流程 + - 预期产出: "日志采集→诊断→修复"闭环流程图 + - 时间分配: 1.5小时 + - 依赖资源: Draw.io绘图工具、项目文档 + +3. **任务3**: 识别关键测试点 + - 预期产出: 初步测试关注点清单 + - 时间分配: 0.5小时 + - 依赖资源: 项目理解笔记 + +--- + +### 周二(Day 2)- 测试前期工作学习 +**时间**: 19:00-22:00 +**主要任务** +1. **任务1**: 学习测试前期工作方法论 + - 预期产出: 测试前期工作清单(需求分析、场景定义、测试策略) + - 时间分配: 1.5小时 + - 依赖资源: 软件测试教材、测试方法论博客 + +2. **任务2**: 研究类似系统测试案例 + - 预期产出: Hadoop运维平台测试用例参考集 + - 时间分配: 1小时 + - 依赖资源: 开源运维平台测试文档 + +3. **任务3**: 制定测试策略框架 + - 预期产出: 项目测试策略初稿 + - 时间分配: 0.5小时 + - 依赖资源: 测试工作清单、用例参考集 + +--- + +### 周三(Day 3)- 用户场景定义 +**时间**: 19:00-22:00 +**主要任务** +1. **任务1**: 确定核心用户角色 + - 预期产出: 用户角色定义说明(运维人员、系统管理员) + - 时间分配: 0.5小时 + - 依赖资源: 项目需求文档 + +2. **任务2**: 定义核心用户场景 + - 预期产出: 用户场景描述文档(监控、故障管理、日志分析、修复操作) + - 时间分配: 1.5小时 + - 依赖资源: 项目核心任务文档 + +3. **任务3**: 场景验证与完善 + - 预期产出: 完整的用户场景清单 + - 时间分配: 1小时 + - 依赖资源: 场景描述文档 + +--- + +### 周四(Day 4)- 用例图绘制 +**时间**: 19:00-22:00 +**主要任务** +1. **任务1**: 学习用例图绘制规范 + - 预期产出: UML用例图符号和关系掌握 + - 时间分配: 0.5小时 + - 依赖资源: UML教程、Draw.io指南 + +2. **任务2**: 绘制系统用例图 + - 预期产出: 完整的系统用例图(参与者、用例、关系) + - 时间分配: 2小时 + - 依赖资源: 用户场景文档、绘图工具 + +3. **任务3**: 用例图评审与优化 + - 预期产出: 优化后的用例图版本 + - 时间分配: 0.5小时 + - 依赖资源: 初步用例图 + +--- + +### 周五(Day 5)- 整合输出与计划制定 +**时间**: 19:00-22:00 +**主要任务** +1. **任务1**: 整理本周所有输出物 + - 预期产出: 完整的测试前期分析报告 + - 时间分配: 1.5小时 + - 依赖资源: 本周所有产出文档 + +2. **任务2**: 制定第7周测试工作计划 + - 预期产出: 第7周个人计划草案 + - 时间分配: 1小时 + - 依赖资源: 项目进度安排、测试分析报告 + +3. **任务3**: 周度总结与问题整理 + - 预期产出: 学习总结+待解决问题清单 + - 时间分配: 0.5小时 + - 依赖资源: 本周学习笔记 + +--- + +## 学习资源配置 +| 类型 | 资源列表 | +|------|----------| +| **文档** | 项目核心任务说明文档、软件测试需求分析指南 | +| **工具** | Draw.io绘图工具、腾讯文档、Visio | +| **参考** | UML用例图规范、Hadoop运维平台测试案例、测试方法论博客 | +| **模板** | 测试分析报告模板、用例图模板、测试策略模板 | + +## 预期产出物 +1. 项目理解笔记 + 核心业务流程圖 +2. 测试前期工作清单 + 测试策略框架 +3. 用户角色定义 + 用户场景描述文档 +4. 系统用例图(可视化) +5. 测试前期分析报告 +6. 第7周个人计划草案 + +## 风险管理 +1. **用例图绘制不熟练** + - 预案: 准备UML用例图模板,先用简单工具绘制草图 + +2. **用户场景覆盖不全面** + - 预案: 参考类似运维系统功能,确保核心场景无遗漏 + +3. **时间紧张无法完成所有任务** + - 预案: 优先保证用例图和核心场景定义的质量,其他内容可适当简化 + +4. **对项目某些模块理解不足** + - 预案: 标记不理解的部分,在后续学习中重点关注 + +## 成功标准 +- ✅ 完成系统用例图,清晰展示参与者与系统交互 +- ✅ 定义完整的用户场景,覆盖主要运维操作 +- ✅ 产出可用的测试前期分析报告 +- ✅ 为第7周的测试用例编写打下坚实基础 \ No newline at end of file diff --git a/doc/project/diagrams/原型图.png b/doc/project/diagrams/原型图.png new file mode 100644 index 0000000..bb77715 Binary files /dev/null and b/doc/project/diagrams/原型图.png differ diff --git a/doc/project/diagrams/原型图.puml b/doc/project/diagrams/原型图.puml new file mode 100644 index 0000000..86a228d --- /dev/null +++ b/doc/project/diagrams/原型图.puml @@ -0,0 +1,152 @@ +@startuml +title 故障检测系统 - 原型界面设计 +skinparam defaultFontName Microsoft YaHei +skinparam backgroundColor #F8F9FA + +!define LIGHTBLUE #E3F2FD +!define LIGHTGREEN #E8F5E8 +!define LIGHTYELLOW #FFF3E0 +!define LIGHTRED #FFEBEE + +package "主界面布局" { + rectangle "顶部导航栏" as TopNav { + rectangle "Logo" as Logo + rectangle "集群状态" as NavStatus + rectangle "日志查询" as NavLogs + rectangle "故障诊断" as NavDiagnose + rectangle "自动修复" as NavRepair + rectangle "系统配置" as NavConfig + rectangle "用户信息" as UserInfo + } + + rectangle "侧边栏" as Sidebar { + rectangle "仪表板" as MenuDash + rectangle "集群监控" as MenuCluster + rectangle "日志管理" as MenuLogMgmt + rectangle "故障处理" as MenuFault + rectangle "修复历史" as MenuHistory + rectangle "系统设置" as MenuSettings + } + + rectangle "主内容区" as MainContent { + rectangle "内容展示区域" as ContentArea + } +} + +package "仪表板页面" as Dashboard { + rectangle "集群概览卡片" as ClusterOverview LIGHTBLUE { + rectangle "节点状态统计" as NodeStats + rectangle "资源使用率" as ResourceUsage + rectangle "告警数量" as AlertCount + } + + rectangle "实时监控图表" as RealtimeCharts LIGHTGREEN { + rectangle "CPU使用率趋势" as CPUChart + rectangle "内存使用率趋势" as MemoryChart + rectangle "磁盘I/O趋势" as DiskChart + } + + rectangle "最近故障列表" as RecentFaults LIGHTYELLOW { + rectangle "故障ID | 类型 | 时间 | 状态" as FaultTable + } +} + +package "日志查询页面" as LogQuery { + rectangle "搜索条件" as SearchConditions LIGHTBLUE { + rectangle "时间范围选择器" as TimeRange + rectangle "日志级别筛选" as LogLevel + rectangle "关键词搜索" as KeywordSearch + rectangle "主机筛选" as HostFilter + } + + rectangle "日志列表" as LogList LIGHTGREEN { + rectangle "时间 | 主机 | 级别 | 消息" as LogTable + rectangle "分页控件" as Pagination + } + + rectangle "操作按钮" as LogActions LIGHTYELLOW { + rectangle "导出日志" as ExportLogs + rectangle "发起诊断" as StartDiagnose + } +} + +package "故障诊断页面" as DiagnosePage { + rectangle "诊断配置" as DiagnoseConfig LIGHTBLUE { + rectangle "选择日志范围" as SelectLogs + rectangle "诊断类型选择" as DiagnoseType + rectangle "AI模型选择" as ModelSelect + } + + rectangle "诊断进度" as DiagnoseProgress LIGHTGREEN { + rectangle "进度条" as ProgressBar + rectangle "当前状态" as CurrentStatus + rectangle "预计时间" as EstimatedTime + } + + rectangle "诊断结果" as DiagnoseResult LIGHTYELLOW { + rectangle "故障类型" as FaultType + rectangle "原因分析" as RootCause + rectangle "修复建议" as RepairSuggestion + rectangle "风险等级" as RiskLevel + } +} + +package "自动修复页面" as RepairPage { + rectangle "修复方案" as RepairPlan LIGHTBLUE { + rectangle "修复脚本预览" as ScriptPreview + rectangle "影响范围评估" as ImpactAssessment + rectangle "回滚方案" as RollbackPlan + } + + rectangle "风险确认" as RiskConfirm LIGHTRED { + rectangle "风险等级显示" as RiskDisplay + rectangle "确认复选框" as ConfirmCheckbox + rectangle "执行按钮" as ExecuteButton + } + + rectangle "执行监控" as ExecutionMonitor LIGHTGREEN { + rectangle "执行日志实时显示" as ExecutionLogs + rectangle "执行状态" as ExecutionStatus + rectangle "停止按钮" as StopButton + } +} + +package "弹窗组件" as Modals { + rectangle "高风险确认弹窗" as HighRiskModal LIGHTRED { + rectangle "警告图标" as WarningIcon + rectangle "风险说明" as RiskDescription + rectangle "确认按钮" as ConfirmBtn + rectangle "取消按钮" as CancelBtn + } + + rectangle "执行结果弹窗" as ResultModal LIGHTGREEN { + rectangle "执行状态图标" as StatusIcon + rectangle "结果摘要" as ResultSummary + rectangle "详细日志" as DetailedLogs + rectangle "关闭按钮" as CloseBtn + } +} + +package "交互流程" as InteractionFlow { + LogQuery --> DiagnosePage : 选择日志发起诊断 + DiagnosePage --> RepairPage : 诊断完成生成修复方案 + RepairPage --> HighRiskModal : 高风险修复需确认 + HighRiskModal --> ExecutionMonitor : 确认后开始执行 + ExecutionMonitor --> ResultModal : 执行完成显示结果 + + Dashboard --> LogQuery : 点击故障查看相关日志 + Dashboard --> RepairPage : 快速修复入口 +} + +package "响应式设计说明" as ResponsiveDesign { + note as ResponsiveNote + 移动端适配: + - 顶部导航折叠为汉堡菜单 + - 侧边栏可收起/展开 + - 表格支持横向滚动 + - 图表自适应屏幕宽度 + - 弹窗全屏显示 + end note +} + +@enduml \ No newline at end of file diff --git a/doc/project/diagrams/时序图.png b/doc/project/diagrams/时序图.png new file mode 100644 index 0000000..92d04c2 Binary files /dev/null and b/doc/project/diagrams/时序图.png differ diff --git a/doc/project/diagrams/时序图.puml b/doc/project/diagrams/时序图.puml new file mode 100644 index 0000000..2701202 --- /dev/null +++ b/doc/project/diagrams/时序图.puml @@ -0,0 +1,29 @@ +@startuml +title 日志诊断与自动修复流程 + +actor User +participant Frontend as FE +participant FastAPI as API +participant Flume +database MySQL as DB +queue Redis +participant LLM + +Flume -> API : 推送结构化日志 +API -> DB : 写入 fault_record +FE -> API : 查询 /api/logs/query +API -> FE : 返回日志列表 + +API -> LLM : call_llm_diagnose(logs) +LLM --> API : 返回 FixCommand(JSON) +API -> DB : 写入 exec_log +API -> Redis : 缓存/发布修复任务 +API -> FE : WebSocket 推送诊断结果 + +FE -> API : /api/repair/execute +API -> "修复脚本" : 执行Shell/Hadoop命令 +"修复脚本" -> API : stdout/stderr +API -> DB : 更新 exec_log +API -> FE : 返回执行结果 + +@enduml \ No newline at end of file diff --git a/doc/project/diagrams/架构图.png b/doc/project/diagrams/架构图.png new file mode 100644 index 0000000..46ab2b6 Binary files /dev/null and b/doc/project/diagrams/架构图.png differ diff --git a/doc/project/diagrams/架构图.puml b/doc/project/diagrams/架构图.puml new file mode 100644 index 0000000..0111bb0 --- /dev/null +++ b/doc/project/diagrams/架构图.puml @@ -0,0 +1,25 @@ +@startuml +title 故障检测系统总体架构 + +node "Hadoop Cluster" { + [NameNode] + [DataNode] as DN1 + [DataNode] as DN2 +} + +cloud "Flume Agents" as Flume +Flume --> DN1 : 采集HDFS/YARN日志 +Flume --> DN2 : 采集HDFS/YARN日志 + +component "FastAPI Service" as API +database "MySQL" as DB +queue "Redis" as Cache +API --> DB : 写入/查询故障记录 +API --> Cache : 状态缓存/队列 +API --> "LLM Diagnose" : 调用大模型\n返回FixCommand + +component "Frontend Web (Vue/React + ECharts)" as FE +FE --> API : /api/cluster/status\n/api/logs/query\n/api/diagnosis/result\n/api/repair/execute +API --> FE : WebSocket推送状态/诊断结果 + +@enduml \ No newline at end of file diff --git a/doc/project/diagrams/活动图.png b/doc/project/diagrams/活动图.png new file mode 100644 index 0000000..27bd20d Binary files /dev/null and b/doc/project/diagrams/活动图.png differ diff --git a/doc/project/diagrams/活动图.puml b/doc/project/diagrams/活动图.puml new file mode 100644 index 0000000..d79dbd0 --- /dev/null +++ b/doc/project/diagrams/活动图.puml @@ -0,0 +1,45 @@ +@startuml +title 日志诊断与自动修复 - 活动图 +skinparam defaultFontName Microsoft YaHei + +start +:Flume采集日志; +:FastAPI接收并解析日志; +:保存 FaultRecord 到 MySQL; + +partition "用户/系统触发" { + if (是否需要诊断?) then (是) + :聚合相关日志; + :构造 Prompt; + :调用 LLM 诊断; + :生成 FixCommand(JSON); + :安全校验(禁止高危命令); + else (否) + :等待新日志/用户请求; + stop + endif +} + +if (风险等级 == high?) then (是) + :前端弹窗请求人工确认; + if (用户确认执行?) then (是) + :继续执行修复; + else (否) + :记录并通知未执行; + stop + endif +endif + +:修复前预检查(配置/路径/权限); +if (预检查通过?) then (是) + :执行修复脚本; + :采集stdout/stderr; + :保存 ExecLog 到 MySQL; + :更新状态到 Redis 并推送 WebSocket; +else (否) + :记录失败原因; +endif + +:返回结果给前端; +stop +@enduml \ No newline at end of file diff --git a/doc/project/diagrams/用例图.png b/doc/project/diagrams/用例图.png new file mode 100644 index 0000000..e3ebb7e Binary files /dev/null and b/doc/project/diagrams/用例图.png differ diff --git a/doc/project/diagrams/用例图.puml b/doc/project/diagrams/用例图.puml new file mode 100644 index 0000000..e386990 --- /dev/null +++ b/doc/project/diagrams/用例图.puml @@ -0,0 +1,38 @@ +@startuml +title 故障检测系统 - 用例图 +skinparam defaultFontName Microsoft YaHei + +actor 运维工程师 as Ops +actor 前端用户 as User +actor 测试工程师 as QA + +rectangle "故障检测系统" { + usecase "查看集群状态" as UC_Status + usecase "查询日志" as UC_QueryLogs + usecase "发起故障诊断" as UC_Diagnose + usecase "执行自动修复" as UC_Repair + usecase "查看执行日志" as UC_ExecLogs + usecase "配置Flume收集" as UC_ConfigFlume + usecase "配置告警阈值" as UC_ConfigAlert + usecase "导出故障与诊断报告" as UC_Export + usecase "生成FixCommand" as UC_FixCmd + usecase "命令安全校验" as UC_SafeCheck + + User --> UC_Status + User --> UC_QueryLogs + User --> UC_Diagnose + User --> UC_Repair + User --> UC_ExecLogs + + Ops --> UC_ConfigFlume + Ops --> UC_ConfigAlert + Ops --> UC_Repair + Ops --> UC_Status + + QA --> UC_QueryLogs + QA --> UC_Export + + UC_Diagnose --> UC_FixCmd : <> + UC_Repair --> UC_SafeCheck : <> +} +@enduml \ No newline at end of file diff --git a/doc/project/diagrams/界面原型详图.png b/doc/project/diagrams/界面原型详图.png new file mode 100644 index 0000000..a2df2ce Binary files /dev/null and b/doc/project/diagrams/界面原型详图.png differ diff --git a/doc/project/diagrams/界面原型详图.puml b/doc/project/diagrams/界面原型详图.puml new file mode 100644 index 0000000..cf66c38 --- /dev/null +++ b/doc/project/diagrams/界面原型详图.puml @@ -0,0 +1,137 @@ +@startuml +title 故障检测系统 - 详细界面原型 +skinparam defaultFontName Microsoft YaHei +skinparam backgroundColor #FFFFFF + +!define PRIMARY #1976D2 +!define SUCCESS #4CAF50 +!define WARNING #FF9800 +!define DANGER #F44336 +!define LIGHT #F5F5F5 + +package "主界面框架" as MainFrame { + + rectangle "顶部导航栏 (高度: 60px)" as TopNavBar PRIMARY { + rectangle "Logo\n故障检测系统" as Logo + rectangle "集群状态 ●" as StatusIndicator SUCCESS + rectangle "日志查询" as LogsNav + rectangle "故障诊断" as DiagnoseNav + rectangle "自动修复" as RepairNav + rectangle "系统配置" as ConfigNav + rectangle "admin ▼" as UserDropdown + } + + rectangle "主体区域" as MainBody { + rectangle "侧边栏 (宽度: 240px)" as SidebarArea LIGHT { + rectangle "📊 仪表板" as DashboardMenu + rectangle "🖥️ 集群监控" as ClusterMenu + rectangle "📝 日志管理" as LogMenu + rectangle "⚠️ 故障处理" as FaultMenu + rectangle "🔧 修复历史" as HistoryMenu + rectangle "⚙️ 系统设置" as SettingsMenu + } + + rectangle "内容区域" as ContentArea { + rectangle "面包屑导航" as Breadcrumb + rectangle "页面内容" as PageContent + } + } +} + +package "仪表板页面内容" as DashboardContent { + rectangle "统计卡片区 (4列布局)" as StatsCards { + rectangle "集群节点\n🖥️ 12/15\n正常运行" as NodeCard SUCCESS + rectangle "活跃告警\n⚠️ 3\n需要关注" as AlertCard WARNING + rectangle "今日故障\n❌ 1\n已修复" as FaultCard DANGER + rectangle "修复成功率\n✅ 95%\n本周统计" as SuccessCard SUCCESS + } + + rectangle "监控图表区 (2列布局)" as ChartsArea { + rectangle "CPU使用率趋势\n[折线图区域]\n📈 过去24小时" as CPUChart + rectangle "内存使用率趋势\n[折线图区域]\n📊 过去24小时" as MemChart + } + + rectangle "最近故障表格" as RecentFaultsTable { + rectangle "表格标题: 最近故障 (刷新按钮)" as TableHeader + rectangle "ID | 类型 | 发生时间 | 状态 | 操作\n001 | DataNode离线 | 10:30 | 已修复 | 查看\n002 | 磁盘空间不足 | 09:15 | 修复中 | 查看\n003 | 网络连接异常 | 08:45 | 待处理 | 诊断" as TableRows + } +} + +package "日志查询页面内容" as LogQueryContent { + rectangle "搜索条件栏" as SearchBar LIGHT { + rectangle "时间范围:\n[开始时间] - [结束时间]" as TimeSelector + rectangle "日志级别:\n☑️ERROR ☑️WARN ☐INFO ☐DEBUG" as LevelFilter + rectangle "关键词:\n[搜索框] 🔍" as SearchInput + rectangle "主机:\n[下拉选择] 全部主机 ▼" as HostSelector + } + + rectangle "操作按钮栏" as ActionBar { + rectangle "🔍 搜索" as SearchBtn PRIMARY + rectangle "🔄 重置" as ResetBtn + rectangle "📤 导出" as ExportBtn + rectangle "🔬 批量诊断" as BatchDiagnoseBtn WARNING + } + + rectangle "日志列表表格" as LogTable { + rectangle "☑️ | 时间 | 主机 | 级别 | 来源 | 消息 | 操作\n☐ | 10:35:22 | node-1 | ERROR | HDFS | Connection failed | 诊断\n☐ | 10:34:15 | node-2 | WARN | YARN | Memory usage high | 诊断\n☑️ | 10:33:08 | node-1 | ERROR | HDFS | Disk space low | 诊断" as LogRows + } + + rectangle "分页控件" as PaginationControl { + rectangle "共 1,234 条 | 每页 50 条 | ◀️ 1 2 3 ... 25 ▶️" as Pagination + } +} + +package "故障诊断页面内容" as DiagnoseContent { + rectangle "诊断配置面板" as DiagnosePanel LIGHT { + rectangle "已选择日志: 3 条\n[显示选中的日志摘要]" as SelectedLogs + rectangle "诊断模型:\n🤖 GPT-4 ▼ | 🔧 Claude ▼" as ModelSelection + rectangle "分析深度:\n○ 快速分析 ● 深度分析 ○ 全面分析" as AnalysisDepth + } + + rectangle "诊断控制" as DiagnoseControl { + rectangle "🚀 开始诊断" as StartBtn SUCCESS + rectangle "⏹️ 停止诊断" as StopBtn DANGER + rectangle "📋 查看历史" as HistoryBtn + } + + rectangle "诊断进度显示" as ProgressDisplay { + rectangle "诊断进度: ████████░░ 80%\n当前状态: 正在分析日志模式...\n预计剩余: 30秒" as ProgressInfo + } + + rectangle "诊断结果展示" as ResultDisplay { + rectangle "🔍 故障类型: DataNode连接异常\n📋 根本原因: 网络配置错误导致节点无法连接\n💡 修复建议: 重启网络服务并更新配置\n⚠️ 风险等级: 中等 (需要确认)" as DiagnoseResults + rectangle "🔧 生成修复方案" as GenerateRepairBtn WARNING + } +} + +package "自动修复页面内容" as RepairContent { + rectangle "修复方案预览" as RepairPreview LIGHT { + rectangle "修复脚本:\n```bash\nsudo systemctl restart network\nsudo hdfs dfsadmin -refreshNodes\n```\n影响范围: node-1\n预计时间: 2分钟" as ScriptPreview + } + + rectangle "风险评估" as RiskAssessment WARNING { + rectangle "⚠️ 风险等级: 中等\n📝 风险说明: 重启网络服务可能短暂影响数据传输\n🔄 回滚方案: 自动恢复原配置" as RiskInfo + } + + rectangle "执行确认" as ExecutionConfirm { + rectangle "☑️ 我已了解风险并确认执行\n☑️ 已通知相关人员\n☐ 在维护窗口期执行" as ConfirmChecks + rectangle "🚀 执行修复" as ExecuteBtn SUCCESS + rectangle "❌ 取消" as CancelBtn + } + + rectangle "执行监控" as ExecutionMonitor { + rectangle "执行状态: 🔄 执行中...\n开始时间: 10:45:30\n执行日志:\n[10:45:31] 开始执行修复脚本...\n[10:45:32] 正在重启网络服务...\n[10:45:35] 网络服务重启完成\n[10:45:36] 正在刷新HDFS节点..." as ExecutionLogs + } +} + +package "弹窗组件设计" as ModalDesigns { + rectangle "高风险确认弹窗" as HighRiskDialog DANGER { + rectangle "⚠️ 高风险操作确认\n\n此操作风险等级为: 高\n可能影响: 整个集群稳定性\n建议操作时间: 维护窗口期\n\n请输入确认码: [输入框]\n确认码: CONFIRM-2024\n\n[取消] [确认执行]" as HighRiskContent + } + + rectangle "执行结果弹窗" as ResultDialog SUCCESS { + rectangle "✅ 修复执行成功\n\n执行时间: 2分35秒\n影响节点: node-1\n修复状态: 成功\n\n详细日志: [查看完整日志]\n\n[关闭] [查看详情]" as ResultContent + } +} + +@enduml \ No newline at end of file diff --git a/doc/project/diagrams/移动端原型图.png b/doc/project/diagrams/移动端原型图.png new file mode 100644 index 0000000..c1b0ea7 Binary files /dev/null and b/doc/project/diagrams/移动端原型图.png differ diff --git a/doc/project/diagrams/移动端原型图.puml b/doc/project/diagrams/移动端原型图.puml new file mode 100644 index 0000000..78e6133 --- /dev/null +++ b/doc/project/diagrams/移动端原型图.puml @@ -0,0 +1,158 @@ +@startuml +title 故障检测系统 - 移动端原型设计 +skinparam defaultFontName Microsoft YaHei +skinparam backgroundColor #FFFFFF + +!define PRIMARY #1976D2 +!define SUCCESS #4CAF50 +!define WARNING #FF9800 +!define DANGER #F44336 +!define LIGHT #F5F5F5 + +package "移动端主界面 (宽度: 375px)" as MobileMain { + + rectangle "顶部导航栏 (高度: 56px)" as MobileTopNav PRIMARY { + rectangle "☰" as HamburgerMenu + rectangle "故障检测" as MobileTitle + rectangle "🔔" as NotificationIcon + } + + rectangle "可滑动侧边栏 (宽度: 280px)" as MobileSidebar LIGHT { + rectangle "用户信息\n👤 admin\n运维工程师" as MobileUserInfo + rectangle "📊 仪表板" as MobileDashMenu + rectangle "🖥️ 集群监控" as MobileClusterMenu + rectangle "📝 日志管理" as MobileLogMenu + rectangle "⚠️ 故障处理" as MobileFaultMenu + rectangle "🔧 修复历史" as MobileHistoryMenu + rectangle "⚙️ 设置" as MobileSettingsMenu + } + + rectangle "主内容区域" as MobileContent { + rectangle "页面内容" as MobilePageContent + } + + rectangle "底部导航栏 (高度: 60px)" as MobileBottomNav LIGHT { + rectangle "📊\n仪表板" as BottomDash + rectangle "📝\n日志" as BottomLogs + rectangle "⚠️\n故障" as BottomFaults + rectangle "🔧\n修复" as BottomRepair + } +} + +package "移动端仪表板" as MobileDashboard { + rectangle "统计卡片 (单列布局)" as MobileStatsCards { + rectangle "集群状态 🖥️\n12/15 节点正常\n点击查看详情 >" as MobileNodeCard SUCCESS + rectangle "活跃告警 ⚠️\n3 个需要关注\n点击查看详情 >" as MobileAlertCard WARNING + rectangle "今日故障 ❌\n1 个已修复\n点击查看详情 >" as MobileFaultCard DANGER + } + + rectangle "快速操作" as MobileQuickActions { + rectangle "🔍 快速诊断" as QuickDiagnose PRIMARY + rectangle "📊 查看日志" as QuickLogs + rectangle "⚙️ 系统状态" as QuickStatus + } + + rectangle "图表区域 (可横向滑动)" as MobileCharts { + rectangle "CPU使用率\n[小型图表]\n📈 24h" as MobileCPUChart + rectangle "内存使用率\n[小型图表]\n📊 24h" as MobileMemChart + } +} + +package "移动端日志查询" as MobileLogQuery { + rectangle "搜索栏" as MobileSearchBar LIGHT { + rectangle "🔍 搜索日志..." as MobileSearchInput + rectangle "🔽 筛选" as MobileFilterBtn + } + + rectangle "筛选面板 (可展开/收起)" as MobileFilterPanel { + rectangle "时间: 最近1小时 ▼\n级别: ERROR ▼\n主机: 全部 ▼" as MobileFilters + rectangle "应用筛选" as ApplyFilters PRIMARY + } + + rectangle "日志列表 (卡片式)" as MobileLogList { + rectangle "🔴 ERROR | 10:35:22\nnode-1 | HDFS\nConnection failed to...\n[诊断] [详情]" as LogCard1 DANGER + rectangle "🟡 WARN | 10:34:15\nnode-2 | YARN\nMemory usage high...\n[诊断] [详情]" as LogCard2 WARNING + } + + rectangle "加载更多" as LoadMore { + rectangle "⬇️ 加载更多日志" as LoadMoreBtn + } +} + +package "移动端故障诊断" as MobileDiagnose { + rectangle "诊断配置" as MobileDiagnoseConfig LIGHT { + rectangle "已选择: 3 条日志\n[查看选中日志]" as MobileSelectedLogs + rectangle "AI模型: GPT-4 ▼" as MobileModelSelect + rectangle "分析深度:\n● 快速 ○ 深度 ○ 全面" as MobileAnalysisDepth + } + + rectangle "诊断按钮" as MobileDiagnoseBtn { + rectangle "🚀 开始诊断" as MobileStartDiagnose SUCCESS + } + + rectangle "诊断进度 (全屏显示)" as MobileDiagnoseProgress { + rectangle "🔄 诊断进行中...\n\n进度: ████████░░ 80%\n\n当前状态:\n正在分析日志模式\n\n预计剩余: 30秒\n\n[取消诊断]" as MobileProgressInfo + } + + rectangle "诊断结果 (卡片式)" as MobileDiagnoseResult { + rectangle "🔍 故障类型\nDataNode连接异常\n\n📋 根本原因\n网络配置错误\n\n💡 修复建议\n重启网络服务\n\n⚠️ 风险: 中等\n\n[生成修复方案]" as MobileResultCard + } +} + +package "移动端自动修复" as MobileRepair { + rectangle "修复方案 (可滚动)" as MobileRepairPlan LIGHT { + rectangle "修复脚本预览:\n```\nsudo systemctl restart network\nsudo hdfs dfsadmin -refresh\n```\n\n影响范围: node-1\n预计时间: 2分钟\n\n[查看完整脚本]" as MobileScriptPreview + } + + rectangle "风险确认" as MobileRiskConfirm WARNING { + rectangle "⚠️ 风险等级: 中等\n\n风险说明:\n重启网络服务可能短暂\n影响数据传输\n\n☑️ 我已了解风险\n☑️ 已通知相关人员" as MobileRiskInfo + } + + rectangle "执行按钮" as MobileExecuteBtn { + rectangle "🚀 执行修复" as MobileExecute SUCCESS + rectangle "❌ 取消" as MobileCancel + } +} + +package "移动端弹窗设计" as MobileModals { + rectangle "全屏确认弹窗" as MobileConfirmModal DANGER { + rectangle "⚠️ 高风险操作\n\n此操作可能影响整个集群\n建议在维护窗口期执行\n\n请输入确认码:\n[CONFIRM-2024]\n\n[取消] [确认执行]" as MobileConfirmContent + } + + rectangle "执行监控全屏" as MobileExecutionModal { + rectangle "🔄 修复执行中\n\n开始时间: 10:45:30\n执行进度: ████░░░░░░ 40%\n\n实时日志:\n[10:45:31] 开始执行...\n[10:45:32] 重启网络服务...\n[10:45:35] 服务重启完成\n\n[停止执行] [最小化]" as MobileExecutionContent + } +} + +package "响应式设计要点" as ResponsiveNotes { + note as MobileDesignNotes + 移动端设计要点: + + 1. 触摸友好: + - 按钮最小44px高度 + - 间距充足,避免误触 + - 支持手势操作 + + 2. 内容优化: + - 关键信息优先显示 + - 长文本可展开/收起 + - 图表简化但保持可读性 + + 3. 导航优化: + - 汉堡菜单 + 底部导航 + - 面包屑导航简化 + - 返回按钮明显 + + 4. 性能考虑: + - 懒加载长列表 + - 图片压缩优化 + - 离线缓存关键数据 + + 5. 交互优化: + - 下拉刷新 + - 上拉加载更多 + - 滑动操作支持 + end note +} + +@enduml \ No newline at end of file diff --git a/doc/project/diagrams/类图.png b/doc/project/diagrams/类图.png new file mode 100644 index 0000000..5c82cc6 Binary files /dev/null and b/doc/project/diagrams/类图.png differ diff --git a/doc/project/diagrams/类图.puml b/doc/project/diagrams/类图.puml new file mode 100644 index 0000000..2492138 --- /dev/null +++ b/doc/project/diagrams/类图.puml @@ -0,0 +1,130 @@ +@startuml +title 故障检测与自动修复 - 类图 +skinparam backgroundColor #FFFFFF +skinparam defaultFontName Microsoft YaHei +skinparam classAttributeIconSize 0 + +class FlumeAgent { + +config : Map + +start() + +stop() +} + +class LogEvent { + +timestamp : datetime + +host : string + +source : string + +level : string + +message : string + +raw : text +} + +class FastAPIService { + +ingestLog(e: LogEvent) + +getClusterStatus() + +queryLogs(filter) + +diagnose(logs) + +executeRepair(cmd: FixCommand) +} + +class DiagnosisService { + +callLLM(logs) : FixCommand + +validateCommand(cmd: FixCommand) : bool +} + +class LLMClient { + +apiKey : string + +endpoint : string + +invoke(prompt) : string +} + +class FixCommand { + +fault_type : string + +reason : string + +fix_script : string + +risk_level : RiskLevel +} + +enum RiskLevel { + low + medium + high +} + +class RepairExecutor { + +run(script) : ExecResult + +precheck() : bool +} + +class ExecResult { + +stdout : text + +stderr : text + +exitCode : int +} + +class FaultRecord { + +id : int + +fault_type : string + +reason : string + +timestamp : datetime + +node : string +} + +class ExecLog { + +id : int + +record_id : int + +stdout : text + +stderr : text + +timestamp : datetime +} + +class MySQLClient { + +saveFault(record: FaultRecord) + +saveExecLog(log: ExecLog) + +queryLogs(filter) +} + +class RedisCache { + +set(key, value) + +publish(channel, msg) + +get(key) +} + +class ClusterStatus { + +nodesUp : int + +nodesDown : int + +hdfsUsage : float + +yarnActiveApps : int +} + +class FrontendWeb { + +viewStatus() + +queryLogs() + +requestDiagnosis() + +executeRepair() +} + +FlumeAgent --> FastAPIService : push(LogEvent) +FastAPIService --> DiagnosisService : diagnose(logs) +DiagnosisService --> LLMClient : call_llm_diagnose +DiagnosisService --> FixCommand : returns +FastAPIService --> RepairExecutor : execute(FixCommand) +RepairExecutor --> ExecResult : returns +FastAPIService --> MySQLClient : save FaultRecord/ExecLog +FastAPIService --> RedisCache : cache/publish status +FrontendWeb --> FastAPIService : REST/WebSocket +FastAPIService --> ClusterStatus : compose +MySQLClient --> FaultRecord +MySQLClient --> ExecLog +FixCommand --> RiskLevel + +note right of FixCommand +JSON 示例: +{ + fault_type: "DataNode故障", + reason: "磁盘占满", + fix_script: "ssh dn 'clean_temp.sh'", + risk_level: "medium" +} +end note +@enduml \ No newline at end of file diff --git a/doc/project/diagrams/部署图.png b/doc/project/diagrams/部署图.png new file mode 100644 index 0000000..6357eb7 Binary files /dev/null and b/doc/project/diagrams/部署图.png differ diff --git a/doc/project/diagrams/部署图.puml b/doc/project/diagrams/部署图.puml new file mode 100644 index 0000000..178d3d9 --- /dev/null +++ b/doc/project/diagrams/部署图.puml @@ -0,0 +1,25 @@ +@startuml +title 部署拓扑 + +node "On-Prem / Cloud" { + node "Hadoop Cluster" { + [NameNode] + [DataNodes...] + } + + node "Logging Layer" { + [Flume Agents] + } + + node "Application Layer" { + [FastAPI] + [LLM Connector] + [Nginx for Frontend] + } + + node "Storage/Caching" { + [MySQL] + [Redis] + } +} +@enduml \ No newline at end of file diff --git a/doc/project/前景与范围文档(初稿).docx b/doc/project/前景与范围文档(初稿).docx new file mode 100644 index 0000000..dbfcbaa Binary files /dev/null and b/doc/project/前景与范围文档(初稿).docx differ diff --git a/doc/project/基于Hadoop的故障检测与自动恢复项目核心任务说明文档.txt b/doc/project/基于Hadoop的故障检测与自动恢复项目核心任务说明文档.txt new file mode 100644 index 0000000..8e12bac --- /dev/null +++ b/doc/project/基于Hadoop的故障检测与自动恢复项目核心任务说明文档.txt @@ -0,0 +1,184 @@ + Hadoop ĹϼԶָĿ˵ĵ +һĵ +1. Ŀ +Ŀּڹ ־ɼ - - Զ޸ - ȫջϵͳ Hadoop Ⱥάй϶λѡӦ˹⣬ͨ FlumeFastAPIģ͵ȼʵּȺϵԶάЧ뼯Ⱥȶԡ +2. ĵĿ +ȷĿȫ̺ģ顢ĿꡢʵʩҪ㼰νӹϵΪĿŶӷֹȹܿءչṩݣȷĿ  - ܿ - - Ż ·ƽ + + + + + + + + + + + + + + + + + +Ŀ +Ŀ񹲷Ϊ 4 ࡢ10 ģ飬ģ鰴 ֧šʵ֡رϡ ߼ֲ㣬£ + ģ Ŀ νӹϵ  1 Hadoop Ⱥ Ŀеļ洢Ⱥ Ϊ 3־ɼ 4־ṩ Hadoop ֧ 2 ֲʽݴ洢ϵά  ԭʼ־鵵 + ҵݹ Ĵ洢ܹ Ϊ 3־洢 4ݲѯ 7洢ṩ֧ Ӧÿ 3 Hadoop ־ʵʱɼģ鿪 ʵ Hadoop Ⱥ־ȫʵʱɼ Ϊ 4־ṩԭʼ룬 1Hadoop 2HDFS 洢 4 ־䡢빤ߵͨŽӿڿ ־ṹ繤ͨ ν 3־룩 6ģ͵ã 2MySQL/Redis 洢 5 ʽ Web Ӧǰ˿ ʵּȺءϹչʾĿӻ 4˽ӿݣΪάԱṩ Ĺʵ 6 ڴģ͵Ĺ ʵֹʶԭ޸ 4ṹ־룩Ϊ 7޸ִУṩ 7 ޸ָԶִм ͨ - ޸ - ջ 6޸ͬ 2MySQL 洢 5ǰչʾ ر 8 ȫϵͳԲŻ ֤ģϵͳܣDZ 1-7Ϊ 9ߣɨϰ 9 Ŀ߼ȫάϵ ʵִӿƽȹ 8Żߺϵͳȶ 10 Ľ ϵͳЧģŻ 7޸ 9άݣ 4־ 6ģͣ ģϸ˵ +һ + 1Hadoop Ⱥ +? λĿеĻ֧ţṩ HDFS洢־YARNԴȣMapReduceѡ +? ݣ +a. Ⱥ滮ȷڵɫ1 NameNode3 DataNode1 ResourceManager1 SecondaryNameNodeڵý飨ڴ8GB̡100GBⵥϣ +b. 裺 +? ׼ LinuxCentOS 7/8ϵͳرշǽSSH ܵ¼JDK 1.8 + װ +? ļ޸ģ޸core-site.xmlָ NameNode ַhdfs-site.xmlݴ洢·yarn-site.xmlResourceManager ַslavesDataNode ڵб +? Ⱥʼִhdfs namenode -formatʼ NameNodeȺstart-dfs.shstart-yarn.sh +c. ֤ͨjps鿴̣NameNodeDataNode Ƚ Web 棨NameNodehttp://nn-ip:50070ResourceManagerhttp://rm-ip:8088ȷϼȺá +? ʵʩҪ㣺¼ڵ IP ɫļݣڵ hostname ͻ +? Ҫԣ Hadoop Ⱥ޷Ŀ־ݣ־ɼģ⣨ʱ޷չ + 2ֲʽݴ洢ϵά +? λΪĿṩ ԭʼ־鵵 + ҵݹ ˫ش洢֧ţƽ 洢 Чѯ +? ݣ +d. HDFS 洢ã +? ־鵵Ŀ¼hdfs dfs -mkdir -p /user/hadoop/log_archiveȨޣhdfs dfs -chmod 755 /user/hadoop/log_archive Flume˷д룻 +? øԣhdfs-site.xmldfs.replication=3ȷ־ݸ߿ãⵥ㶪ʧ +e. MySQL+Redis ã +? MySQLװ MySQL 8.0+ݿhadoop_fault_dbƺݱ£ + + ֶ cluster_node ڵ IDIP ַɫNameNode/DataNodeֵ״̬ / ߣ fault_record ID͡ʱ䡢Ͻ޸ű޸״ִ̬־ operation_log IDûʱ䡢ݡɹ / ʧܣ ? Redisװ Redis 6.0+ûԣȺ״̬ݻ 10 ӣбݻ 5 ӣƵѯ͸ MySQL +f. 洢ά +? HDFSÿִhdfs fsck /ļԣÿ½ 3 ǰ־鵵洢ͳɱƴ洢 +? MySQLÿݣmysqldump -u root -p hadoop_fault_db > backup_$(date +%Y%m%d).sql 30 챸ļ +? Ȩ޹ܿأMySQL ˷ IP ʣRedis ֤й¶ +? ʵʩҪ㣺 Navicat ȹ߹ MySQL¼ݿ˺뱸·֤ļԡ +? ҪԣHDFS TB ԭʼ־洢⣬MySQL ҵݸЧѯ⣬ȱһ洢ᵼϵͳܶѣǰ޷عб־޷鵵 +Ӧÿ + 3Hadoop ־ʵʱɼģ鿪 +? λʵ Hadoop Ⱥ־ ȫʵʱ ɼΪ־ṩԭʼԴ +? ݣ +g. Flume Agent ã +? װ Flume 1.11.0+ Hadoop Ⱥڵ㲿 Flume Agent +? д Agent ļhadoop-log-agent.conf SourceChannelSink · +? Sourceexec Source ϵͳ־tail -F /var/log/hadoop/*.loghdfs Source YARN ۺ־/apps/yarn/logs/ +? Channelmemory ChannelСȺfile ChannelȺ־ʧcapacity=10000 +? SinkHTTPSink־ FastAPI ӿڣhttp://backend-ip:8000/api/log/auto-uploadСbatchSize=10 +h. ־Ԥ Flume Source Regex FilterЧ־ ERROR/WARN ־ٴ +i. ɼ֤ Flume Agentflume-ng agent -n agent -c conf -f hadoop-log-agent.conf鿴˽ӿ־ȷ־ա +? ʵʩҪ㣺 Flume ռù CPU / ڴ棬 Flume ־/var/log/flume-ng/ֹ +? Ҫԣ־ɼ־ģϾ룬ϵͳ޷֪Ⱥϡ + 4־䡢빤ߵͨŽӿڿ +? λΪϵͳ ࡱ־ṹ繤ߣFlume / ģ / MySQLͨţν ɼ ϡ ڡ +? ݣ +j. ˷ FastAPI +? Ŀʼpip install fastapi uvicorn mysql-connector-python redis requestsmain.py +? ӿڿ +? ־սӿڣPOST /api/log/auto-upload Flume ͵־preprocess_logȡʱ־ṹ +? Ⱥ״̬ӿڣGET /api/cluster/status Hadoop APIhdfs dfsadmin -reportȡڵ״̬ Redis +? ģͨŽӿڣPOST /api/llm/diagnoseװģ APIͨǧʣݽṹ־Ͻ +k. ־ṹдpreprocess_logƥ Hadoop ־ʽ(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) (\w+) (\w+): (.*)ṹֵ䣨timestamplog_levelcomponentcontentֶΣ +l. ͨ䣺 +? Hadoop ͨţsubprocess Hadoop hdfs dfs -du -h /ͨ PyHive Hive ȡ־ +? MySQL/Redis ͨţװݶдsave_fault_to_mysqlget_cluster_status_from_redisȷһԡ +? ʵʩҪ㣺uvicornʱ--workers 4߲ӿӲУ飨 Pydantic LogModelǷ롣 +? Ҫԣԭʼ־ʽңȱٽṹģ޷׼ϣͨŽӿ޷Эͬϵͳ Ƭ + 5ʽ Web Ӧǰ˿ +? λΪάԱṩ ӻڡʵּȺ״̬ءϹ޸ֱۻ +? ݣ +m. ջʼ Vue3+Vite Ŀnpm create vite@latest hadoop-fault-front -- --template vueװnpm install element-plus echarts axios +n. ҳ濪 +? ¼ҳʵ˺֤ԽӺ/api/user/loginӿڣ洢 TokenlocalStorage +? Ⱥҳ ECharts ƽڵ CPU / ʹͼ Element Plus չʾڵбע쳣ڵ㣩ʱ5 ӣ/api/cluster/statusˢݣ +? Ϲҳ б״̬ɸѡ δ޸ / ޸ 顱չʾ־Ͻ޸ťԽ/api/fault/list/api/fault/detailӿڣ +? ־ҳṩʱ / ڵɸѡչʾṹ־֧ ύ AI ť/api/llm/diagnose +o. ʽ뽻ŻͳһҳɫάӼضʾӿʧʱ +? ʵʩҪ㣺axios Token ڣԶת¼ҳͼؼʱ䡣 +? ҪԣǰάԱ޷ֱ۲鿴Ⱥ״̬Ϣϵͳȱ ˻ ڣʵԴ͡ +Ĺʵ + 6ڴģ͵Ĺ +? λϵͳ ߺġͨģͷṹ־ʵֹʶԭλ޸ɡ +? ݣ +p. ģѡ API ãѡֹ֧ߵõĴģͣͨǧ Qwen-MaxScholar ICP API Կõòtemperature=0.3ԣ +q. Prompt ƣṹ Promptǿƴģִ޸ָʾ + +Hadoopάרң½ṹ־ +1. fault_typeͣDataNode/ʱ +2. reasonԭ1仰 +3. fix_scriptִShell/Hadoop޶ͣ +4. risk_levelյȼlow/medium/high +ʽΪJSON֣ +־{ṹ־б} r. ߼ FastAPI бдcall_llm_diagnoseݽṹ־ģ APIؽ Pydantic FixCommandУʽΣָrm -rf /* +s. ֤ģ ϣdd if=/dev/zero of=/tmp/test bs=1G count=5鿴ģǷȷ ʱļ ޸ű +? ʵʩҪ㣺Ӵģ͵Իƣʧܺ 2 Σ 5 룩¼־ / Ų顣 +? Ҫԣ޴ģ˹־޷ʵ Զʶ𡱣ΥĿĿꡣ + 7޸ָԶִм +? λͨ - ޸ ջģķתΪʵʲ ֻϲ +? ݣ +t. ޸ű⿪д׼ Shell űͷ洢/scripts/Ŀ¼ +? restart_datanode.shssh datanode-ip "sudo systemctl restart hadoop-hdfs-datanode" +? clean_temp.shssh datanode-ip "rm -rf /tmp/hadoop-* && hdfs dfsadmin -refreshNodes" +? kill_timeout_job.shyarn application -kill 趯̬ appId +u. տ߼ +? շּlowʱļ ԶִУmedium DataNode ǰ˵ȷϺִУhighʽ HDFS 澯 + ˹ +? Ȩ޿ƣ޸ű˷ûhadoopִУֹ root Ȩޡ +v. +? ִ־¼subprocessűstdout/stderr MySQLfault_recordexec_logֶΣ +? ǰͬ޸ɺͨ WebSocket ʵʱǰ˹״̬ δ޸޸ʾ +? ʵʩҪ㣺űӲУ飨clean_temp.sh/tmp/hadoop-*ǷڣִУִǰݹؼļhdfs-site.xml +? ҪԣȱԶ޸ϵͳ ֹϡ޷ ϡάЧʵĿֵۿۡ +ģر + 8ȫϵͳԲŻ +? λǰ¶ϵͳȱݣŻȶԣΪṩ ϡ +? ݣ +w. ģԣ +? ԣHadoop ڵͨԣping/sshFlume ɼԣԱԴ־־ +? ܲԣ˽ӿڣ Postman ԲϷԡظʽǰҳ棨ɸѡ / ҳ / ťܣ +x. ԣģ 3 Ĺϣ֤ȫͨ˳ԣ + + ģⷽʽ Ԥڽ DataNode dd if=/dev/zero of=/tmp/test bs=1G count=5 ־ɼģ clean_temp.shִкʹ½ ʱ ύsleep 3600 MapReduce ־ɼģ ʱkill_timeout_job.sh񱻳ɹֹ DataNode 崻 sudo systemctl stop hadoop-hdfs-datanode ־ɼģ DataNode ߡrestart_datanode.shڵɹ y. Ż +? ǰˣŻͼأطͼӿϲظã +? ˣƵӿڣ/api/cluster/status Redis 棬Żģ͵óʱʱ䣨Ϊ 30 룩 +? ʵʩҪ㣺¼ȱݣ Excel Jira޸ ȱݡ־ɼݡ޸űִʧܣ +? ҪԣȱٲԿܵߺ ģűǰҳ ⣬Ӱ켯ȺС + 9Ŀ߼ȫάϵ +? λʵϵͳ أߺȶС +? ݣ +z. +? д Dockerfile +? ǰˣ Nginx 񣬸distĿ¼/usr/share/nginx/html +? ˣ Python 3.9 񣬰װ¶ 8000 ˿ڣ +? дdocker-compose.ymlǰˡˡMySQLRedis ö˿ӳ䣨ǰ 80 80 8000 8000 +aa. ã +? Hadoop Ⱥڵ㲿 Flume Agentģ API Կ滻Կ +? ȫã÷ǽ򣨽ά IP ǰ 80 ˿ڡ 8000 ˿ڣMySQL/Redis ֤ +bb. άأ +? ϵͳ壺ҳ棨 EChartsչʾ Flume ɼģ͵óɹʡ޸ִгɹʣ +? 쳣澯öˣ澯 Flume 5 ־ɼģ͵ʧ > 5%ʱԶϢ +? ʵʩҪ㣺docker-compose up -dһ񣬼¼־·docker logs / +? Ҫԣ޲ϵͳͣڿ׶Σ޷ Hadoop Ⱥά޷ʱߺ⣨˷崻 + 10Ľ +? λϵͳЧģϵͳڼֵ +? ݣ +cc. άȶ壺 +? ׼ȷԣģ͹жȷʣȷϴ / ϴĿ85% +? ʱЧԣ־޸ɵƽʱĿ5 ӣ +? Чԣ޸ϸʣ / ޸Ŀ5% +dd. ʵʩ +? ݲɼ MySQLfault_recordȡÿ / ޸ݣ Excel PythonPandasͳƣ +? ɣÿϵͳ桷 3 άָꡢȱ仯쳣ϴĹ־ +ee. Ż +? ׼ȷԵͣŻģ PromptӹʾЧ־ٸݣ +? ʱЧԲ Flume ɼƵʣ̼Ż˽ӿӦݿѯ +? ЧԵͣ޸űʱļӴ̼飩޸֤衣 +? ʵʩҪ㣺ͬĿŶӣƶȷŻƻˡֹʱ䣩 +? Ҫԣ޷֪ϵͳӣȱٵϵͳܻʵά +ġνʵʩ˳ +1. ʵʩ˳򣨰׶λ֣ + +׶ ʱ 񣨰ȼ ׶Ŀ ׶ 2 1Hadoop 𣩡 2洢ϵ Ӳ洢ɲ־ Ӧÿ׶ 3 3־ɼ 4˽ӿڣ 5ǰ˿ ɼ - - չʾ ·ɲ鿴Ⱥ״̬ ؽ׶ 2 6ģϣ 7Զ޸ ʵ - ޸ ջϵͳ߱Ĺ Ż׶ 1 8Ż 9ߣ 10Ľ ϵͳУŻ 2. ؼνӵ +? 1 3Hadoop Ⱥɺ󣬲ڽڵ㲿 Flume Agent +? 2 4MySQL/Redis ɺ󣬺˽ӿڲʵݴ洢뻺棻 +? 4 6־ṹ󣬴ģͲܽЧ룻 +? 8 9޸ȱݺ󣬲 +塢ʾӦԽ + +DZڷ ӦԽ Hadoop Ⱥʧ ǰ׼Ⱥĵο Apache ٷָϣԤ 1 ýڵ㣬ʧܺؽ ģ API ȶ 2 ôģ APIͨǧ + ٶһԣ API л߼ ޸űִе¼Ⱥ쳣 ִǰݹؼݣ HDFS Ŀ¼߷սűڲԼȺ֤Ч ־Flume / / ־ôʹʸ澯ֵ 85% עĵݿ AI ɣ diff --git a/doc/project/核心任务说明文档(初稿).docx b/doc/project/核心任务说明文档(初稿).docx new file mode 100644 index 0000000..bc4177a Binary files /dev/null and b/doc/project/核心任务说明文档(初稿).docx differ diff --git a/doc/project/测试报告(空).docx b/doc/project/测试报告(空).docx new file mode 100644 index 0000000..e69de29 diff --git a/doc/project/用例文档(初稿).docx b/doc/project/用例文档(初稿).docx new file mode 100644 index 0000000..c652c7f Binary files /dev/null and b/doc/project/用例文档(初稿).docx differ diff --git a/doc/project/用户手册(空).docx b/doc/project/用户手册(空).docx new file mode 100644 index 0000000..e69de29 diff --git a/tools/command.txt b/tools/command.txt new file mode 100644 index 0000000..acddaa4 --- /dev/null +++ b/tools/command.txt @@ -0,0 +1 @@ +java -jar tools/plantuml.jar -tpng Get-ChildItem "doc\project\diagrams\*.puml" | Select-Object Name \ No newline at end of file diff --git a/tools/plantuml.jar b/tools/plantuml.jar new file mode 100644 index 0000000..bfc1ede Binary files /dev/null and b/tools/plantuml.jar differ