大数据(4b)Flume经验
Posted 小基基o_O
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大数据(4b)Flume经验相关的知识,希望对你有一定的参考价值。
Flume版本:1.9
source
- 常用的source:Taildir Source
- Taildir Source功能:监控目录下的多个追加文件
- 实现断点续传的原理:读取完数据后 将offset保存到磁盘的文件中
- 如果Taildir Source挂了,可能会出现重复数据,下面有两种处理方式:
1、Flume不处理,去重任务交给下游,这样可以确保Flume的效率(推荐)
2、Flume加事务,但会变慢(不推荐)
channel
名称 | 说明 | 默认容量 | 应用场景 |
---|---|---|---|
memory channel | 基于内存,效率高,可靠性低 | 100个event | 普通日志,要求快,丢一点无所谓 |
file channel | 基于磁盘,效率低,可靠性高 | 100万个event | 和钱相关的,要求准 |
kafka channel | 基于Kafka,效率高、可靠性高 | 直接对接Kafka |
- 如果memory channel挂了,最坏可能丢100个event
sink
- 常用的sink:HDFS Sink
- 对于HDFS Sink的HDFS小文件问题,要配置文件滚动:
1、按大小滚动:128M(HDFS块大小)
2、按时间滚动:1小时(注意:时间不能太长,如果设2小时,23:59滚动一次后01:59才滚下一次,而ods脚本在01:00执行的话,就会漏数据)
3、按event数量滚动:通常设为0,禁用
拦截器
- ETL拦截器:用于轻度清洗,例如:过滤json格式不完整的数据
- 时间拦截器:提取日志的时间,用于日期分区,避免零点漂移的问题
内存优化
- 修改
flume-env.sh
把内存调到4~6G(假设日志服务器16G) - 促销节日来之前,增加机器(内存)
以上是关于大数据(4b)Flume经验的主要内容,如果未能解决你的问题,请参考以下文章