Hadoop生态圈(八):Flume

本文详细介绍了Apache Flume的用途、架构组成,并提供了从目录实时读取文件到HDFS、监控本地文件新增内容到HDFS、单数据源多出口以及多数据源汇总等案例,帮助理解Flume在日志管理和数据传输中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

1 Flume概述

1.1 Flume是什么

1.2 Flume组成架构

2 Flume安装

2.1 下载

2.2 安装部署

3 案例

         3.1 Flume实时读取目录文件到HDFS

3.2 Flume实时读取本地文件新增内容到HDFS(常用)

3.3 单数据源多出口案例

3.4 多数据源汇总


1 Flume概述

1.1 Flume是什么

Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。支持在系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据的简单处理,并写到各种数据接收方的能力。Flume基于流式架构,灵活简单。

Flume 在0.9.x and 1.x之间有较大的架构调整,0.9.x的称为Flume OG,1.x版本经过重构核心组件、核心配置及代码架构之后改称Flume NG,归为Apache旗下,目前是Apache的顶级项目。

1.2 Flume组成架构

Flume组成架构:

 

Flume中的组件:

1.Agent

Agent是一个JVM进程,它以时间的形式将数据源从源头送至目的地,是Flume数据传输的基本单元。Agent启动后,进程名称为Application

Agent主要有3个部分组成,Source、Channel、Sink。

2.Source

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

3.Channel

Channel是位于Source和Sink之间的缓冲区。因此,Channel允许Source和Sink运作在不同的速率上。Channel是线程安全的,可以同时处理几个Source的写入操作和几个Sink的读取操作。

Flume自带两种Channel:Memory Channel和File Channel。

Memory Channel内存中的队列Memory Channel不需要关心数据丢失的情景下适用。如果需要关心数据丢失,那么Memory Channel就不应该使用,因为程序死亡、机器宕机或者重启都会导致数据丢失。

File Channel所有事件写到磁盘。因此在程序关闭或机器宕机的情况下不会丢失数据。

4.Sink

Sink不断地轮询Channel中的事件且批量地移除它们,并将这些事件批量写入到存储、或者被发送到另一个Flume Agent。

Sink是完全事务的。在从Channel批量删除数据之前,每个Sink用Channel启动一个事务。批量事件一旦成功写出到存储系统或下一个Flume Agent,Sink就利用Channel提交事务。事务一旦被提交,该Channel从自己的内部缓冲区删除事件。

Sink组件目的地包括hdfs、logger、avro(传递给下一个Flume)、thrift、ipc、file、null、HBase、solr、自定义。

5.Event

传输单元,Flume数据传输的基本单元,以事件的形式将数据从源头送至目的地。

2 Flume安装

2.1 下载

1) Flume官网地址:http://flume.apache.org/

2)文档查看地址:http://flume.apache.org/FlumeUserGuide.html

3)下载地址:http://archive.apache.org/dist/flume/

2.2 安装部署

1)将apache-flume-1.7.0-bin.tar.gz上传到linux的/opt/software目录下

2)解压apache-flume-1.7.0-bin.tar.gz到/opt/module/目录下

[root@hadoop102 software]$ tar -zxvf apache-flume-1.7.0-bin.tar.gz -C /opt/module/

3)修改apache-flume-1.7.0-bin的名称为flume

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值