Flume

一、Flume简介

1.1 Flume概述

Flume是一个分布式、高可用、可靠的海量日志聚合的系统。支持在系统中定制各类数据发送方,用于收集数据。同时,Flume通过对数据进行简单处理,写到各种数据接收方。

1.2 Flume使用场景

线上数据无法直接向kafka写数据,这时候就需要Flume这样的系统帮你去传输。

1.3 Flume的体系架构

比较核心的组件

client:client生产数据,运行在一个独立的线程

Event:一个数据单元,消息头和消息体组成Events可以是日志记录、 avro 对象等。)

Flow:Event从源头到目的地点的迁移的抽象。

Agent:是Flume运行的最小单位,是一个完整的数据收集工具,含有三个组件,分别是:

source、channel、sink。通过这些组件event可以从一个地方流向另一个地方

source:数据的输入方式,它是数据的收集端,负责将数据捕获后进行特殊的格式化,将数据封装到event里,然后将event推入channel中。Flume中内置了很多source支持avro、log4j,syslog和http。可以让应用程序可以直接和source打交道,如果内置source无法满足需求,flume害可以自定义source。

举几个常用的:

NetCat Source :绑定的端口( tcp udp ),将流经端口的每一个文本行数据作为 Event 输入
Avro Source :监听一个 avro 服务端口,采集 Avro 数据序列化后的数据
Exec Source :于 Unix command 在标准输出上采集数据
Spooling Directory Source :监听一个文件夹里的文件的新增,如果有则采集作为 source

 channel:用来缓存从source传输过来的数据,并形成一个个event,等待sink来拿。它相当于一个缓存区,可以将事件暂存到内存中也可以持久化到磁盘上直到sink处理完该事件。

举几个常用的channel:

Memory Channel 使用内存作为数据的存储。
File Channel 使用文件作为数据的存储
Spillable Memory Channel 使用内存作为 channel 超过了阀值就存在文件中
sink:数据的输出方式将channel整理好的一个个event,传送到指定的地方
举几个比较常用的
HDFS Sink :将数据传输到 hdfs 集群中
ogger Sink 将数据作为日志处理(根据 flume 中的设置的日志方式来显示)
Avro Sink :数据被转换成 Avro Event ,然后发送到指定的服务端口上。
File Roll Sink :数据发送到本地文件
interceptor
当我们需要对数据进行过滤时,除了我们在 Source Channel Sink 进行代码修改之外, Flume
为我们提供了拦截器,拦截器也是 chain 形式的,当我们为source指定好拦截器的时候,我们的拦截器会得到event,根据需求我们可以对event进行保留还是抛弃,被抛弃的event不会进入到channel中。
Timestamp Interceptor 时间戳拦截器 在 header 里加入 key timestamp value 为当前时
Host Interceptor 主机名或者 ip 拦截器,在 header 里加入 ip 或者主机名
Static Interceptor 静态拦截器,是在 header 里加入固定的 key value

1.4 Flume特性

Flume允许用户构建多跳流程,其中事件在到达最终目的地的时候会通过多个代理传播。它还允许扇入扇出流,上下文路由和备份路由。

为了使数据跨越多个代理或跃点流动,前一个代理的接收器和当前跃点的源必须为avro类型,接收器指向源的主机名和端口

还可以将多个数据经过同一个代理跃点流动,方法是为多个第一层代理配置一个avro接收器,它们均指向单个代理跃点的avro源,第二层代理上的此源将接收到的事件合并到一个通道中,该通道由接收器消耗到其最终的目的地。

Flume支持将事件流复用到一个或多个目的地。这是通过定义一种流多路复用器来实现的,该流多路复用器可以将事件选择性的或复制性的路由到一个或多个通道。

 1.5 Flume优点

1. 当收集数据的速度超过将写入数据的时候,也就是当收集信息遇到峰值时,这时候收集的信息非常 大,甚至超过了系统的写入数据能力,这时候, Flume会在数据生产者和数据收容器间做出调整, 保证其能够在两者之间提供平稳的数据。
2. Flume 的管道是基于事务,保证了数据在传送和接收时的一致性 .
3. Flume是可靠的,容错性高的,可升级的,易管理的,并且可定制的(可以根据生产需要自行定义 一个数据来源端或者终点端)。
4. 除了日志信息, Flume同时也可以用来接入收集规模宏大的社交网络节点事件数据,比如Facebook Twitter 、电商网站如亚马逊等。
5. 支持多路径流量,多管道接入流量,多管道接出流量,上下文路由等。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值