flume与hdfs

Flume定义:

Flume是Cloudera提供的一个高可用的、高可靠的,分布式的海量日志采集、聚合和传输的系统。Flume基于流式架构, 灵活简单。

为什么选用Flume

  主要作用: 实时读取服务器本地磁盘的数据, 将数据写入到HDFS

 Flume的组织架构

  1、最简单的组织架构

  2、Flume流式处理过程

  说明:

    source: 数据输入端

      常见类型: spooling directory, exec, syslog, avro, netcat等

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

      memory: 基于内存缓存, 允许数据有丢失

      file: 持久化channel, 系统宕机不会丢失数据

    sink: 数据输出端

      常见的目的地有: HDFS, Kafka, logger, avro, File, 自定义

    Put事务流程:

      doPut: 将批数据写入临时缓冲区putList

      doCommit: 检查channel内存队列是否足够合并

      doRollback: 内存队列空间不足, 回滚数据

    Take事务流程:

      doTake: 将批数据提取到临时缓冲区takeList

      doCommit: 如果数据全部发送成功, 则清空临时缓冲区takeList

      doRollback: 如果数据发送过程中出现异常, 则将临时缓冲区takeList中数据返还给channel

  

猜你喜欢

转载自www.cnblogs.com/kongzhagen/p/12623208.html