吴超老师课程--Flume的安装和介绍
常用的分布式日志收集系统
一:flume概述
参考官方网址:http://flume.apache.org/documentation.html
flume是一个分布式的数据收集系统,具有高可靠、高可用、事务管理、失败重启等功能。数据处理速度快,完全可以用于生产环境。
flume的核心是agent。agent是一个java进程,运行在日志收集端,通过agent接收日志,然后暂存起来,再发送到目的地。
agent里面包含3个核心组件:source、channel、sink。
1 source组件是专用于收集日志的,可以处理各种类型各种格式的日志数据,包括avro、thrift、exec、jms、spooling directory、netcat、sequence generator、syslog、http、legacy、自定义。
source组件把数据收集来以后,临时存放在channel中。
2 channel组件是在agent中专用于临时存储数据的,可以存放在memory、jdbc、file、自定义。
channel中的数据只有在sink发送成功之后才会被删除。
3 sink组件是用于把数据发送到目的地的组件,目的地包括hdfs、logger、avro、thrift、ipc、file、null、hbase、solr、自定义。
二:Flume核心概念
(1)核心概念:agent、source、channel、sink、interceptor
(2)source可以接收各种格式的数据,如console、thrift、exec、httpdent
(3)sink可以发送到各种不同的目的地,如hdfs、hbase、文件、控制台等
(4)channel缓冲数据,可以放在内存、文件、数据库等
(5)interceptor可以在数据传递过程中改变其属性信息
(6)在整个数据传输过程中,流动的是event。事务保证是在event级别。
(7)flume可以支持多级flume的agent,支持扇入(fan-in)、扇出(fan-out)
三:安装步骤
1.下载apache-flume-1.4.0-bin.tar.gz和apache-flume-1.4.0-src.tar.gz
2.两个都解压缩,然后把src文件夹中的内容全部复制到bin文件夹
3.核心是写配置文件
cp -ri apache-flume-1.6.0-src/* apache-flume-1.6.0-bin/
四:执行语句
#agent1表示代理名称
agent1.sources=source1
agent1.sinks=sink1
agent1.channels=channel1
#配置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_tmp123
agent1.channels.channel1.dataDirs=/root/hmbbs_tmp
启动脚本
执行命令bin/flume-ng agent -n agent1 -c conf -f conf/example -D flume.root.logger=DEBUG,console