|
|
|
|
@ -0,0 +1,42 @@
|
|
|
|
|
# 第十二周个人周总结
|
|
|
|
|
**核心目标达成情况**:基于FastAPI搭建了稳定的后端服务,完成了日志从远程读取→解析→结构化存储的完整流程,解决了Flume HTTPSink/ExecSink因第三方jar包下载问题导致的适配障碍,通过Python实现远程日志采集,并新增远程操控Hadoop集群节点功能,为日志分析、集群管理奠定基础
|
|
|
|
|
|
|
|
|
|
## 周日:项目架构调整与远程日志采集方案设计
|
|
|
|
|
- 1. 项目架构优化:调整模块结构,新增remote_collector/(远程日志采集模块)、hadoop_remote_control/(集群远程操控模块),明确各模块职责(原log/模块适配为接收远程远程采集日志的适配接口)
|
|
|
|
|
- 2. Flume适配问题处理:尝试配置Flume HTTPSink与ExecSink时,因第三方依赖jar包无法正常下载(仓库连接超时、版本不兼容),评估后决定采用Python远程读取方案替代
|
|
|
|
|
- 3. 远程读取方案设计:设计基于paramiko的SSH远程服务器日志文件读取逻辑(支持指定路径、实时监听新增日志),编写基础连接与读取函数
|
|
|
|
|
- 4. 连通性测试:通过Python脚本测试远程Hadoop节点(NameNode、DataNode)的日志文件读取权限与稳定性,验证数据传输完整性
|
|
|
|
|
|
|
|
|
|
## 周一:Hadoop日志格式分析与正则解析适配
|
|
|
|
|
- 1. 日志样本补充:收集远程读取的HDFS/YARN/MapReduce实时日志样本(因远程读取场景,补充了不同节点的日志格式差异样本)
|
|
|
|
|
- 2. 正则表达式优化:基于原计划正则格式((\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) (\w+) (\w+): (.*)),针对远程读取的特殊格式(含节点IP前缀、进程ID)补充匹配规则
|
|
|
|
|
- 3. 正则调试与验证:重点调试含节点标识、特殊符号的日志样本,匹配准确率提升至98%,记录2类未匹配场景(非标准时间戳、组件名含特殊字符)
|
|
|
|
|
- 4. 基础匹配函数封装:完善正则匹配函数,新增节点IP提取逻辑,添加远程读取超时的异常捕获
|
|
|
|
|
|
|
|
|
|
## 周二:preprocess_log函数优化与日志结构化
|
|
|
|
|
- 1. 核心函数优化:升级preprocess_log函数,集成远程日志的节点信息提取逻辑,结构化字典新增node_ip字段,确保日志溯源
|
|
|
|
|
- 2. 异常处理完善:针对远程读取的空日志、格式错乱日志,设置node_ip默认值(unknown),解析状态标识新增"remote_read_fail"类型
|
|
|
|
|
- 3. 单元测试编写:新增远程日志样本测试用例(覆盖多节点、异常网络场景),pytest测试通过率100%
|
|
|
|
|
- 4. 性能优化:优化远程读取-解析流水线,采用多线程异步读取+批量解析模式,处理效率提升40%
|
|
|
|
|
|
|
|
|
|
## 周三:日志接收接口升级与远程操控基础接口开发
|
|
|
|
|
- 1. 接口逻辑调整:将/api/log/receive接口改造为适配远程采集日志的接收接口,实现"远程读取→结构化解析"端到端流程
|
|
|
|
|
- 2. 结构化数据校验:扩展Pydantic的StructuredLog模型,新增node_ip字段校验规则(IP格式验证)
|
|
|
|
|
- 3. 远程操控接口开发:设计POST /api/hadoop/control基础接口,支持传入节点IP、操作指令(start/stop/status),实现参数校验逻辑
|
|
|
|
|
- 4. 端到端测试:验证日志接收接口对远程日志的解析准确性,测试远程操控接口的指令格式校验功能
|
|
|
|
|
|
|
|
|
|
## 周四:结构化日志存储与远程操控执行逻辑开发
|
|
|
|
|
- 1. 数据库表调整:在MySQL的hadoop_logs表中新增node_ip字段,优化timestamp+component+node_ip联合索引
|
|
|
|
|
- 2. 存储函数优化:完善save_structured_log_to_mysql函数,支持含node_ip字段的批量写入,写入效率提升30%
|
|
|
|
|
- 3. 远程操控执行逻辑:基于paramiko实现Hadoop服务启停、状态查询的远程执行逻辑,添加指令执行超时(10s)与结果解析
|
|
|
|
|
- 4. 可靠性保障:添加远程操控的异常重试机制(最多3次),记录指令执行失败日志(含节点IP、指令、错误信息)
|
|
|
|
|
|
|
|
|
|
## 周五:远程采集与操控功能联调
|
|
|
|
|
- 1. 远程采集稳定测试:持续运行远程日志采集程序(8小时),验证多节点日志读取的稳定性(无丢包、无重复),解析成功率97.5%
|
|
|
|
|
- 2. 远程操控功能测试:对Hadoop集群3个节点进行启停、状态查询测试,指令执行成功率100%,结果反馈延迟<2s
|
|
|
|
|
- 3. 接口兼容性优化:优化/api/log/receive接口支持单条/批量远程日志接收,调整批量处理阈值(默认100条/批)
|
|
|
|
|
- 4. 监控指标完善:新增远程连接成功率、操控指令执行成功率统计,输出每小时监控报告
|
|
|
|
|
|
|
|
|
|
## 周六:综合测试与优化
|
|
|
|
|
- 1. 性能压测:模拟10节点同时远程日志采集(2000+条/秒),接口吞吐量达标,数据库写入稳定,定位并优化远程读取线程锁竞争问题
|
|
|
|
|
- 2. 功能完善:修复远程操控中个别节点指令执行超时的问题(调整SSH连接超时参数),优化正则对特殊格式日志的匹配逻辑
|