Flume详细解析

Apache Flume是一个分布式、可靠的日志采集系统,用于从多种数据源收集、聚合和传输大量数据到集中存储。其核心包括Source、Channel和Sink,Event是其基本数据单位。Flume支持多种数据源、Channel类型和Sink类型,提供拦截器进行数据过滤,并通过事务保证数据传输的可靠性。Flume适用于多级流、数据汇聚和负载均衡等场景。
摘要由CSDN通过智能技术生成

本文特别致谢参考文档,在理解基础上加以整理,分享给更多需要的人


1、Flume简介
  Apache flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统,用于有效地收集、聚合和将大量日志数据从许多不同的源移动到一个集中的数据存储(如文本、HDFS、Hbase等)。
  其使用不仅仅限于日志数据聚合。因为数据源是可定制的(内置Avro,Thrift
Syslog,Netcat),Flume可以用于传输大量事件数据,包括但不限于网络流量数据、社交媒体生成的数据、电子邮件消息和几乎所有可能的数据源。
2、Flume核心
工作过程
  flume的数据流由事件(Event)贯穿始终。事件是Flume的基本数据单位,它携带日志数据(字节数组形式)并且携带有头信息,这些Event由Agent外部的Source生成,当Source捕获事件后会进行特定的格式化,然后Source会把事件推入(单个或多个)Channel中。你可以把Channel看作是一个缓冲区,它将保存事件直到Sink处理完该事件。Sink负责持久化日志或者把事件推向另一个Source。

  • 几个概念

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

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

    • Flow: Event从源点到达目的点的迁移的抽象。

    • Agent: 一个独立的Flume进程是其运行的核心,包含三个核心组件Source、 Channel、 Sink。(Agent使用JVM 运行Flume。每台机器运行一个agent,但是可以在一个agent中包含多个sources和sinks。),Flume以agent为最小的独立运行单位。一个agent就是一个JVM。它是一个完整的数据收集工具,通过核心组件, Event 可以从一个地方流向另一个地方,如下图所示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值