美文网首页
Flume,一款超好用的大数据聚集组件

Flume,一款超好用的大数据聚集组件

作者: info小欧 | 来源:发表于2019-12-03 15:12 被阅读0次

    Flume入门

        Flume的文档介绍很多了,不过还是想写一写,发散一下思维,比你平时看到的多一些启发,工作中就多一个解决方案。

    Flume官网,[http://flume.apache.org/](http://flume.apache.org/);
    Flume 下载地址:[http://flume.apache.org/download.html](http://flume.apache.org/download.html);
     Linux 解压 tar -zxvf apache-flume-1.6.0-bin.tar.gz
    

    Flume介绍

    体系结构

        Flume agent 是一个(JVM)进程,它承载组件的运行,是Flume运行的核心。它含有三个核心组件,source、channel、sink,通过这些组件,event从一端流向另一端(Event 是格式化后的字节和字符串类型的数据流单元),source 和 sink 与通道中暂存的event 在给定的agent 中异步运行。

    官方图.png

    Source

        Source是数据的收集端,负责将数据捕获后进行格式化到event里,然后将event保存到Channel中;Flume 提供了各种source的实现,包括Avro source、Thrift source、Kafka source等,如果原生提供的source无法满足需求,可自定义开发source。Flume 提供的source 如下:

    Source.png

    Channel

        Channel 依靠本地文件系统被动保存 source 接受到的event,直到被sink 消费。可以将Channle看作是缓冲队列,Flume提供多种类型的持久化,如下:

    Channel.png

    Sink

        Sink从channel 移除event并将它放入类似于HDFS外部仓库或者将其直接发送给下一个 Flume agent的source;Flume提供sink的实现,如下:

    Sink.png

    组合使用

        Flume的强大之处在于提供了多种source和sink,这些source和sink 可以自由组合成强大的数据采集链路,只有你想不到,没有它做不到,如果原生提供的source和sink无法满足需求,还可自定义开发。如下图:

    Flume组合.png

    部署启动

    1.将下载的安装包上传到服务器解压,如下

    tar -zxvf apache-flume-1.6.0-bin.tar.gz
    

    2.在Flume安装文件下的./conf 下新增Flume配置flume-config.properties,如下是监听端口号为44444数据并保存到日志中的配置:

    flume-log-agent.sources = arvo-source
    flume-log-agent.sinks = logger-sink
    flume-log-agent.channels = memory-channel
    
    # Describe/configure the source
    flume-log-agent.sources.arvo-source.type = avro
    flume-log-agent.sources.arvo-source.bind = 192.168.200.130
    flume-log-agent.sources.arvo-source.port = 44444
    
    # Describe the sink
    flume-log-agent.sinks.logger-sink.type = logger
    # Use a channel which buffers events in memory
    flume-log-agent.channels.memory-channel.type = memory
    
    # Bind the source and sink to the channel
    flume-log-agent.sources.arvo-source.channels = memory-channel
    flume-log-agent.sinks.logger-sink.channel = memory-channel
    

    3.执行命令提供两种方式,将执行结果输入到控制台和保存到日志文件,如下:

    ./bin/flume-ng agent -c conf -f ./conf/flume-config.properties --name flume-log-agent -Dflume.root.logger=INFO,console
    ./bin/flume-ng agent -c conf -f ./conf/flume-config.properties --name flume-log-agent -Dflume.root.logger=INFO,LOGFILE
    

    相关文章

      网友评论

          本文标题:Flume,一款超好用的大数据聚集组件

          本文链接:https://www.haomeiwen.com/subject/jrdxgctx.html