1)大数据之Flume(概述)

概述:
Flume定义
  • Flume是Cloudera提供的一个高可用,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume基于流式架构,简单灵活。
  • 为什么选择flume:
    1)大数据之Flume(概述)_第1张图片
    Flume最主要的作用就是:实时读取服务器本地磁盘的数据,写入到HDFS。
组成架构
  • Flume的组成架构图(简单):
    1)大数据之Flume(概述)_第2张图片
  • Flume的组成架构图(详细):
    1)大数据之Flume(概述)_第3张图片
  • Flume架构中的组件:
    • Agent:
      • Agent是一个JVM进程,它以事件的形式将数据从源头传输到目的地,是Flume传输的基本数据单位
    • Source:
      • Source是负责接收数据到Flume Agent的组件。Source组件可以处理各种类型,各种格式的日志数据,包括avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy。
    • Channel:
      • Channel是位于Source和Sink之间的缓冲区,因此,Channel允许Source和Sink运作在不同的速率上。Channel是线程安全的,它可以同时处理几个Source的写入操作和几个Sink的读取操作。
      • Flume自带两种Channel:Memory Channel和File Channel:
        • Memory Channel是位于内存中的队列,速度快,若机器宕机则丢失数据
        • File Channel将所有事件写入磁盘,速度慢,但不会丢失数据
    • Sink:
      • Sink不断地轮询Channel中的时间,并批量地移除它们,并将这些事件批量地写入存储或索引系统,或者被发送到另一个Flume Agent。
      • Sink是完全事务性的。在Sink批量删除Channel数据之前,每个Sink用Channel启动一个事物,一旦批量数据完成写入存储或索引系统,或者被发送到另一个Flume Agent,Sink就利用Channel提交事物,Channel会在事物在提交完之后会在自己的内部缓冲区删除事件。
      • Sink组间的目的地包括:HDFS、logger 、avro、thrift、ipc、file、Hbase等
拓扑结构
1)大数据之Flume(概述)_第4张图片 1)大数据之Flume(概述)_第5张图片 1)大数据之Flume(概述)_第6张图片 1)大数据之Flume(概述)_第7张图片
FlumeAgent内部原理

如图:
1)大数据之Flume(概述)_第8张图片

你可能感兴趣的:(大数据之Flume)