7.4.1、Flume__flume概述,架构解析,flume的两个事务put,take

flume系列文章目录


作者:Loves_dccBigData


前言


提示:以下是本篇文章正文内容

1、概述

flume是Cloudera提供的是一个分布式,高可靠,高可用的海量日志采集,聚合和传输的系统,Flume基于流式架构,灵活简单

2、为什么选择flume

flume最主要的作用就是:实时读取服务器本地磁盘的数据,将数据写入到HDFS

在这里插入图片描述

3、flume架构

flume的数据流由事件(Event)贯穿始终。事件是Flume的基本数据单位,它携带日志数据(字节数组形式)并且携带有头信息,这些Event由Agent外部的Source生成.
在这里插入图片描述

组件介绍:

(1)Agent:是一个JVM进程,它以事件的形式将数据从数据源头送至目的,是Flume数据传输的基本单元
三部分组成:source,channel,sink
(2)Source:是负责接收数据到Flume
Agent组件,将数据捕获后进行特殊的格式化,将数据封装到事件(event) 里,然后将事件推入Channel中
常见类型:exec(执行命令),spooling directory(目录),netcat(端口,tcp协议),,http(http协议)
(3)Channel:位于Source和Sink之间的缓冲区,中转Event的一个临时存储,类似一个队列 常见类型:memory
Channel(内存队列,不安全),File Channel(磁盘队列,安全)
(4)Sink:不断地轮询Channel中的事件且批量地移除它们,并将这些事件批量写入到存储或索引系统、或者被发送到另一个Flume
Agent 常见类型:hdfs,logger(控制台打印),hbase(写habse)
(5)Event:flume数据传输的基本单元,一个数据单元,消息头和消息体组成。(Events可以是日志记录、 avro 对象等)

4、flume事务

在这里插入图片描述

(1)Flume 的核心是把数据从数据源收集过来,再送到目的地。为了保证输送一定成功,在送到目的地之前,会先缓存数据,待数据真正到达目的地后,删除自己缓存的数据
(2)Flume 传输的数据的基本单位是 Event,如果是文本文件,通常是一行记录,这也是事务的基本单位。 Event 从 Source,流向 Channel,再到 Sink,本身为一个 byte 数组,并可携带 headers 信息。 Event 代表着一个数据流的最小完整单元,从外部数据源来,向外部的目的地去

猜你喜欢

转载自blog.csdn.net/nerer/article/details/120944039