【大数据技术】flume架构和应用

一、flume架构

一个flume进程分为三个部分:source、channel、sink,总体称为一个Agent,是一个JVM进程

1)source

作用:读取数据,传送(put)给channel一个putList(里面是多个event),可支持多种数据类型的读取:

exec:监听一个文件

spooling directory:监听一个文件夹

avro:数据源是Flume时使用

netcat:数据源是网络端口时使用,一般测试时使用


2)channel

作用:位于source和sink之间的缓冲区

· 当source-put-channel不成功时,数据会回滚到putList中

· 当sink-take-channel不成功时,数据会回滚到channel中

channel类型:

Memory Channel:基于内存的缓冲区

File Channel:基于磁盘的缓冲区

Kafka Channel:基于消息队列的缓冲区


3)sink

作用:不断地轮询读取(take)Channel中的事件且批量的从channel中移除他们,并将这些事件批量写入到存储系统、或被发送到另一个Flume Agent中

目的地类型:

HDFS:放到文件系统中

Kafka:放到消息队列中

Avro:目的地为下一个flume,用于两个Flume相连时

file_roll:放到本地文件中

logger:在控制台显示,一般测试时使用


二、Flume使用文档

1)开启flume

flume-ng agent

--name a3          给Agent起一个名字

--conf conf/        表示flume的配置文件在flume/conf文件夹下

--conf-file job/flume-dir-hdfs.conf      指定本次Agent的配置在xxx中


2)复杂场景下Flume结构图绘制①

多个Flume串联时,需要指定不同端口号,根据端口号确定接受哪个Agent和发送给哪个Agent

flume3接收多类型数据

注:

Flume-1;Flume-2发送到Flume-3的4141端口

Flume-3监听自己的4141端口(不能监听其他节点端口,只能其他节点sink发送到自己,监听自己)


3)复杂场景下Flume结构图绘制②

需求:

1、flume-1监控hive.log日志,flume-1的数据传送给flume-2,flume-2将数据追加到本地文件,同时将数据传输到flume-3。

2、flume-4监控本地另一个自己创建的文件any.txt,并将数据传送给flume-3。

3、flume-3将汇总数据写入到HDFS。

Flume串联结构图

你可能感兴趣的:(【大数据技术】flume架构和应用)