Flume的组成以及拦截器、选择器、监控器

Flume组成,Put事务,Take事务

taildir source

  1. 断点续传、多目录
  2. 哪个flume版本产生的?Apache1.7、CDH1.6
  3. 没有断点续传功能时怎么做的? 自定义
  4. taildir挂了怎么办?
    不会丢数据:断点续传
  5. 怎么处理重复数据?
    不处理:生产环境通常不处理,因为会影响传输效率
    处理:
    自身:在taildirsource里面增加自定义事务
    找兄弟:下一级处理(hive dwd sparkstreaming flink布隆)、去重手段(groupby、开窗取窗口第一条、redis)
  6. taildir source 是否支持递归遍历文件夹读取文件?
    不支持。自定义 递归遍历文件夹 + 读取文件

file channel /memory channel/kafka channel

  1. file channel
    数据存储于磁盘,优势:可靠性高;劣势:传输速度低
    默认容量:100万event
    注意:FileChannel可以通过配置dataDirs指向多个路径,每个路径对应不同的硬盘,增大Flume吞吐量。
  2. memory channel
    数据存储于内存,优势:传输速度快;劣势:可靠性差
    默认容量:100个event
  3. kafka channel
    数据存储于Kafka,基于磁盘;
    优势:可靠性高;
    传输速度快 kafka channel》memory channel+kafka sink 原因省去了sink阶段
  4. kafka channel哪个版本产生的?
    flume1.6 版本产生=》并没有火;因为有bug
    topic-start 数据内容
    topic-event 数据内容 ture 和false 很遗憾,都不起作用。
    增加了额外清洗的工作量。
    flume1.7解决了这个问题,开始火了。
  5. 生产环境如何选择
    如果下一级是kafka,优先选择kafka channel
    如果是金融、对钱要求准确的公司,选择file channel
    如果就是普通的日志,通常可以选择memory channel
    每天丢几百万数据 pb级 亿万富翁,掉1块钱会捡?

HDFS sink

  1. 时间(1小时-2小时) or 大小128m、event个数(0禁止)
    具体参数:hdfs.rollInterval=3600,hdfs.rollSize=134217728,hdfs.rollCount =0

事务

Source到Channel是Put事务
Channel到Sink是Take事务

Flume拦截器

拦截器注意事项

项目中自定义了:ETL拦截器。
采用两个拦截器的优缺点:优点,模块化开发和可移植性;缺点,性能会低一些

自定义拦截器步骤

  1. 实现 Interceptor
  2. 重写四个方法

    initialize 初始化
    public Event intercept(Event event) 处理单个Event
    public List intercept(List events) 处理多个Event,在这个方法中调用Event intercept(Event event)
    close 方法

  3. 静态内部类,实现Interceptor.Builder

拦截器可以不用吗?

可以不用;需要在下一级hive的dwd层和sparksteaming里面处理
优势:只处理一次,轻度处理;劣势:影响性能,不适合做实时推荐这种对实时要求比较高的场景。

Flume Channel选择器

Flume Channel选择器

Flume监控器

采用Ganglia监控器,监控到flume尝试提交的次数远远大于最终成功的次数,说明flume运行比较差。

解决办法?

  1. 自身:增加内存flume-env.sh 4-6g
    -Xmx与-Xms最好设置一致,减少内存抖动带来的性能影响,如果设置不一致容易导致频繁fullgc。
  2. 找朋友:增加服务器台数
    搞活动 618 =》增加服务器=》用完在退出
    日志服务器配置:8-16g内存、磁盘8T

Flume采集数据会丢失吗?(防止数据丢失的机制)

如果是FileChannel不会,Channel存储可以存储在File中,数据传输自身有事务。
如果是MemoryChannel有可能丢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值