flume与hdfs

Posted kongzhagen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

 

 

 

  

 

以上是关于flume与hdfs的主要内容,如果未能解决你的问题,请参考以下文章

日志抽取框架 flume 简介与安装配置

Flume NG 学习笔记单机与集群Flume 配置

[Flume][Kafka]Flume 与 Kakfa结合例子(Kakfa 作为flume 的sink 输出到 Kafka topic)

Flume简介与使用

flume与kafka集成配置

flume安装与应用举例