Flume, 大数据

flume-01 基本概念

Agent

  • Agent是一个JVM进程,它以事件(Event)的形式将数据从源头送至目的地
  • Agent主要有3个部分组成,Source、Channel、Sink

Source

  • Source是负责接收数据到Flume Agent的组件。Source组件可以处理各种类型、各种格式的日志数据,包括avro、exec、spooling directory、netcat、taildir等

Sink

  • Sink不断的轮询Channel中的事件(Event)并批量的移除它们,并将这些事件批量写入到存储或者索引系统、或者被发送到另一个Flume Agent
  • Sink组件目的地包括:hdfs、logger、avro、file、Hbase、solr等

Channel

  • channel是位于source和sink之间的缓冲区,因此channel允许source和sink运作在不同的速率上
  • channel是线程安全的可以同时处理几个source的写入和几个sink的读取操作
  • flume自带两种channel
    • memory channel
    • file channel 以及 kafka channel

Event

  • flume数据传输的基本单元
  • event由header和body两个部分组成
    • header用来存放event的一些属性k-v结构
    • body用来存放该条数据,字节数组形式