Flume概述 && 三大核心组件的介绍及使用示例 && 常用模式 && 简单搭建 && 两个简单例子的配置文件

1、Flume概述

1、Flume介绍:
    是一个用于收集海量日志数据的分布式框架,但不局限于日志数据。
    和
    它既可以处理离线数据,也可以处理实时数据。
问题:shell命令也可以将数据导入集群中,为什么不用呢?
    shell命令方式存在存储格式、压缩、容错等不便性

常用场景
    flume->HDFS->batch
    flume->kafka->streaming

版本
    flume-OG(老版本,不用花时间)
    flume-NG

Flume三大核心组件
    a.Source:
        负责从源端采集数据。
        常用的Source有exec/Spooling Directory/Taildir Source/NetCat
    b.Channel:
        负责缓存从Source端来的数据。
        常用的Channel有Memory/File
    c.Sink:
        负责将从Channel而来的数据写到目标端。
        常用的Sink有HDFS/Logger/Avro/Kafka
注意:
    Source+Channel+Sink=Agent,数据以event的形式从Source传送到Sink端。

多路路由 && 多路复制
    多路路由:
        一个source中的数据中每一小部分走一个channel
    多路复制:
        一个source中的数据走多个channel,每个channel都有source的完整数据



2、数据来源Source

第一类source:exec

exec:
    可以运行指定的Unix命令,然后该命令会一直执行,监控文件,作为flume数据的来源;
    需要配置相应的channel,type,以及运行的命令;
    本方式不保证数据一定能够输送到channel,如果出现问题,则数据可能丢失;
    在这种条件下,建议使用Spooling Directory等其他手段,保证数据传输;

示例:
    a1.sources = r1
    a1.channels = c1
    a1.sources.r1.type = exec
    a1.sources.r1.command = tail -F /var/log/secure
    a1.sources.r1.channels = c1

 第二类source: Spooling Directory

Spooling Directory:
    离线数据中常用,可靠性较强。
    flume重启,也不会丢失数据,为了保证可靠性,监控目录下的文件不能重名。
    通过log4j来定义日志名称,这样基本不会重名。
    监控磁盘目录,出现新的文件,解析新文件的内容,传输到定义的sink中。
    传输过程中的解析逻辑可以自行指定,如果文件读取完毕之后,文件会重命名,或者可选择删除;

示例:
    a1.channels = c
    a1.sources = s
    a1.sources.s.type = spooldir
    a1.sources.s.channels = c
    a1.source
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二百四十九先森

你的打赏是我努力的最大动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值