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)。即支持将多个agent串联起来。

    这里写图片描述

这里写图片描述

  1. 书写配置文件example
//设置source名称,可多个
agent1.sources = source1
//设置channel名称,可多个
agent1.channels = channel1
//设置sink名称,可多个
agent1.sinks = sink1

source设置:

//Spooling Directory是监控指定文件夹中新文件的变化,一旦新文件出现,就解析该文件内容,然后写入到channle。写入完成后,标记该文件已完成或者删除该文件。
agent1.sources.source1.type = spooldir
//监控目录
agent1.sources.source1.spoolDir = /opt/temp/flume_source_test
//当文件处理成功之后,在将原文件名加后缀,表示已处理完成
agent1.sources.source1.fileSuffix = _finish
//关联channel
agent1.sources.source1.channels = channel1
//是否要添加一个标题存储绝对路径的文件名
agent1.sources.source1.fileHeader = false

sink设置(文件):

//存储在本地文件系统事件
agent1.sinks.sink1.type = file_roll
//存储目录
agent1.sinks.sink1.sink.directory = /opt/temp/flume_sink_test
//关联channel
agent1.sinks.sink1.channel = channel1

sink设置(异步Hbase):

//异步hbase
login_agent.sinks.hbase_sink.type = asynchbase
//表名
login_agent.sinks.hbase_sink.table = ana_user_login
//列族名
login_agent.sinks.hbase_sink.columnFamily = login
//hbase zookeeper设置
login_agent.sinks.hbase_sink.zookeeperQuorum = cdh4tm:2181
//序列化类全路径
login_agent.sinks.hbase_sink.serializer = vlife.aaron.flume.serializer.LoginKafkaSerializer
//编写文件数量
login_agent.sinks.hbase_sink.batchSize = 500

channel设置(内存形式):

//事件存储在内存
agent1.channels.channel1.type = memory
//事件存储在通道的最大数量
agent1.channels.channel1.capacity = 100

channe设置(文件形式):

//事件存储到文件中
agent1.channels.channel1.type=file
//检查文件存储的目录
agent1.channels.channel1.checkpointDir=/root/hmbbs_tmp/123
//存储日志文件目录
agent1.channels.channel1.dataDirs=/root/hmbbs_tmp/
  1. 执行命令bin/flume-ng agent -n agent1 -c conf -f conf/example -Dflume.root.logger=DEBUG,console
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值