• flume 使用手册


    以下jie皆来自官网:

    1:首先版本是flume 1.8 

          查看版本:  bin/flume-ng version 

    2:配置与启动

    https://flume.apache.org/FlumeUserGuide.html#configuration

    Defining the flow

    # list the sources, sinks and channels for the agent
    <Agent>.sources = <Source>
    <Agent>.sinks = <Sink>
    <Agent>.channels = <Channel1> <Channel2>
    
    # set channel for source
    <Agent>.sources.<Source>.channels = <Channel1> <Channel2> ...
    
    # set channel for sink
    <Agent>.sinks.<Sink>.channel = <Channel1>

    eg2:
    # list the sources, sinks and channels for the agent
    agent_foo.sources = avro-appserver-src-1
    agent_foo.sinks = hdfs-sink-1
    agent_foo.channels = mem-channel-1
    
    # set channel for source
    agent_foo.sources.avro-appserver-src-1.channels = mem-channel-1
    
    # set channel for sink
    agent_foo.sinks.hdfs-sink-1.channel = mem-channel-1
    
    

    Using environment variables in configuration files

    Flume has the ability to substitute environment variables in the configuration. For example:

    a1.sources = r1
    a1.sources.r1.type = netcat
    a1.sources.r1.bind = 0.0.0.0
    a1.sources.r1.port = ${NC_PORT}
    a1.sources.r1.channels = c1
    

    NB: it currently works for values only, not for keys. (Ie. only on the “right side” of the = mark of the config lines.)

    This can be enabled via Java system properties on agent invocation by setting propertiesImplementation = org.apache.flume.node.EnvVarResolverProperties.

    For example::
    $ NC_PORT=44444 bin/flume-ng agent –conf conf –conf-file example.conf –name a1 -Dflume.root.logger=INFO,console -DpropertiesImplementation=org.apache.flume.node.EnvVarResolverProperties

    Note the above is just an example, environment variables can be configured in other ways, including being set in conf/flume-env.sh.

    Configuring individual components

    # properties for sources
    <Agent>.sources.<Source>.<someProperty> = <someValue>
    
    # properties for channels
    <Agent>.channel.<Channel>.<someProperty> = <someValue>
    
    # properties for sinks
    <Agent>.sources.<Sink>.<someProperty> = <someValue>
    
    

    Adding multiple flows in an agent

    
    
    # list the sources, sinks and channels for the agent
    <Agent>.sources = <Source1> <Source2>
    <Agent>.sinks = <Sink1> <Sink2>
    <Agent>.channels = <Channel1> <Channel2>
    
    
    
    
    
    # list the sources, sinks and channels in the agent
    agent_foo.sources = avro-AppSrv-source1 exec-tail-source2
    agent_foo.sinks = hdfs-Cluster1-sink1 avro-forward-sink2
    agent_foo.channels = mem-channel-1 file-channel-2
    
    # flow #1 configuration
    agent_foo.sources.avro-AppSrv-source1.channels = mem-channel-1
    agent_foo.sinks.hdfs-Cluster1-sink1.channel = mem-channel-1
    
    # flow #2 configuration
    agent_foo.sources.exec-tail-source2.channels = file-channel-2
    agent_foo.sinks.avro-forward-sink2.channel = file-channel-2
    
    

    Configuring a multi agent flow

    
    

    Weblog agent config:

    
    
    # list sources, sinks and channels in the agent
    agent_foo.sources = avro-AppSrv-source
    agent_foo.sinks = avro-forward-sink
    agent_foo.channels = file-channel
    
    # define the flow
    agent_foo.sources.avro-AppSrv-source.channels = file-channel
    agent_foo.sinks.avro-forward-sink.channel = file-channel
    
    # avro sink properties
    agent_foo.sinks.avro-forward-sink.type = avro
    agent_foo.sinks.avro-forward-sink.hostname = 10.1.1.100
    agent_foo.sinks.avro-forward-sink.port = 10000
    
    # configure other pieces
    #...
    
    
    

    HDFS agent config:

    
    
    # list sources, sinks and channels in the agent
    agent_foo.sources = avro-collection-source
    agent_foo.sinks = hdfs-sink
    agent_foo.channels = mem-channel
    
    # define the flow
    agent_foo.sources.avro-collection-source.channels = mem-channel
    agent_foo.sinks.hdfs-sink.channel = mem-channel
    
    # avro source properties
    agent_foo.sources.avro-collection-source.type = avro
    agent_foo.sources.avro-collection-source.bind = 10.1.1.100
    agent_foo.sources.avro-collection-source.port = 10000
    
    # configure other pieces
    #...
    
    

    Fan out flow

    
    
    # List the sources, sinks and channels for the agent
    <Agent>.sources = <Source1>
    <Agent>.sinks = <Sink1> <Sink2>
    <Agent>.channels = <Channel1> <Channel2>
    
    # set list of channels for source (separated by space)
    <Agent>.sources.<Source1>.channels = <Channel1> <Channel2>
    
    # set channel for sinks
    <Agent>.sinks.<Sink1>.channel = <Channel1>
    <Agent>.sinks.<Sink2>.channel = <Channel2>
    
    <Agent>.sources.<Source1>.selector.type = replicating
    
    # Mapping for multiplexing selector
    <Agent>.sources.<Source1>.selector.type = multiplexing
    <Agent>.sources.<Source1>.selector.header = <someHeader>
    <Agent>.sources.<Source1>.selector.mapping.<Value1> = <Channel1>
    <Agent>.sources.<Source1>.selector.mapping.<Value2> = <Channel1> <Channel2>
    <Agent>.sources.<Source1>.selector.mapping.<Value3> = <Channel2>
    #...
    
    <Agent>.sources.<Source1>.selector.default = <Channel2>
    
    # list the sources, sinks and channels in the agent
    agent_foo.sources = avro-AppSrv-source1
    agent_foo.sinks = hdfs-Cluster1-sink1 avro-forward-sink2
    agent_foo.channels = mem-channel-1 file-channel-2
    
    # set channels for source
    agent_foo.sources.avro-AppSrv-source1.channels = mem-channel-1 file-channel-2
    
    # set channel for sinks
    agent_foo.sinks.hdfs-Cluster1-sink1.channel = mem-channel-1
    agent_foo.sinks.avro-forward-sink2.channel = file-channel-2
    
    # channel selector configuration
    agent_foo.sources.avro-AppSrv-source1.selector.type = multiplexing
    agent_foo.sources.avro-AppSrv-source1.selector.header = State
    agent_foo.sources.avro-AppSrv-source1.selector.mapping.CA = mem-channel-1
    agent_foo.sources.avro-AppSrv-source1.selector.mapping.AZ = file-channel-2
    agent_foo.sources.avro-AppSrv-source1.selector.mapping.NY = mem-channel-1 file-channel-2
    agent_foo.sources.avro-AppSrv-source1.selector.default = mem-channel-1
    
    # channel selector configuration
    agent_foo.sources.avro-AppSrv-source1.selector.type = multiplexing
    agent_foo.sources.avro-AppSrv-source1.selector.header = State
    agent_foo.sources.avro-AppSrv-source1.selector.mapping.CA = mem-channel-1
    agent_foo.sources.avro-AppSrv-source1.selector.mapping.AZ = file-channel-2
    agent_foo.sources.avro-AppSrv-source1.selector.mapping.NY = mem-channel-1 file-channel-2
    agent_foo.sources.avro-AppSrv-source1.selector.optional.CA = mem-channel-1 file-channel-2
    agent_foo.sources.avro-AppSrv-source1.selector.mapping.AZ = file-channel-2
    agent_foo.sources.avro-AppSrv-source1.selector.default = mem-channel-1
     

    Network streams

    
    

    Flume supports the following mechanisms to read data from popular log stream types, such as:

    
    
    1. Avro
    2. Thrift
    3. Syslog
    4. Netcat
    5. exec: 
    6.   a1.sources.r1.type = exec
      a1.sources.r1.command = tail -f /opt/xfs/logs/tomcat/xfs-cs/logs/xfs_cs_41
    7. seq
    8. spool :暂时不清楚
    9. http:
    10. a1.sources.r1.type =org.apache.flume.source.http.HTTPSource

      a1.sources.r1.port= 5142

    11. tcp || syslog
    12. a1.sources.r1.type =syslogtcp

      a1.sources.r1.port= 5140    ####built log ==>  echo "hello idoall.org syslog" | nc localhost 5140



     
    bin/flume-ng agent --conf conf --conf-file example.conf --name a1 -Dflume.root.logger=INFO,console  #####--name 就是配置中的agent
  • 相关阅读:
    P4396 [AHOI2013]作业 分块+莫队
    B1965 [Ahoi2005]SHUFFLE 洗牌 数论
    B1970 [Ahoi2005]Code 矿藏编码 暴力模拟
    B1968 [Ahoi2005]COMMON 约数研究 数论
    B1237 [SCOI2008]配对 贪心 + dp
    B1108 [POI2007]天然气管道Gaz 贪心
    B1734 [Usaco2005 feb]Aggressive cows 愤怒的牛 二分答案
    B1012 [JSOI2008]最大数maxnumber 分块||RMQ
    HAOI2007 反素数
    NOIP2009 Hankson的趣味题
  • 原文地址:https://www.cnblogs.com/cbugs/p/9638483.html
Copyright © 2020-2023  润新知