Flume入门及运行原理

简介

Flume最早是由一个名叫Cloudera公司开发日志收集系统,后来贡献给Apache。
Flume支持在日志系统中定制各类的数据发送方,用于收集数据。
Flume是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,支持在日志
系统中定制各种、各类的数据发送方,用于收集数据(Source),同时,Flume提供了对数据进行简单的处理,并写到各种数据接收方(可以定制)的能力(Sink)。
说明
一个是在Flume的0.9X版本,统称为Flume-og。
另一个在Flume的1.X版本,统称为Flume-ng。
新老版本需要注意的是,Flume-ng经过重大的重构,与Flume-og有非常多的不
同之处,使用的时候需要格外的注意。
Flume现存两个版本:
Flume运行需要基于JDK。官方说明,需要的版本是JDK1.6,但实际工作中,建议使用
1.7或1.8。

基本概念

Flume总体架构:
在这里插入图片描述
Flume是分布式的日志收集系统,上图中就是将数据收集之后传输到HDFS分布式文件系统中。
总的来说:Flume是干什么的——收集日志。

Event事件:

event的相关概念:Flume的核心是把数据从数据源(Source)收集过来,再将收集到的数据送
到指定的目的地(Sink)。
通常的理解,收集好的数据(Source)是可以直接发送给目的地(Sink),但是Flume为了
保证数据的传输过程一定能够成功,必须采用某个机制来包确保传送数据前的环境,此环节就
是先缓存数据(Channel),等到数据真正的送达到目的地(Sink)之后,Flume会将缓存
(Channel)中的数据删除。
在整个数据的传输的过程中,流动的就是event,事务保证是在event级别中进行的。
到底什么是event——event将传输的数据进行封装,是Flume传输数据的基本单位,如果是
文本文件,那么它就是一行记录,event也是事务的基本单位。
event从Source,流向channel,再从channel将输出发送给sink,本身为一个“字节数
组”,并可携带headers(头)信息。

Flume运行原理

运行机制/原理:

Flume运行的核心就是agent,agent本身就是一个java进程。
agent里面包含了3个核心组件:Source、Channel、Sink,类似于生产者、仓库、消费者的
结构。
1. source:
该组件专门用于收集数据,可以处理各种类型、各种格式的日志数据,包括(不局限于):
avro、Thrift、exec、jms、spooling directory、netcat(nc)、syslog、http等。
2 .channel:
source收集数据之后,临时存放的位置,也就是说channel组件专门用来存放临时数据
的——对采集到的数据进行简单的缓存,可以存放在memory、jdbc、file等等。
3. sink:
该组件作用是将数据发送到目的地,包括(不局限于):
avro、logger、hdfs、Thrift、ipc、file、null、hbase、solr等。

Flume的完整工作流程:

一个完成的工作流程如下:
source不断的接收数据,将数据封装成一个个的event,然后将event发送给channel,channel作为一个缓冲区会临时存放这些event据随后sink会将channel中的event数据发送到指定的地方——例如HDF分布式文件系统中。
注: 只有在sink将channel中的数据成功发送出去之后,channel才会将临时event数据进行删除,此机制保证了数据传输的可靠性、安全性。
在这里插入图片描述

Flume的用法:

Flume可以支持多级的Flume的agent,也就是说Flume可以前后相继形成多级的复杂流动,例如sink可以将数据发送到下一个agent的source中,这样就可以将数据连串发送,达到整体处理效果在这里插入图片描述
此外,Flume还支持扇入(fan-in),扇出(fan-out)。

扇入

就是source可以是接收多个输入的。

在这里插入图片描述

扇出

就是Sink可以将数据输出到多个目的地。
在这里插入图片描述

Flume 特新

  1. 可靠性:
    事务型的数据传递,保证数据的可靠性。一个日志交给Flume处理,不会出现此日志丢失或者未被处理的情况。
  2. 可复制性:
    可以通过以文件的方式来实现,内存更快,不可恢复;文件较慢,但提供可恢复性。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

缘不易

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

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

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

打赏作者

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

抵扣说明:

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

余额充值