flume常用配置

1、Sources类型

(1) Avro Source

a1.sources.r1.type = avro
a1.sources.r1.channels = c1 c2
a1.sources.r1.bind = 0.0.0.0
a1.sources.r1.port = 20001
a1.sources.r1.selector.type= multiplexing
# selector配置
a1.sources.r1.selector.header = logType
a1.sources.r1.selector.mapping.scsp_login = c1
a1.sources.r1.selector.mapping.scsp_auth = c2

(2)Taildir Source

可实时监控目录下文件每行数据的变化(行级)

a1.sources.r1.type = TAILDIR
a1.sources.r1.channels = c1
a1.sources.r1.positionFile = /scsp_taildir_position.json # json记录文件断点续传的位置,程序默认创建
a1.sources.r1.filegroups = f1 f2
a1.sources.r1.filegroups.f1 = /scsp_login.*.log    #正则匹配需要采集的SCSP登录日志
a1.sources.r1.headers.f1.logType = scsp_login
a1.sources.r1.filegroups.f2 = /scsp_auth.*.log    # 正则匹配需要采集的SCSP鉴权日志
a1.sources.r1.headers.f2.logType = scsp_auth
a1.sources.r1.batchSize = 1000

(3)Spooldir Source

监控目录下新增文件的变化(文件级)。

需注意该文件夹中的文件在读取过程中不能修改,且文件名也不能修改。

agent1.sources.source1.type=spooldir
#监控目录,不能为空,没有默认值。不具有监控子目录的功能,即不能递归监控
agent1.sources.source1.spoolDir=/data/vas/20003/
agent1.sources.source1.channels=channel1
#fileHeader是否在event的Header中添加文件名,boolean类型, 默认false
agent1.sources.source1.fileHeader = false
#拦截器,在event的header中添加一个key叫:timestamp,value为当前的时间戳
agent1.sources.source1.interceptors = i1
agent1.sources.source1.interceptors.i1.type = timestamp
#忽略的文件  ^ 字符串开始的标识; (.)* 任意多个任意字符; $ 字符串结束的标识
agent1.sources.source1.ignorePattern = ^(.)*\\.AVL$
#文件读取完毕后给完成文件添加的标记后缀,默认是”.COMPLETED”
agent1.sources.source1.fileSuffix = .bak

其他参数:

1、deletePolicy这是是否删除读取完毕的文件,默认是”never”,就是不删除,目前只支持”never”和“IMMEDIATE”;
2、fileHeaderKey这是event的Header中的key,value是文件名
3、batchSize这个是一次处理的记录数,默认是100;
4、inputCharset编码方式,默认是”UTF-8”;
5、trackerDirPath被处理文件元数据的存储目录,默认”.flumespool”
6、deserializerType将文件中的数据序列化成event的方式,默认是“LINE”—-org.apache.flume.serialization.LineDeserializer
7、deserializerContext这个主要用在Deserializer中设置编码方式outputCharset和文件每行最大长度maxLineLength。

(4)Syslog Sources

a1.sources.s1.type = org.apache.flume.source.SyslogTcpSource 
a1.sources.s1.port = 9511
a1.sources.s1.host = 10.xxx.xxx.xx
a1.sources.s1.channels = c1

(5)Thrift Source

没用过,后面学习后再补充

(6)Exec Source

需要指定shell命令,对日志进行读取。没用过,后面学习后再补充

 

2、Channel类型

(1) memory

a1.channels.c1.type = memory
#memory channel内部有三个队列,分别是putList,queue,takeList。
#capacity:代表queue的大小,主要的存储event的部分。
#transactionCapacity:代表putList和takeList的大小。
#默认值都是100。capacity需远大于transactionCapactiy
a1.channels.c1.capacity = 300000
a1.channels.c1.transactionCapactiy = 20000
a1.channels.c1.keep-alive = 30

 

3、Sink类型

(1) kafka

a1.sinks.image-k1.type = org.apache.flume.sink.kafka.KafkaSink
a1.sinks.image-k1.kafka.topic = image
a1.sinks.image-k1.kafka.bootstrap.servers=kafka_ip_01:9092,kafka_ip_02:9092,kafka_ip_03:9092
a1.sinks.image-k1.kafka.producer.acks = 1
a1.sinks.image-k1.flumeBatchSize = 1000
a1.sinks.image-k1.channel = c1

(2) avro

a1.sinks.s1.type = avro
a1.sinks.s1.channel = c1
a1.sinks.s1.hostname = xxx
a1.sinks.s1.port = 20001

(3) hdfs

a1.sinks.k1.type = hdfs
#写入hdfs的文件名前缀
a1.sinks.k1.hdfs.filePrefix = %H
#写入hdfs的文件名后缀,比如:.lzo .log等
a1.sinks.k1.hdfs.fileSuffix = .log
a1.sinks.k1.channel = c1
#指定文件滚动(关闭旧文件,生成新文件,记录写入新文件)的时间间隔,单位秒,默认30,设置0为禁用
a1.sinks.k1.hdfs.rollInterval = 0
#指定文件滚动的尺寸,单位字节,默认1024,设置0为禁用
a1.sinks.k1.hdfs.rollSize = 0
#指定文件滚动的数量,默认30,设置0为禁用
a1.sinks.k1.hdfs.rollCount = 0
#rollInterval  rollSize rollCount3个参数是共同工作的,例如rollInterval=0 rollSize=0 rollCount=1,意思1个event生成一个文件(创建、关闭、重命名),直到最后一个文件,一直打开直到收到新的事件,依次类推,是时间和尺寸的参数值起作用

#默认值:false,是否启用时间上的”舍弃”
a1.sinks.k1.hdfs.round = true
#默认值:1,时间上进行“舍弃”的值;
a1.sinks.k1.hdfs.roundValue = 1
#默认值:seconds,时间上进行”舍弃”的单位,包含:second,minute,hour
a1.sinks.k1.hdfs.roundUnit = hour
#以上3个配置为每隔一个小时就改目录,生成新的目录

#时区,默认值:Local Time
a1.sinks.k1.hdfs.timeZone = Asia/Shanghai
#文件格式,有3种格式可选择:SequenceFile,DataStream,CompressedStream,默认值:SequenceFile。当使用DataStream时候,文件不会被压缩,不需要设置hdfs.codeC;当使用CompressedStream时候,必须设置一个正确的hdfs.codeC值;
a1.sinks.k1.hdfs.fileType = DataStream
#如果文件在hdfs.idleTimeout秒的时间里都是闲置的,没有任何数据写入,那么当前文件关闭,滚动到下一个文件。
a1.sinks.k1.hdfs.idleTimeout=900
#每个批次刷新到HDFS上的events数量,默认值100
a1.sinks.k1.hdfs.batchSize=200000

(4) Hbase

a1.sinks.k2.type = hbase
a1.sinks.k2.table = fj_cip
a1.sinks.k2.columnFamily = cf
a1.sinks.k2.channel = c2
a1.sinks.k2.serializer.regex = (.*?)\\|(.*?)\\|(.*?)
a1.sinks.k2.serializer.colNames = name,age,class
a1.sinks.k2.serializer = org.apache.flume.sink.hbase.RegexHbaseEventSerializer
a1.sinks.k2.serializer.depositHeaders=true

 

可能存在不足,后续学习补充,欢迎指正。

 

 

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Flume是一个分布式、高可靠、高可用的日志收集系统,它的主要作用是将分布式环境中产生的海量数据进行汇聚和传输。Flume的核心组件包括Source、Channel和Sink,下面是这些组件常用配置: 1. Source组件配置:Source组件是Flume的数据输入源,常用的Source组件有ExecSource、AvroSource、NetcatSource等。它们的配置主要包括监听地址、端口号、日志格式、字符集等,具体如下: ``` # 监听地址和端口号 a1.sources.r1.type = netcat a1.sources.r1.bind = 0.0.0.0 a1.sources.r1.port = 44444 # 日志格式和字符集 a1.sources.r1.interceptors = i1 a1.sources.r1.interceptors.i1.type = regex_filter a1.sources.r1.interceptors.i1.regex = ^\[\d{4}-\d{2}-\d{2} a1.sources.r1.interceptors.i1.excludeEvents = false a1.sources.r1.interceptors.i1.charset = UTF-8 ``` 2. Channel组件配置:Channel组件是Flume的数据传输通道,常用的Channel组件有MemoryChannel、FileChannel、JDBCChannel等。它们的配置主要包括内存大小、数据保留时间、事务容量等,具体如下: ``` # 内存大小和事务容量 a1.channels.c1.type = memory a1.channels.c1.capacity = 1000 a1.channels.c1.transactionCapacity = 100 # 数据保留时间 a1.channels.c1.keep-alive = 3m ``` 3. Sink组件配置:Sink组件是Flume的数据输出目标,常用的Sink组件有HDFS Sink、Kafka Sink、Avro Sink等。它们的配置主要包括输出地址、序列化格式、批处理大小等,具体如下: ``` # 输出地址和序列化格式 a1.sinks.k1.type = hdfs a1.sinks.k1.hdfs.path = /flume/%Y/%m/%d/%H/ a1.sinks.k1.hdfs.filePrefix = events- a1.sinks.k1.hdfs.fileSuffix = .log a1.sinks.k1.hdfs.rollInterval = 3600 a1.sinks.k1.hdfs.fileType = DataStream a1.sinks.k1.serializer = org.apache.flume.sink.hdfs.AvroEventSerializer$Builder # 批处理大小 a1.sinks.k1.batchSize = 1000 ``` 以上是Flume组件常用配置的一些示例,具体的配置内容和参数取决于具体的场景和需求。Flume支持丰富的配置选项,可以根据实际需要进行灵活配置

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值