大数据--hadoop生态8--flume总结

 

目录

一: flume的定义

二:flume基础架构

三:Flume Agent内部原理

 四:Flume配置文件解析

五:ChannelSelector

 六:Flume的事务机制

七:Flume采集数据会丢失吗


一: flume的定义

   Flume是一个高可用的,高可靠的,分布式的海量日志采集,聚合和传输的系统。其最主要的作用是实时读取服务器本地磁盘的数据,将数据写入到HDFS

二:flume基础架构

  • Agent:是一个JVM进程,它以事件的形式将数据从源头送至目的地。Agent由三部分组成:Source, Channel, Sink.
  • Source:是负责接收数据到Flume Agent的组件,Source组件可以处理各种类型,各种格式的日志数据。
  • Channel:位于Source和Sink之间的缓冲区。Channel允许Source和sink运行在不同的速率上,Channel是线程安全的,可以同时处理几个Source的写入操作和几个SInk的读取操作。Flume自带几种Channel:Memory Channel, File Channel , Kafka Channel.
  • Sink:Sink不断轮询Channel中的事件并且批量移除他们,并将这些事件批量写入到存储或者索引系统,或者发送到另一个Flume Agent
  • Event:是flume数据传输的基本单元,以Event的形式将数据从源头送到目的地。Event由Header和Body两部分组成。

三:Flume Agent内部原理

 

 四:Flume配置文件解析

【注意】:一个sink只能对应一个Channel

五:ChannelSelector

    ChannelSecctor的作用就是选出Event将要发往哪个Channel.其共有两种类型,

分别是Replicating(复制)和Multiplexing(多路复用)

  • ReplicatingSelector会将同一个Event发往所有的Channel
  • Multiplexing会根据相应的原则,将不同的Event发往不同的Channel.

 六:Flume的事务机制

    Flume的事务机制(类似数据库的事务机制):Flume使用两个独立的事务分别负责从

Source到Channel,以及从Channel到Sink的事件传递。比如 spooling directory source 为

文件的每一行创建一个事件,一旦事务中所有的事件全部传递到 Channel 且提交成功,

那 么 Soucrce 就将该文件标记为完成。同理,事务以类似的方式处理从 Channel

到 Sink 的传 递过程,如果因为某种原因使得事件无法记录,那么事务将会回滚。

且所有的事件都会保持 到 Channel 中,等待重新传递

七:Flume采集数据会丢失吗

    根据Flume的架构原理,Flume是不可能丢失数据的,其内部有完善的事务机制,

Source到Channel是事务性的,Channel到Sink是事务性的,因此这两个环节是

不会出现数据的丢失,唯一可能丢失数据的情况是Channel采用memoryChannel,

agent宕机导致数据丢失,或者Channel存储数据已满,导致Source不再写入,未写入的数据丢失。

【注意】:Flume 不会丢失数据,但是有可能造成数据的重复,例如数据已经成功由 Sink 发出,

但是没有接收到响应,Sink 会再次发送数据,此时可能会导致数据的重复

 

参考:尚硅谷大数据课程课件

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值