Flume知识总结

Flume简介

Apache Flume 是一个分布式的、可靠的、可用的数据收集系统,它可以有
效地收集、聚合和移动大量的日志数据,这些数据可以从许多不同的来源转移到
一个集中的数据存储中。
Flume知识总结

Flume 官网

Flume 官方文档

Flume 特点

  • 可靠性

Flume 的核心是把数据从数据源收集过来,再送到目的地。为了保证输送
一定成功,在送到目的地之前,会先缓存数据,待数据真正到达目的地后,删除
自己缓存的数据。
Flume 使用事务性的方式保证传送 Event 整个过程的可靠性。

  • 可恢复性

Events 在通道中执行,由该通道管理从失败中恢复。

Flume架构

Flume知识总结

  • Event

flume最基本的数据单元,带有一个可选的消息头(headers)。如果是文本,event通常是一行记录,event也是事务的基本单位。

  • Flow

Event从源点到达目的点的迁移的抽象。

  • Client

客户端 操作位于源点处的Event,将其发送到Flume Agent。

  • Agent

一个独立的JVM进程,包含组件Source、Channel、Sink。

  • Source

用来消费传递到该组件的Event,完成对数据的收集,分成transtion和event打入到channel之中。不同的 source,可以接受不同的数据格式。

  • Channel

主要提供一个队列的功能,对source提供中的数据进行简单缓存,作用是保证source到sink的数据传输过程一定能成功。

  • Sink
    取出Channel中的数据,进行相应的存储文件系统、数据库等

一个示例

  1. 编写Flume的配置文件
vi source_netcat.conf
  #定义source,channel,sink的名字
  a1.surces = s1
  a1.channels = c1
  a1.sinks = sk1
  #对source的一些设置
  a1.sources.s1.type = netcat
  a1.sources.s1.bind = localhost
  a1.sources.s1.port = 5678
  a1.sources.s1.channels = c1
 #对channel的一些设置
 a1.channels.c1.type = memory
 #对sink的一些设置
  a1.sinks.sk1.type = logger
  a1.sinks.sk1.channel = c1
  1. 启动Flume
    【注意配置文件路径和Flume脚本路径】

flume-ng agent --name a1 -f source_netcat.conf -Dflume.root.logger=INFO,console

  1. 启动telne发送数据’
    #安装telnet yum -y install telnet.x86_64
    #启动telnet telnet localhost 5678
    #发送数据 hello word ok
  2. 查看Flumen日志输出
上一篇:Flume-1.9.0的安装部署


下一篇:[从源码学设计] Flume 之 memory channel