zoukankan      html  css  js  c++  java
  • [BD] Flume

    什么是Flume

    • 采集日志,存在HDFS上
    • 分布式、高可用、高可靠的海量日志采集、聚合和传输系统
    • 支持在日志系统中定制各类数据发送方,用于收集数据
    • 支持对数据进行简单处理,写到数据接收方

    组件

    • source:数据的来源
    • channel:数据传输通道
    • sink:数据落盘处

    配置

    • 配置文件
     1 #bin/flume-ng agent -n a4 -f myagent/a4.conf -c conf -Dflume.root.logger=INFO,console
     2 #定义agent名, source、channel、sink的名称
     3 a4.sources = r1
     4 a4.channels = c1
     5 a4.sinks = k1
     6 
     7 #具体定义source
     8 a4.sources.r1.type = spooldir
     9 a4.sources.r1.spoolDir = /root/training/logs
    10 
    11 #具体定义channel
    12 a4.channels.c1.type = memory
    13 a4.channels.c1.capacity = 10000
    14 a4.channels.c1.transactionCapacity = 100
    15 
    16 #定义拦截器,为消息添加时间戳
    17 a4.sources.r1.interceptors = i1
    18 a4.sources.r1.interceptors.i1.type = org.apache.flume.interceptor.TimestampInterceptor$Builder
    19 
    20 
    21 #具体定义sink
    22 a4.sinks.k1.type = hdfs
    23 a4.sinks.k1.hdfs.path = hdfs://192.168.56.111:9000/flume/%Y%m%d
    24 a4.sinks.k1.hdfs.filePrefix = events-
    25 a4.sinks.k1.hdfs.fileType = DataStream
    26 
    27 #不按照条数生成文件
    28 a4.sinks.k1.hdfs.rollCount = 0
    29 #HDFS上的文件达到128M时生成一个文件
    30 a4.sinks.k1.hdfs.rollSize = 134217728
    31 #HDFS上的文件达到60秒生成一个文件
    32 a4.sinks.k1.hdfs.rollInterval = 60
    33 
    34 #组装source、channel、sink
    35 a4.sources.r1.channels = c1
    36 a4.sinks.k1.channel = c1
    View Code

    命令

    • 启动:bin/flume-ng agent -n a4 -f myagent/a4.conf -c conf -Dflume.root.logger=INFO,console

    应用

    • 采集网络传输信息
      • node01安装flume,写配置文件,开启flume
      • node02中telnet给node01发送信息
    • 采集特定目录下新文件内容到HDFS
    • 高可用(failover)
      • agent1.sinkgroups.g1.processor.type = failover
      • 停掉node02的agent,自动切换到node03上的agent
      • 启动node02的agent,由于node02优先级高,自动切换回node02上的agent  

    • 负载均衡(load balancer)
      • a1.sinkgroups.g1.processor.type = load_balance

    • 静态拦截器
      • 将不同数据源的数据放在不同目录
    • 自定义拦截器
      • 数据采集后,将不需要的数据过滤掉,并将指定的第一个字段进行加密,再存到hdfs上
      • a1.sources.r1.interceptors.i1.type =com.kkb.flume.interceptor.MyInterceptor$MyBuilder
      • a1.sources.r1.interceptors.i1.encrypted_field_index=0
      • a1.sources.r1.interceptors.i1.out_index=3

     

    • 自定义source
      • MySql数据采集到HDFS

    参考

    官方文档

    http://flume.apache.org/releases/content/1.9.0/FlumeUserGuide.html

    快速入门

    https://www.iteye.com/blog/manzhizhen-2298394 

    flume插件

    https://www.cnblogs.com/mingfengshan/p/6853777.html

    flume监控spoolDir日志到HDFS

    https://blog.csdn.net/qq_20641565/article/details/52807776

  • 相关阅读:
    Window 窗口类
    使用 Bolt 实现 GridView 表格控件
    lua的table库
    Windows编程总结之 DLL
    lua 打印 table 拷贝table
    使用 xlue 实现简单 listbox 控件
    使用 xlue 实现 tips
    extern “C”
    COleVariant如何转换为int double string cstring
    原来WIN32 API也有GetOpenFileName函数
  • 原文地址:https://www.cnblogs.com/cxc1357/p/12709784.html
Copyright © 2011-2022 走看看