docs:李涛提交第十周个人周计划

pull/41/head
litao 2 months ago
parent fc2ae556fc
commit c19ee72826

@ -0,0 +1,75 @@
# 第十周个人周计划
**核心目标**基于Flume实现Hadoop集群日志NameNode/DataNode/YARN等组件日志的“全量+实时”采集完成采集方案设计、多场景适配、性能优化及高可用验证确保全量历史日志无遗漏、实时日志低延迟≤30秒写入HDFS
**前置准备**已部署的Hadoop集群与Flume环境承接第九周成果、Hadoop各组件日志路径清单nn/dn/yarn日志目录、Flume全量/实时采集技术文档、数据压缩工具Snappy/Gzip、Flume Interceptor/Channel Selector配置手册、集群节点权限配置文档
## 周日:日志梳理与采集方案设计
- 1.全面梳理Hadoop集群日志类型分类整理NameNode元数据操作日志、DataNode磁盘IO日志、YARNResourceManager/NodeManager日志、Hive/HBase可选等组件的日志路径、文件格式.log/.out、轮转规则按大小/时间轮转)
- 2.调研Flume全量+实时采集技术方案确认全量采集历史日志采用Spooling Directory Source断点续传+避免重复实时采集新增日志采用Taildir Source支持日志轮转+断点续传对比不同Channelfile/memory在高并发场景下的稳定性
- 3.设计整体采集架构:确定“分布式采集+集中式聚合”模式各节点部署采集Agent→聚合Agent→HDFS明确数据流转路径、分区策略按组件类型+日期+小时、数据压缩格式Snappy绘制架构流程图
- 4.梳理关键技术难点预判日志轮转、大文件全量读取、多Agent数据冲突、网络波动等场景的解决方案整理Flume核心参数优化建议如Channel容量、Sink批量提交大小
## 周一:全量采集方案实现与测试
- 1.配置Flume全量采集Agent在conf目录创建full_log_collect.conf指定Spooling Directory Source配置日志源目录、文件后缀过滤、完成标识后缀搭配File Channel避免内存溢出HDFS Sink指定全量数据存储路径/hdfs/logs/full/%component%/%Y-%m-%d
- 2.处理全量采集关键问题配置fileSuffix=".COMPLETED"标记已采集文件启用deletePolicy="never"保留源日志通过fileHeader=true添加文件标识避免重复采集
- 3.测试全量采集功能选取NameNode历史日志约20GB作为测试样本启动Flume Agent执行全量导入通过HDFS命令验证数据完整性文件数、大小与源日志一致记录采集吞吐量
- 4.优化全量采集效率调整Channel容量capacity=100000、Sink批量提交大小hdfs.batchSize=1000解决大文件读取卡顿问题确保全量采集速率≥30MB/s
## 周二:实时采集方案优化与场景适配
- 1.基于Taildir Source优化实时采集配置创建realtime_log_collect.conf配置多目录监控同时监听nn/dn/yarn日志目录设置fileHeader=true标记日志来源组件、pollInterval=10001秒监控一次文件变化支持日志轮转.log→.log.1→.log.2)场景适配
- 2.实现实时采集断点续传启用Taildir Source的positionFile参数指定断点记录文件路径/var/flume/position/realtime.pos测试Agent重启后是否从断点继续采集避免数据丢失
- 3.验证实时采集延迟通过模拟工具持续生成YARN节点日志10MB/min记录日志生成时间与HDFS写入完成时间的差值优化参数将延迟控制在30秒内
- 4.处理异常场景:模拟日志文件被删除/重命名、磁盘临时满等情况验证Flume Agent是否自动恢复采集无数据丢失或重复采集
## 周三:数据预处理与分区存储优化
- 1.配置Flume Interceptor实现数据预处理使用RegexExtractorInterceptor提取日志中的时间戳、组件名称、日志级别INFO/WARN/ERROR等关键字段通过StaticInterceptor添加集群标识标签过滤无效日志如空行、调试日志
- 2.优化HDFS Sink分区策略基于提取的关键字段配置HDFS Sink按“组件类型+日期+小时”分区hdfs.path=/hdfs/logs/realtime/%component%/%Y-%m-%d/%H启用hdfs.round=true实现时间对齐
- 3.启用数据压缩与文件滚动优化配置HDFS Sink使用Snappy压缩hdfs.compression.codec=org.apache.hadoop.io.compress.SnappyCodec设置滚动策略128MB/15分钟/文件数1000满足任一条件滚动
- 4.验证预处理与存储效果查看HDFS分区目录结构是否符合预期解压压缩文件验证数据完整性检查过滤规则是否生效无效日志占比≤0.1%
## 周四多Agent部署与负载均衡配置
- 1.分布式Agent部署在Hadoop集群所有节点master+slave1+slave2部署Flume采集Agent同步全量/实时采集配置文件,按节点角色(主节点/从节点)适配日志目录监控范围
- 2.设计聚合采集架构在master节点部署聚合Agent各采集Agent通过Avro Sink将数据发送至聚合Agent的Avro Source配置Channel Selector实现按组件类型分流处理
- 3.配置负载均衡与故障转移使用Flume的Load Balancing Sink Processor指定多个聚合Agent地址启用failover机制maxFailoverAttempts=3确保单个聚合Agent故障时自动切换
- 4.测试多节点采集稳定性在所有节点同时生成日志模拟峰值场景监控各采集Agent进程状态验证聚合Agent的负载均衡效果确保无数据堆积
## 周五:性能压测与高可用验证
- 1.开展性能压测使用日志生成工具模拟高并发场景100MB/min日志吞吐量持续2小时测试记录Flume采集延迟、HDFS写入吞吐量、Channel队列堆积情况等关键指标
- 2.排查并优化性能瓶颈若出现Channel堵塞调整file channel的transactionCapacity参数若Sink写入缓慢优化HDFS Sink的hdfs.rollInterval和批量提交参数若网络传输瓶颈启用数据压缩优化
- 3.高可用验证模拟采集Agent节点宕机手动停止slave1节点Agent、聚合Agent故障停止master节点聚合Agent检查故障期间数据是否丢失、故障恢复后是否自动续传验证全链路高可用
- 4.兼容性测试验证日志轮转按大小1GB轮转、按天轮转、日志切割logrotate工具场景下的采集适配性确保无日志遗漏或重复采集
## 周六:监控配置、文档整理与总结规划
- 1.配置Flume监控告警启用Flume JMX监控配置flume-env.sh添加JMX参数对接Ganglia/Zabbix监控系统设置关键指标告警Agent进程Down、Channel堆积量超阈值、采集延迟超30秒
- 2.整体联调验证:执行“全量历史日志导入+实时日志采集”端到端流程验证数据从日志生成→Flume采集→预处理→HDFS存储的完整性、时效性确保全量无遗漏、实时低延迟
- 3.整理技术文档归档Flume全量/实时采集配置文件full_log_collect.conf/realtime_log_collect.conf、聚合Agent配置、监控告警配置编写操作手册Agent启动/停止/重启、故障排查步骤)
- 4.总结与规划复盘本周计划执行情况分析未完成任务若有的原因总结Flume“全量+实时”采集的关键要点(如场景适配、性能优化、高可用设计),规划后续优化方向(如日志脱敏、异常日志告警)
Loading…
Cancel
Save