天天看点

Flume之flume-ng

Flume —flume-ng

  在开始阅读之前让我们喊出口号:“要想人前显贵,就要人后受罪!”加油嘎嘣儿,加油所有想获得美好未来的你!

一、什么是Flume

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

二、Flume-ng

运行原理图:

Flume之flume-ng

其中Agent 是Flume-ng的最小的独立运行单位。Agent是Flume中产生数据流的地方,一个agent就是一个jvm。单个的Agent由 Source、Sink、和Channel三大组件构成。

二、三大组件

  1. Source:完成对日志数据的收集,通过event将数据传给到Channel之中。
  2. Channle:主要提供一个队列的功能,对source提供中的数据进行简单的缓存。
  3. Sink:取出Channle中的数据,进行相应的存储文件系统,数据库,或者提交到远程服务器。

Source :常用类型

Avro Source 通过Avro 接口远程连接Source
Exec Source 通过UNIX命令想标准输出输出数据
Spooling Directory Source 监听整个目录,将新文件内容发送给Event
Syslog Sources 读取syslog数据,产生Event,支持UDP和TCP
HTTP Source 基于HTTP POST或GET方式的数据源,支持JSON、BLOB表示形式
自定义Source 通过实现Flume提供的接口定制Source

Channel:常用类型

Memory Channel Event数据存储在内存中
JDBC Channel Event数据存储在持久化存储中
File Channel Event数据存储在磁盘中

Sink:常用类型

Hdfs Sink 将数据写入到Hdfs中
Avro Sink 数据被转换成Avro Event,然后发送到配置的RPC端口上
Hbase Sink 将数据写入到Hbase数据库中
File Roll Sink 将数据写入到本地文件系统中

继续阅读