1. Avro Source

    监听avro端口,接收外部avro客户端数据流。跟前面的agent的Avro Sink可以组成多层拓扑结构。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    a1.sources=s1
    a1.sinks=k1
    a1.channels=c1
       
    a1.sources.s1.channels=c1
    a1.sinks.k1.channel=c1
       
    a1.sources.s1.type=avro
    a1.sources.s1.bind=vm1
    a1.sources.s1.port=41414
       
    a1.sinks.k1.type=logger
       
    a1.channels.c1.type=memory
    a1.channels.c1.capacity=1000
    a1.channels.c1.transactionCapacity=100

    启动命令:

    1
    flume-ng agent --conf conf/ --conf-file conf/a1.conf --name a1 -Dflume.root.logger=INFO,console

    测试方法:

    1
    flume-ng avro-client --host vm1 --port 41414 --filename a.log
  2. Exec Source

    启动source的时候执行unix命令,并期望不断获取数据,比如tail -f命令。

    Exec Source有可能会丢失数据,可以考虑使用Spooling Dircetory Source。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    a1.sources=s1
    a1.sinks=k1
    a1.channels=c1
       
    a1.sources.s1.channels=c1
    a1.sinks.k1.channel=c1
       
    a1.sources.s1.type=exec
    a1.sources.s1.command= tail -f /home/flume/a.log
       
    a1.sinks.k1.type=logger
       
    a1.channels.c1.type=memory
    a1.channels.c1.capacity=1000
    a1.channels.c1.transactionCapacity=100

    执行命令:

    1
    flume-ng agent --conf conf/ --conf-file conf/a1.conf --name a1 -Dflume.root.logger=INFO,console

    测试方法:

    向unix命令监听的文件追加内容,

    1
    echo 'hello, everyone!' >> a.log
  3. Spooling Directory Source

    监控某个文件夹,将新产生的文件解析成event,解析方式是可插拔的,默认是LINE,将新文件中的每行数据转换成一个event。文件解析完成后,该文件名字被追加.completed。

    Spooling Dircetory Source相对于Exec Source更可靠,它不会丢失数据(甚至被重启或杀死)。为了这种特性,只能是不可修改的、名字不重复的文件才可使用这个source:

    1)监控文件夹内的文件被flume使用后不能进行修改。

    2)文件名字不能重复,如果已经存在了xx.completed,不能在放入名字叫xx的文件。否则报错,停止。

    3)被监控文件夹里的子文件夹不处理

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    a1.sources=s1
    a1.sinks=k1
    a1.channels=c1
       
    a1.sources.s1.channels=c1
    a1.sinks.k1.channel=c1
       
    a1.sources.s1.type=spooldir
    a1.sources.s1.spoolDir=/home/flume/a
       
    a1.sinks.k1.type=logger
       
    a1.channels.c1.type=memory
    a1.channels.c1.capacity=1000
    a1.channels.c1.transactionCapacity=100

    启动命令:

    1
    flume-ng agent --conf conf/ --conf-file conf/a1.conf --name a1 -Dflume.root.logger=INFO,console

    测试方法:

    向/home/flume/a文件夹内放入文件。

  4. Netcat Source

    监听端口数据。类似于nc -k -l [host] [port]命令.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    a1.sources=s1
    a1.sinks=k1
    a1.channels=c1
       
    a1.sources.s1.channels=c1
    a1.sinks.k1.channel=c1
       
    a1.sources.s1.type=netcat
    a1.sources.s1.bind=localhost
    a1.sources.s1.port=41414
       
    a1.sinks.k1.type=logger
       
    a1.channels.c1.type=memory
    a1.channels.c1.capacity=1000
    a1.channels.c1.transactionCapacity=100

    启动命令:

    1
    flume-ng agent --conf conf/ --conf-file conf/a1.conf --name a1 -Dflume.root.logger=INFO,console

    测试方式:

    1
    telnet localhost 41414
  5. Sequence Generator Source

    不断生成从0开始的数字,主要用于测试

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    a1.sources=s1
    a1.sinks=k1
    a1.channels=c1
       
    a1.sources.s1.channels=c1
    a1.sinks.k1.channel=c1
       
    a1.sources.s1.type=seq
       
    a1.sinks.k1.type=logger
       
    a1.channels.c1.type=memory
    a1.channels.c1.capacity=1000
    a1.channels.c1.transactionCapacity=100

    启动命令:

    1
    flume-ng agent --conf conf/ --conf-file conf/a1.conf --name a1 -Dflume.root.logger=INFO,console
  6. Syslog Source

    读取syslog数据,它分为:Syslog TCP Source、Multiport Syslog TCP Source、Syslog UDP Source

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    a1.sources=s1
    a1.sinks=k1
    a1.channels=c1
       
    a1.sources.s1.channels=c1
    a1.sinks.k1.channel=c1
       
    a1.sources.s1.type=syslogtcp
    a1.sources.s1.host=localhost
    a1.sources.s1.port=41414
       
    a1.sinks.k1.type=logger
       
    a1.channels.c1.type=memory
    a1.channels.c1.capacity=1000
    a1.channels.c1.transactionCapacity=100

    启动命令:

    1
    flume-ng agent --conf conf/ --conf-file conf/a1.conf --name a1 -Dflume.root.logger=INFO,console

    测试方法:

    需要syslog服务

  7. Http Source

    通过Http获取event,可以是GET、POST方式,GET方式应该在测试时使用。一个HTTP Request被handler解析成若干个event,这组event在一个事务里。

    如果handler抛异常,http状态是400;如果channel满了,http状态是503。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    a1.sources=s1
    a1.sinks=k1
    a1.channels=c1
       
    a1.sources.s1.channels=c1
    a1.sinks.k1.channel=c1
       
    a1.sources.s1.type=http
    a1.sources.s1.port=41414
       
    a1.sinks.k1.type=logger
       
    a1.channels.c1.type=memory
    a1.channels.c1.capacity=1000
    a1.channels.c1.transactionCapacity=100

    启动命令:

    1
    flume-ng agent --conf conf/ --conf-file conf/a1.conf --name a1 -Dflume.root.logger=INFO,console

    测试方法:

    1
    curl -XPOST http://vm1:41414 -d '[{"headers" : {"timestamp" : "434324343","host" : "random_host.example.com"},"body" : "random_body"},{"headers" : {"namenode" : "namenode.example.com","datanode" : "random_datanode.example.com"},"body" : "really_random_body"}]'

    参数的格式是:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    [{
        "headers" : {
             "timestamp" : "434324343",
             "host" : "random_host.example.com"
        },
        "body" : "random_body"
    }, {
        "headers" : {
             "namenode" : "namenode.example.com",
             "datanode" : "random_datanode.example.com"
         },
        "body" : "really_random_body"
    }]

    Http Source Handler:

    Handler类型 说明
    JSONHandler 默认值,将文本输入的每行转换成一个event
    BlobHandler 读取avro文件,将其中的每条avro记录转换成一个event,每个event都附带着模式信息

转载于:https://www.cnblogs.com/moonandstar08/p/6284252.html

Flume Source 实例相关推荐

  1. Flume Source

    一 Avro Source 监听avro 端口和从外部的Avro 客户端接受event.当与其他的flumeagent内嵌的AvroSink成对时,他能创建分层集合. 1.1Required Prop ...

  2. 大数据之flume开发实例

    一.复制和多路复用(将数据按照不同类型存放到不同路径) 案例需求:使用 Flume-1 监控文件变动,Flume-1 将变动内容传递给 Flume-2,Flume-2 负责存储 到 HDFS.同时 F ...

  3. Flume之Source

    Source Flume内置了大量的Sourece,其中Avro Source(集群).Thrift Source.Spooling Directory Source(目录).Kafka Source ...

  4. flume avro java_flume之Avro Source和Avro Sink

    一.Avro Souce介绍 Flume主要的RPC Source是Avro Source Avro Source被设计为高扩展的RPC服务器端,能从其他的Flume Agent的Avro Sink或 ...

  5. 大数据——Flume组件Source、Channel和Sink具体使用

    Flume组件Source.Channel和Sink使用说明 Flume Sources Avro Source 配置范例 Thrift Source 配置范例 Exec Source 配置范例 JM ...

  6. flume变量加载存放实例

    为什么80%的码农都做不了架构师?>>>    #指定Agent的组件名称 name = valuea1.sources = r1 a1.sinks = k1 a1.channels ...

  7. Flume的Avro Sink和Avro Source研究之一: Avro Source

    问题 : Avro Source提供了怎么样RPC服务,是怎么提供的? 问题 1.1 Flume Source是如何启动一个Netty Server来提供RPC服务. 由GitHub上avro-rpc ...

  8. Flume的开发之 自定义 source 自定义 sink 自定义拦截器

    一:开发相关 加入 jar 包依赖: <dependency> <groupId>org.apache.flume</groupId> <artifactId ...

  9. Flume常用组件详解之Source

    Flume常用组件详解:Source Flume支持众多的source.sink.拦截器等组件具体实现,详细手册可参考官方文档http://flume.apache.org/FlumeUserGuid ...

最新文章

  1. 史上最全数据结构算法之递归系列学习,建议收藏!
  2. 企业网络推广——企业网络推广专员要学会打开网站优化新思路
  3. 【杂谈】万万没想到,有三还有个保密的‘朋友圈’,那里面都在弄啥!
  4. boost::rethrow_exception相关的测试程序
  5. mysql数据库的安装和配置文件_MySQL 数据库安装与配置详解
  6. 将jOOQ与Spring结合使用:配置
  7. 数据结构链表之符号表,Python3实现——8
  8. 十二、实战启动页(一)
  9. CCNA2.0笔记_ACL
  10. 最新手机号段归属地数据库 (2019年6月版) 430826行
  11. matlab uicontrol 居中,uicontrol 用法【matlab】
  12. 西门子PLC是怎么控制伺服电机的?
  13. 每天定投10元基金有意义吗?
  14. HTTP协议 (三) 代理
  15. 解决warnings potentially fixable with the `--fix`
  16. 基于MC9S12G使用编码器(控制)输出PWM
  17. 带图片的日历html,HTML漂亮的日历插件
  18. Linux下利用nc命令来监控检测服务器的端口使用情况
  19. PX4 ROS学习资源汇总
  20. java全栈系列之JavaSE-面向对象(方法的定义与调用)030

热门文章

  1. 使用mybatis generator 生成annotation形式的mapper
  2. Android 7.1.1 去感叹号
  3. Codeforces A - Bear and Prime 100(交互题)
  4. Akamai托管服务应对多重网络性能挑战
  5. mysql 分区表详解
  6. Python 读写文件和file对象(转)
  7. css实现透明度(兼容IE6、火狐等)
  8. C/C++面试题:什么是COM和ActiveX,简述DCOM。
  9. [导入]PHP通用分页类
  10. 你知道我们在等你吗?