创建配置文件
我习惯将配置文件放在Flume安装目录下自建文件夹保存,这样方便后续的查找、使用。创建一个名称为logListen.conf的配置文件,配置相关内容。
[root@master ~]# mkdir /usr/local/src/flume/job
[root@master ~]# vi /usr/local/src/flume/job/logListen.conf
//基本组件
a1.sources = s1
a1.sinks = k1
a1.channels = c1
//描述source
a1.sources.s1.type = exec //使用exec时需要指定shell命令,对日志进行读取
a1.sources.s1.command = tail -f /usr/local/src/hadoop/logs/hadoop-root-datanode-master.log
//描述sink
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.path = hdfs://master:9000/flume/%Y%m%d%H //hdfs路径
a1.sinks.k1.hdfs.filePerfix = database-log- //指定上传到hdfs文件名的前缀
a1.sinks.k1.hdfs.round = true //是否按照时间滚动文件夹(根据时间创建新文件夹)
a1.sinks.k1.hdfs.roundValue = 1 //多长时间单位创建一个文件夹
a1.sinks.k1.hdfs.roundUnit = hour //重新定义时间单位
a1.sinks.k1.hdfs.useLocalTimeStamp = true //是否使用本地时间戳
a1.sinks.k1.hdfs.batchSize = 1000 //一个批次刷新到hdfs的event数量
a1.sinks.k1.hdfs.fileType = DataStream //设置文件类型,DataStream格式不会被压缩
a1.sinks.k1.hdfs.rollInterval = 600 //多长时间将临时文件滚动成一个新的文件
a1.sinks.k1.hdfs.rollSize = 1024 //当临时文件大小(byte)达到设置值时滚动成一个新的文件
a1.sinks.k1.hdfs.rollCount = 0 //设置临时文件的滚动与event的数量无关
a1.sinks.k1.hdfs.minBlockReplicas = 1 //写入hdfs文件块的最小副本数
//描述channel
a1.channels.c1.type = memory //使用内存通道
a1.channels.c1.capacity = 1000 //存储在通道中的最大event数量
a1.channels.c1.transactionCapacity = 100 //一个事务中的最大事件数
//组件连接
a1.sources.s1.channels = c1 //指定agent a1的source(源)s1的通道为c1
a1.sinks.k1.channel = c1 //指定agent a1的sink(槽)k1的通道为c1,注意sink(槽)只能有一个通道,所以连接时为channel
启动
[root@master ~]# flume-ng agent -f /usr/local/src/flume/job/logListen.conf -n a1
参数详解
- flume-ng flume启动命令
- agent 运行一个flume agent
- -f /usr/local/src/flume/job/logListen.conf 指定一个配置文件
- -n a1 agent名称(必填)