Flume采集方案第一关
#定义三大组件的名称 和关联
a1.sources = r1
a1.channels = c1
a1.sinks = k1
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
?
#定义Source的相关属性
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /opt/flume/flumedata/aa.txt
?
#定义channel的相关属性
a1.channels.c1.type = memory
a1.channels.c1.capacity=1000
a1.channels.c1.transactionCapacity=100
?
#定义Sink的相关属性
a1.sinks.k1.type=hdfs
a1.sinks.k1.hdfs.path = hdfs://localhost:9000/flume/%Y-%m-%d/%H-%M
a1.sinks.k1.hdfs.filePrefix = wcm
a1.sinks.k1.hdfs.fileSuffix = .wsy
#下面三个条件满足其一,就会产生新文件
#新文件产生的时间周期,单位是秒, 如果设置为0表示不会产生新文件。
a1.sinks.k1.hdfs.rollInterval = 6
#当前文件达到1000字节,就会产生新文件
a1.sinks.k1.hdfs.rollSize = 1000
#当前文件的event数量达到10条,就会产生新文件
a1.sinks.k1.hdfs.rollCount = 10
#如果writeFormat指定了Text,那么fileType必须是DataStream
a1.sinks.k1.hdfs.writeFormat = Text
a1.sinks.k1.hdfs.fileType = DataStream
?
#round的作用,用于指定是否滚动文件夹 false 表示不滚动文件夹
a1.sinks.k1.hdfs.round = true
#设置文件夹滚动的时间单位
a1.sinks.k1.hdfs.roundUnit = minute
#设置文件夹固定的时间数字大小
a1.sinks.k1.hdfs.roundValue = 2
#如果目录上设置了时间格式字符串,比如%Y等,那么下面的属性应该设置为true,除非event的head里有一个叫timestamp的消息头
a1.sinks.k1.hdfs.useLocalTimeStamp = true
#配置source和sink绑定到channel
a1.sinks.hdfs-k1.channel = c1
a1.sources.taildir-r1.channels = c1
第二关
#命名,并关联
a1.sources=r1
a1.channels=c1
a1.sinks=s1
a1.sources.r1.channels=c1
a1.sinks.s1.channel=c1
#设置spool源
#当前source的类型
a1.sources.r1.type=spooldir
#要从中读取文件的目录
a1.sources.r1.spoolDir=/opt/flume/flumedata
#附加到完全读取的文件的后缀 默认值:.COMPLETED
a1.sources.r1.fileSuffix=.dfs
#何时删除已完成的文件, never or immediate 默认值:never
a1.sources.r1.deletePolicy=never
#是否添加存储绝对路径文件名的头文件 默认值:false
a1.sources.r1.fileHeader=false
#标题键,当将绝对路径文件名附加到事件标题时使用 默认值:file//标题键,当将绝对路径文件名附加到事件标题时使用 默认值:file
a1.sources.r1.fileHeaderKey=file
#是否添加存储文件基本名的头文件。 默认值:false
a1.sources.r1.basenameHeader=true
#当将文件的基本名称附加到事件标头时使用的标头键。 默认值:basename
a1.sources.r1.basenameHeaderKey=filename
#批处理传输到通道的粒度 默认值:100
a1.sources.r1.batchSize=100
#将输入文件视为文本的反序列化器使用的字符集。 默认值:UTF-8
a1.sources.r1.inputCharset=UTF-8
#提交缓冲区可以容纳的最大行数
a1.sources.r1.bufferMaxLines=1000
#设置file的channel
a1.channels.c1.type=file
#设置hdfs的sink
#当前sink的类型
a1.sinks.s1.type=hdfs
#hdfs上的目录路径
a1.sinks.s1.hdfs.path=hdfs://localhost:9000/flume/hdfs/%Y
#在替换转义序列时,使用本地时间(而不是事件头的时间戳) 默认值:false
a1.sinks.s1.hdfs.useLocalTimeStamp=true
#附加到文件的前缀
a1.sinks.s1.hdfs.filePrefix=%{filename}
#附加到文件的后缀(例如:.avro -注意:句点不会自动添加)
a1.sinks.s1.hdfs.fileSuffix=.dfs
#在滚动当前文件之前等待的秒数(0 =根据时间间隔永不滚动) 默认值:30
a1.sinks.s1.hdfs.rollInterval=30
#要触发滚动的文件大小,以字节为单位(0:永远不要基于文件大小进行滚动) 默认值:1024
a1.sinks.s1.hdfs.rollSize=100
#滚前写入文件的事件数(0 =从不基于事件数滚) 默认值:10
a1.sinks.s1.hdfs.rollCount=10
#在将文件刷新到HDFS之前写入文件的事件数 默认值:100
a1.sinks.s1.hdfs.batchSize=100
#序列文件(SequenceFile)记录的格式。Text或Writable在使用Flume创建数据文件之前设置为Text,否则这些文件不能被Apache Impala(孵化)或Apache Hive读取。 默认值:Writable
a1.sinks.s1.hdfs.writeFormat=Text
#文件格式:SequenceFile, DataStream或CompressedStream
a1.sinks.s1.hdfs.fileType=DataStream
#是否应该将时间戳四舍五入(如果为真,则影响除%t之外的所有基于时间的转义序列) 默认值:false
a1.sinks.s1.hdfs.round=false
#将此(在使用hdfs.roundUnit配置的单元中)分为以上多个(在单元配置的单元中),小于当前时间 默认值:1
a1.sinks.s1.hdfs.roundValue=2
#四舍五入的单位,时间,分钟,或小时 默认值:second
a1.sinks.s1.hdfs.roundUnit=minute