|
|
|
|
@ -0,0 +1,56 @@
|
|
|
|
|
# 李涛第六周个人学习总结
|
|
|
|
|
|
|
|
|
|
## 学习目标达成情况
|
|
|
|
|
- 深入理解Flume核心概念(Agent、Source、Channel、Sink)及架构原理,明晰各组件协同逻辑
|
|
|
|
|
- 熟练掌握Flume配置文件编写规范,能独立完成不同场景下的数据采集流程设计与实现
|
|
|
|
|
- 系统掌握FastAPI基础使用方法及核心功能,包括路由设计、参数处理、异步接口等
|
|
|
|
|
- 成功完成Flume与FastAPI综合应用实践,构建从数据采集到接口查询的完整业务链路
|
|
|
|
|
|
|
|
|
|
## 每日学习总结
|
|
|
|
|
|
|
|
|
|
### 周一
|
|
|
|
|
- 学习Flume基础概念:明确Agent作为独立运行单元的角色,掌握Source(数据输入源)、Channel(数据缓冲区)、Sink(数据输出端)的功能定位
|
|
|
|
|
- 理解Flume工作原理:梳理"Source→Channel→Sink"的数据传输流程及各环节交互机制
|
|
|
|
|
- 搭建FastAPI开发环境:配置Python 3.9+环境,安装FastAPI、Uvicorn等依赖,熟悉项目基础结构(主程序入口、路由模块)
|
|
|
|
|
|
|
|
|
|
### 周二
|
|
|
|
|
- 深入Flume Source:掌握Exec Source(实时命令采集)、Spooling Directory Source(目录监控)的配置参数与适用场景
|
|
|
|
|
- 实践Flume配置:编写配置文件完成简单数据采集案例,验证配置有效性
|
|
|
|
|
- 学习FastAPI路由:通过`@app.get()`、`@app.post()`装饰器定义路由,掌握GET、POST等HTTP方法使用
|
|
|
|
|
|
|
|
|
|
### 周三
|
|
|
|
|
- 学习Flume Channel:对比Memory Channel(高性能、低可靠)与File Channel(高可靠、低性能)的特性及适用场景
|
|
|
|
|
- 掌握Flume Sink配置:实现HDFS Sink(数据写入HDFS)、Kafka Sink(数据发送至Kafka)的配置与使用
|
|
|
|
|
- 实践FastAPI参数处理:熟练使用路径参数(`/resource/{id}`)、查询参数(`/list?page=1`),通过Pydantic定义数据模型
|
|
|
|
|
|
|
|
|
|
### 周四
|
|
|
|
|
- 深入Flume高级特性:学习拦截器(Timestamp Interceptor、Host Interceptor)的数据增强功能,理解通道选择器(Replicating、Multiplexing)的分流逻辑
|
|
|
|
|
- 掌握Flume事务机制:理解Put事务(Source到Channel)和Take事务(Channel到Sink)的可靠性保障原理
|
|
|
|
|
- 学习FastAPI进阶功能:实现数据验证、自定义异常处理(`HTTPException`),定制响应模型
|
|
|
|
|
|
|
|
|
|
### 周五
|
|
|
|
|
- 学习Flume集群部署与监控:掌握多节点集群配置方法,通过Avro组件实现跨节点数据传输,使用监控工具跟踪运行指标
|
|
|
|
|
- 实践Flume集成:完成与Hadoop、Kafka等组件的集成案例,验证端到端数据传输可靠性
|
|
|
|
|
- 掌握FastAPI高级功能:学习依赖注入(`Depends`)、异步接口开发,熟练使用Swagger文档(`/docs`)调试接口
|
|
|
|
|
|
|
|
|
|
### 周末
|
|
|
|
|
- 综合项目实践:使用Flume采集日志数据,通过FastAPI开发数据查询接口,实现完整业务链路
|
|
|
|
|
- 总结学习内容:梳理Flume配置与FastAPI开发中的问题及解决方案
|
|
|
|
|
- 规划下周学习:明确Flume性能调优、FastAPI与数据库集成等深化方向
|
|
|
|
|
|
|
|
|
|
## 遇到的问题与解决方案
|
|
|
|
|
- Flume配置文件参数冲突:通过`flume-ng configtest`命令校验配置,结合官方文档核对参数依赖关系,解决组件不兼容问题
|
|
|
|
|
- FastAPI数据模型校验失败:细化Pydantic模型字段约束(如`max_length`、`regex`),添加自定义验证器,优化参数提示
|
|
|
|
|
- Flume与Kafka集成数据积压:调整Flume`batchSize`与Kafka`linger.ms`参数,匹配批处理效率,解决缓冲区堆积问题
|
|
|
|
|
|
|
|
|
|
## 学习资源使用情况
|
|
|
|
|
- Flume官方文档:核心参考资料,解决集群配置、事务机制等关键概念理解难点
|
|
|
|
|
- 《Flume实战》:提供生产环境配置案例与性能优化思路,提升实践深度
|
|
|
|
|
- FastAPI官方文档:通过示例代码掌握路由设计、异步处理等核心功能,是接口开发主要依据
|
|
|
|
|
- FastAPI中文教程与GitHub项目:辅助理解中文语境技术细节,参考实战项目优化代码结构
|
|
|
|
|
|
|
|
|
|
## 成果总结
|
|
|
|
|
- 产出6套Flume实用配置模板(含不同Source/Channel/Sink组合),覆盖日志采集、跨组件传输等场景
|
|
|
|
|
- 开发包含10个接口的FastAPI服务,实现参数校验、异常处理与异步响应功能
|
|
|
|
|
- 完成"日志采集-接口查询"综合项目,形成可复用技术方案与部署文档
|
|
|
|
|
- 整理《Flume与FastAPI学习手册》,涵盖核心知识点、配置示例及问题排查指南
|