Flume-Flume简介

Flume概述

Flume是一个可靠的、高可用的海量日志收集、聚合、传输系统,支持在日志系统中定制各种数据发送方,用于数据采集,同时,Flume还可以对数据进行简单处理,并且写入各种数据接收方,例如Hadoop、HBase、JDBC等等。

Flume的组成

Flume中的数据流是由Event组成的,Event是 Flume中数据流的基本单位,它携带日志数据和头信息,事件是由数据发送方生成的,Source接收到事件后,会把他推送Chanel中,Channel可以理解为一个缓冲区,它会一直持有事件直到事件被Sink处理完,Sink负责持久化日志数据或将事件推送到另一个Source中。
这里写图片描述

Flume的可靠性

当Flume节点出现故障时,会将数据发送到其他的节点上而不会造成数据丢失。Flume提供了三种级别的可靠性保障,从强到弱依次为:

  1. end-to-end:接收到数据的agent首先会将Event写入磁盘,只有当
    数据传送成功之后才删除。
    2.store on failure:当数据接收方crash时,会将事件写入本地,待恢
    复后重新发送。
    3.best effort:数据发送的接收方后,不会进行确认。

Flume的可恢复性

Flume的可靠性是由Channel来实现的,可以使用FileChannel,将事件持久化到本地文件系统。

Flume中的核心概念

Agent:是由JVM运行的Flume节点,每台机器运行一个Agent,在一个Agent中可以包含多个Source、Channel和Sink
Client:一个用于收集数据,生成Event的线程
Source:从Client收集数据,发送给Channel
Channel:连接source和sink
Sink:从Channel中收集数据,进行持久化或传递给下一个接收点
Event:Flume数据流的基本组成单位

Flume架构

Flume以Agent作为最小的独立运行单位,一个Agent就是一个JVM,一个Agent’是由Sourcee、Channel、Sink三大组件构成。

这里写图片描述

值得注意的是Flume内部提供了大量内置的Source、Channel、Sink类型,不同类型的Source、Channl、Sink可以自由组合,组合方式基于用户的配置文件。比如Channel可以把事件暂存到内存中,也可以持久化到本地磁盘,Sink可以把事件写入HDFS、HBase,或者另一个Source。

Flume支持用户建立多级流,也就是说多个Agent可以协同工作。并且支持Fau-in,Fau-out,Contextual route和Backup route。
这里写图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值