1.4 Flume

1.4 Flume

1.4.1 Flume组成,Put事务,Take事务

1)Taildir Source

(1)断点续传、多目录

(2)taildir底层原理

 

(3)Taildir挂了怎么办?

     不会丢数:断点续传

     重复数据:有可能

(4)存在的问题及解决方案

①问题:

新文件判断条件 = iNode值 + 绝对路径(包含文件名)

日志框架凌晨修改了文件名称=》导致会再次重读一次昨天产生的数据

②解决:

方案一:建议生成的文件名称为带日期的。同时配置日志生成框架为不更名的;

方案二:修改TairDirSource源码,只按照iNode值去确定文件

修改源码视频地址:

https://www.bilibili.com/video/BV1wf4y1G7EQ?p=14&vd_source=891aa1a363111d4914eb12ace2e039af

2)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)生产环境如何选择

        1. 如果下一级是Kafka,优先选择Kafka Channel。
        2. 如果是金融、对钱要求准确的公司,选择File Channel。
        3. 如果就是普通的日志,通常可以选择Memory Channel。

          每天丢几百万数据   pb级   亿万富翁,掉1块钱会捡?

3)HDFS Sink

     (1)时间(半个小时) or 大小128m  且 设置Event个数等于0,该值默认10

具体参数:hdfs.rollInterval=1800,hdfs.rollSize=134217728 hdfs.rollCount=0

4)事务

    1. SourceChannel是Put事务
    2. Channel到Sink是Take事务

1.4.2 Flume拦截器

1拦截器注意事项

1)时间戳拦截器:主要是解决零点漂移问题

2)自定义拦截器步骤

(1)实现 Interceptor

(2)重写四个方法

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

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

3)拦截器可以不用吗?

    时间戳拦截器建议使用。如果不用需要采用延迟15-20分钟处理数据的方式,比较麻烦。

1.4.3 Flume Channel选择器

Replicating:默认选择器。功能:将数据发往下一级所有通道。

Multiplexing:选择性发往指定通道。

1.4.4 Flume监控器

1)采用Ganglia监控器,监控到Flume尝试提交的次数远远大于最终成功的次数,说明Flume运行比较差。主要是内存不够导致的。

2)解决办法?

(1)自身:默认内存是20m,考虑增加flume内存,在flume-env.sh配置文件中修改flume内存为 4-6g

(2)找朋友:增加服务器台数

搞活动 618  =》增加服务器 =》用完在退出

日志服务器配置:8-16g内存、磁盘8T

1.4.5 Flume采集数据会丢失吗? 

  1. 如果是kafka channel 或者FileChannel不会丢失数据数据存储可以存储在磁盘中。
  2. 如果是MemoryChannel有可能丢。

1.4.6 Flume如何提高吞吐量

  1. 调整taildir sourcebatchSize大小可以控制吞吐量,默认大小100个Event。
  2. 吞吐量的瓶颈一般是网络带宽。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一鸣888

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值