采集源source
下沉目标sink(可以时hdfs,kafka,hive)
source和sink之间传递的通道channel
一、flume采集数据到HDFS的配置
agent1.sources = source1
agent1.sinks = sink1
agent1.channels = channel1
#配置监控路径或者监控的文件(监控文件需要动态监听)
#跟踪文件内容使用exec,跟踪文件夹使用spooldir
agent1.sources.source1.type = exec
#监控文件内容
agent1.sources.source1.command = tail -F /root/logs/access.log
#监控文件夹
agent1.sources.source1.spoolDir = /root/logs/
#使用的通道
agent1.sources.source1.channels = channel1
#使用监控文件夹的文件名作为上传文件名
agent1.sources.source1.fileHeader = true
#修改被采集后文件名变为
agent1.sources.source1.fileSuffix = .FINISHED
#配置下称目标位置
agent1.sinks.sink1.type = hdfs
#文件的下沉地址
agent1.sinks.sink1.hdfs.path = hdfs://hdp-1:9000/flume/%y-%m-%d/%H%M/
#上传文件的后缀,如过source采集文件的fileHeader设为了true,这里可能有问题
agent1.sinks.sink1.hdfs.fileSuffix = .log
#表示到了需要触发的时间时,是否要更新文件夹,true:表示要更新
a1.sinks.k1.hdfs.round = true
##表示每隔1分钟改变一下文件夹
a1.sinks.k1.hdfs.roundValue = 1
##切换文件的时候单位是分钟
a1.sinks.k1.hdfs.roundUnit = minute
##表示只要过了3秒钟,就切换生成一个新的文件
a1.sinks.k1.hdfs.rollInterval = 3
##如果记录的文件大于20字节时切换一次
a1.sinks.k1.hdfs.rollSize = 20
##当写了5个事件时触发
a1.sinks.k1.hdfs.rollCount = 5
##收到了多少条消息往hdfs中追加内容
a1.sinks.k1.hdfs.batchSize = 1
#使用本地时间戳
a1.sinks.k1.hdfs.useLocalTimeStamp = true
#生成的文件类型,默认是Sequencefile,可用DataStream,则为普通文本
a1.sinks.k1.hdfs.fileType = DataStream
# channel组件配置
ag1.channels.channel1.type = memory
ag1.channels.channel1.capacity = 500000 ## event条数 在通道中暂存的最大数量 数量要大于sink的batchSize的100条
ag1.channels.channel1.transactionCapacity = 600 ##flume事务控制所需要的缓存容量600条event 多少条记录归拢到一个事务中
agent1.sources.source1.channels = channel1
agent1.sinks.sink1.channel = channel1
flume下沉到kafka
#设置Kafka接收器
agent1.sinks.sink1.type= org.apache.flume.sink.kafka.KafkaSink
#设置Kafka的broker地址和端口
agent.sinks.sink1.brokerList=bigdata3:9092
#设置Kafka的Topic
agent.sinks.sink1.topic=kafkatest
#设置序列化方式
agent.sinks.sink1.serializer.class=kafka.serializer.StringEncoder