Flume安装

作者: 400476cab371 | 来源:发表于2018-01-02 14:11 被阅读38次

    flume是一款实时日志收集系统


    特点

    1.分布式、可靠、高可用的海量日志采集、聚合和传输的系统

    2.支持各类数据发送方,用于收集数据,同时,Flume提供对数据进行简单处理,并写到各种数据接收方(hdfs、Hbase等)的能力

    3.flume的数据流由事件(event)贯穿始终。事件是Flume的基本数据单位,他携带日志数据(字节数组形式),并且携带有头信息,这些event由Agent外部的source生成,当Source捕获事件后,会进行特定的格式化,然后会把事件推入单个或者多个channel(相当于一个缓冲区)中,它将保存事件直到sink处理完该事件。Sink负责持久化日志或者把事件推向另一个Source


    可靠性

    当节点出现故障时候,日志能够被传送到其它节点上而不丢失(endToend、Store on failure、Besteffort)

        1.End To End 是收到数据后agent首先将event写到磁盘上,当数据传送成功后,再删除

        2.Store on failure是当数据接收方crash时,将数据写到本地,待恢复后继续发送

        3.Besteffort是数据发到接收方后不会进行确认

    可恢复性

    可靠性体现在channel上,一般推荐使用FileChannel,事件持久化在本地文件系统里(性能差)


    核心名称的概念

        1.Agent:使用JVM运行flume。每台机器运行一个Agent,但是可以再一个agent里面包含多个sources和sinks

        2.Client生产数据,运行在一个独立线程

        3.Source从Client收集数据,传递给Channel

        4.Sink从Channel收集数据,运行在一个独立线程

        5.Channel连接sources和Sink

        6.Event可以使日志记录,avro对象等。


    安装流程

    一、配置.bashrc

    vi ~/.bashrc

    export FLUME_HOME=/BigData/flume/apache-flume-1.6.0-bin

    export FLUME_CONF_DIR=$FLUME_HOME/conf

    PATH加上$FLUME_HOME/bin

    二、配置conf

    cp flume-conf.properties.templateq flume-conf.properties,并对其进行更改

    #agent1 表示代理名称

    agent1.sources=source1

    agent1.sinks=sink1

    agent1.channel=channel1

    #配置source1

    agent1.sources.source1.type=spooldir

    agent1.sources.source1.spoolDir=/BigData/flume/testDir

    agent1.sources.source1.channels=channel1

    agent1.sources.source1.fileHeader=false

    agent1.sources.source1.interceptors=il

    agent1.sources.source1.inteceptors.il.type=timestap

    #配置sink1

    #sink到hdfs

    agent1.sinks.sink1.type=hdfs

    agent1.sinks.sink1.hdfs.path=hdfs://huawei1:/9000/library/flume

    agent1.sinks.sink1.hdfs.fileType=DataStream

    agent1.sinks.sink1.hdfs.writeFormat=TEXT

    agent1.sinks.sink1.hdfs.rollInterval=1

    agent1.sinks.sink1.channel=channel1

    agent1.sinks.sink1.hdfs.filePrefix=%Y-%m-%d

    #sink到某个端口

    #agent1.sinks.sink1.type=avro

    #agent1.sinks.sink1.channel=channel1

    #agent1.sinks.sink1.hostname=Master

    #agent1.sinks.sink1.port=9999

    #sink到Kafka

    #agent1.sinks.sink1.type=org.apache.flume.plugins.KafkaSink

    #agent1.sinks.sink1.metadata.broker.list=Master:9092,Worker1:9092,Worker2.9092

    #agent1.sinks.sink1.partition.key=0

    #agent1.sinks.sink1.partitioner.class=org.apache.flume.plugins.SinglePartition

    #agent1.sinks.sink1.serializer.class=kafka.serializer.StringEncoder

    #agent1.sinks.sink1.request.requiredacks=0

    #agent1.sinks.sink1.max.message.size=1000000

    #agent1.sinks.sink1.producer.type=sync

    #agent1.sinks.sink1.custom.encoding=UTF-8

    #agent1.sinks.sink1.custom.topic.name=HelloKafka

    #agent1.sinks.sink1.channel=channel1

    #配置channel1

    agent1.channels.channel1.type=file

    agent1.channels.channel1.chackpointDir=/BigData/flume/checkpointDir

    agent1.channels.channel1.dataDirs=/BigData/flume/dataDirs


    启动Flume

    ./flume-ng agent -n agent1 -c conf -f  /BigData/flume/apache-flume-1.6.0-bin/conf/flume-conf.properties -Dflume.root.logger=DEBUG,console

    相关文章

      网友评论

        本文标题:Flume安装

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