• flume


    1.flume是分布式的日志收集系统,把从各个服务器收集来的数据传送到目的地去。
    2.flume里面有个核心概念,叫做agent。agent是一个java进程,运行在日志收集节点。
    3.agent里面包含3个核心组件:source、channel、sink。
    3.1 source组件是专用于收集日志的,可以处理各种类型各种格式的日志数据,包括avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy、自定义。
        source组件把数据收集来以后,临时存放在channel中。
    3.2 channel组件是在agent中专用于临时存储数据的,可以存放在memory(内存)、jdbc(数据库)、file、自定义。
        channel中的数据只有在sink发送成功之后才会被删除。
    3.3 sink组件是用于把数据发送到目的地的组件,目的地包括hdfs、logger、avro、thrift、ipc、file、null(不处理,送过来全扔了)、hbase、solr、自定义。
    4.在整个数据传输过程中,流动的是event。事务保证是在event级别。
    5.flume可以支持多级flume的agent(支持相继),支持扇入(fan-in)、扇出(fan-out),source可以接受多个输入,sink可以输出多个目的地。
        sink只能扇入一个channel   一个source可以扇出多个channel
    
    安装flume:
    1.解压 src 和解压 bin
    2.然后用命令 cp -ri 把src目录下所有东西复制到 bin下
    
    
    6.书写配置文件example
    
    #agent1表示代理名称(source1、sink1、channel1都是属于agent1)
    agent1.sources=source1
    agent1.sinks=sink1
    agent1.channels=channel1
    
    
    #Spooling Directory是监控指定文件夹中新文件的变化,一旦新文件出现,就解析该文件内容,然后写入到channle。写入完成后,标记该文件已完成或者删除该文件。
    #配置source1
    agent1.sources.source1.type=spooldir
    agent1.sources.source1.spoolDir=/root/hmbbs
    agent1.sources.source1.channels=channel1
    agent1.sources.source1.fileHeader = false
    agent1.sources.source1.interceptors = i1
    agent1.sources.source1.interceptors.i1.type = timestamp
    
    #配置sink1
    agent1.sinks.sink1.type=hdfs
    agent1.sinks.sink1.hdfs.path=hdfs://hadoop0:9000/hmbbs
    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
    
    #配置channel1
    agent1.channels.channel1.type=file
    agent1.channels.channel1.checkpointDir=/root/hmbbs_tmp/123
    agent1.channels.channel1.dataDirs=/root/hmbbs_tmp/
    
                    agent名称       配置目录    
    7.执行命令bin/flume-ng agent -n agent1 -c conf -f conf/example -Dflume.root.logger=DEBUG,console
  • 相关阅读:
    HDOJ1251解题报告【字典树】
    HDOJ1305解题报告【字典树】
    HDOJ1087解题报告【动态规划】
    HDOJ1075解题报告【STL】
    HDOJ1172解题报告【暴力】
    ibatis 中调用存储过程
    后端开挂:3行代码写出8个接口!
    Go模拟浏览器登录操作代码
    Java架构师必须知道的 6 大设计原则
    easyUI时间戳转换(3种解决方法)
  • 原文地址:https://www.cnblogs.com/mrxiaohe/p/5274326.html
Copyright © 2020-2023  润新知