Hadoop系列 (十):Flume详细介绍

Flume是Cloudera提供的高可用、高可靠、分布式日志采集、聚合和传输软件。它由Source、Channel和Sink组成,Event是数据传输的基本单元。Flume支持多种数据源和接收方,适用于大部分数据采集场景,其可靠性通过在Channel中缓存Event并在成功传输后删除来保证。在安装部署中,涉及下载、配置、环境变量设置、监听端口配置和测试。Flume还可用于从Hive收集日志并存储到HDFS。
摘要由CSDN通过智能技术生成

Hadoop系列文章

Hadoop系列 (一):在CentOS中搭建hadoop环境(伪分布式)

Hadoop系列 (二):完全分布式搭建(腾讯云服务器+阿里云服务器)

Hadoop系列 (三):HDFS详细介绍

Hadoop系列 (四):Yarn详细介绍

Hadoop系列 (五):MapReduce详细介绍

Hadoop系列 (六):Spark搭建

Hadoop系列 (七):ZooKeeper详细介绍

Hadoop系列 (八):Hbase搭建

Hadoop系列 (九):Sqoop详细介绍

概述

Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的软件。
Flume的核心是把数据从数据源(source)收集过来,再将收集到的数据送到指定的目的地(sink)
为了保证输送的过程一定成功,在送到目的地(sink)之前,会先缓存数据(channel),待数据真正到达目的地(sink)后,flume在删除自己缓存的数据。

应用场景

Flume支持定制各类数据发送方,用于收集各类型数据;同时,Flume支持定制各种数据接受方,用于最终存储数据。一般的采集需求,通过对flume的简单配置即可实现。针对特殊场景也具备良好的自定义扩展能力。因此,flume可以适用于大部分的日常数据采集场景。

运行机制

Flume系统中核心的角色是Agent,Agent本身是一个Java进程,一般运行在日志收集节点

在这里插入图片描述

Event是Flume定义的一个数据流传输的最小单元。Agent就是一个Flume的实例,本质是一个JVM进程,该JVM进程控制Event数据流从外部日志生产者那里传输到目的地(或者是下一个Agent)。

一个完整Agent必须包含三个组件Source、Channel和Sink

Source:采集源,用于跟数据源对接,以获取数据。

Channel:是一个数据的缓冲池,Agent内部的数据传输通道,用于从Source将数据传递到sink。

Sink:定义了数据输出的方式和目的地。采集数据的传送目的,用于往下一级Agent传递数据或者往最终存储系统传递数据。

这三个组件是必须有的,另外还有很多可选的组件interceptor、channel selector、sink processor等。

在整个数据的传输的过程中,流动的是Event,它是Flume内部数据传输的最基本单元。

一个完整的Event包括:event headers、event body、event信息,其中Event信息就是Flume收集到的日记记录。

整个流程大概如下:

1. Source接收由外部(如Web服务器)传递给它的Event。然后以Flume Source识别的格式向向Flume发送Event。接收的Event数据可以是任何语言,只要符合协议即可。

2. 当Source接收Event时,将其存储到一个或多个Channel。Channel是一个被动的存储器,用于存储Event,直至被Sink接收。

3. Sink从Channel中移除Event并将其放入外部存储(HDFS,通过Flume的HDFS Sink实现),或将其转发到数据流中下一个Flume Agent的 Flume Source。

简单结构

采用单个Agent采集数据

在这里插入图片描述

复杂结构

多个Agent之间串联

在这里插入图片描述

Flume设置多级Agent连接的方式传输Event数据,类似于负载均衡或多点备份的方式。

特性

可靠性

Event会在每个Agent的Channel上进行缓存,随后Event将会传递到流中的下一个Agent或目的地(比如HDFS)。

只有成功地发送到下一个Agent或目的地后Event才会从Channel中删除。这一步保证了Event数据流在Flume Agent中传输时端到端的可靠性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值