flume 实战 1,小手动起来

教程 薪牛 ⋅ 于 2022-10-13 21:27:20 ⋅ 最后回复由 李科 2022-10-15 19:21:55 ⋅ 1438 阅读

海汼部落实操平台:http://cloud.hainiubl.com
实验环境配置:http://cloud.hainiubl.com/#/laboratory/configuration

1 flume概述

​ Flume是cloudera(CDH版本的hadoop) 开发的一个分布式、可靠、高可用的海量日志收集系统。它将各个服务器中的数据收集起来并送到指定的地方去,比如说送到HDFS、Hbase,简单来说flume就是收集日志的。

Flume两个版本区别:

1)Flume-og

2)Flume-ng

1.1 flume的结构模型

​ Flume 运行的核心是 Agent,Flume以agent为最小的独立运行单位,含有三个核心组件,分别是source、 channel、 sink,通过这些组件, Event 可以从一个地方流向另一个地方,如下图所示。

file

Source:

​ 从Client上收集数据并对数据进行格式化,以Event(事件)的形式传递给单个或多个Channel。

Channel:

​ 短暂的存储容器,将从Source接收到的Event进行缓存直到被Sink消费掉,Channel是Source和Sink之间的桥梁,Channal是一个完整的事务,能保证了数据在收发时的一致性,并且一个Channel可以同时和任意数量的Source和Sink建立连接。

Sink:

​ 从Channel中消费数据(Event)并传递到存储容器(Hbase、HDFS)或其他的Source中。

工作流程:

​ 把数据从数据源(source)收集过来,在将收集到的数据送到指定的目的地(sink)。

​ 为了保证输送的过程一定成功,在送到目的地(sink)之前,会先缓存数据(channel),待数据真正到达目的地(sink)后,flume再删除自己缓存的数据。

什么是Event?

​ 1)event将传输的数据进行封装,是flume传输数据的基本单位,如果是文本文件,通常是一行记录。

​ 2)event也是事务的基本单位。

​ 3)event从source,流向channel,再到sink,本身为一个字节数组,并可携带headers(头信息)信息。

​ 4)event代表着一个数据的最小完整单元,从外部数据源来,向外部的目的地去。

file

Agent:

​ Flume以 Agent 为最小的独立运行单元,Agent 依赖于 JVM ,一个 Agent 的运行就伴随一个 JVM 实例的产生。

​ 一台机器可以运行多个Agent,一个Agent中可以包含多个Source、Sink。

1.2 flume各组件介绍

​ Flume提供了大量内置的Source、Channel和Sink类型,不同类型的Source,Channel和Sink可以自由组合.组合方式基于用户设置的配置文件。

1.2.1 Source组件

​ Source是数据的收集端,负责将数据捕获后进行特殊的格式化,将数据封装到事件(event) 里,然后将事件推入Channel中,Flume提供了各种source的实现,包括Avro Source、Exce Source、Spooling Directory Source、NetCat Source、Syslog Source、Syslog TCP Source、Syslog UDP Source、HTTP Source、HDFS Source,etc。如果内置的Source无法满足需要, Flume还支持自定义Source。

file

file

回复帖子,然后刷新页面即可查看隐藏内容

版权声明:原创作品,允许转载,转载时务必以超链接的形式表明出处和作者信息。否则将追究法律责任。来自海汼部落-薪牛,http://hainiubl.com/topics/75920
回复数量: 8
  • 郭浩
    2022-10-14 11:02:09

    :+1:

  • 朱同洋
    2022-10-14 15:54:41

    ":"

  • 薪牛
    2022-10-14 17:31:35

    动起来

  • 薪牛
    2022-10-14 19:38:35

    flume-ng agent -n a1 -c /opt/apache-flume-1.10.1-bin/conf/ -f ./spooldir.agent -Dflume.root.logger=INFO,console

  • 薪牛
    2022-10-14 20:53:37

    定义agent

    a1.sources=r1
    a1.sinks=k1
    a1.channels=c1

    定义source

    a1.sources.r1.type=netcat
    a1.sources.r1.bind=11.99.16.111
    a1.sources.r1.port=44444

    定义channel

    a1.channels.c1.type=file
    a1.channels.c1.dataDirs=/root/filechannel

    定义sink

    a1.sinks.k1.type=logger

    绑定sink和channel,source和channel

    a1.sources.r1.channels=c1
    a1.sinks.k1.channel=c1

  • 青牛 海汼部落创始人,80后程序员一枚,曾就职于金山,喜欢倒腾技术做产品
    2022-10-14 23:08:08

    :v:

  • 李科
    2022-10-15 19:21:55

    就是整!

暂无评论~~
  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,可用Emoji的自动补全, 在输入的时候只需要 ":" 就可以自动提示了 :metal: :point_right: 表情列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif,教程
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
Ctrl+Enter