Flume 概述

Flume是一种高效、可靠且灵活的日志收集系统,支持多种数据源和目的地,如avro、thrift、hdfs等。其架构包括Source、Channel和Sink三个核心组件,通过独立的Put和Take事务确保数据的可靠性。

简介

Flume是一种分布式的、可靠的、可用的服务,用于有效地收集、聚合和移动大量的日志数据。它具有简单灵活基于流数据的架构,采用了许多故障转移和恢复机制来保证可靠性。

架构

在这里插入图片描述

  • Source
    Source是负责接收数据到Flume Agent的组件。Source组件可以处理各种类型、各种格式的日志数据,包括avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy。

  • Channel
    Channel是位于Source和Sink之间的缓冲区。因此,Channel允许Source和Sink运作在不同的速率上。Channel是线程安全的,可以同时处理几个Source的写入操作和几个Sink的读取操作。
    Flume有两种Channel:Memory Channel和File Channel。
    Memory Channel将数据缓存在内存中,当程序宕机或者重启时缓存中的数据会丢失。
    File Channel将所有数据写到磁盘。因此在程序重启或机器宕机的情况下不会丢失数据。

  • Sink
    Sink不断地轮询Channel中的事件且批量地移除它们,并将这些事件批量写入到目的存储或发送到另一个Flume Agent。
    Sink组件目的地包括hdfs、logger、avro、thrift、ipc、file、HBase、solr。

Flume事务

为了保证数据的可靠性,Flume内部使用两个独立的事务(Put事务和Take事务)分别负责从soucrce到channel,以及从channel到sink的事件传递。
在这里插入图片描述

数据流向

Flume的每一条消息都被封装成Event的形式处理,下图是Event的处理流程。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值