RollingFileSink二次开发

flume 1.8 file_roll相关参数配置

把 Event 存储到本地文件系统。 

属性

默认值

解释

channel

与 Sink 绑定的 channel

type

组件类型,这个是: file_roll.

sink.directory

Event 将要保存的目录

sink.pathManager

DEFAULT

配置使用哪个路径管理器,这个管理器的作用是按照规则生成新的存储文件名称,可选值有: default 、 rolltime

default规则:prefix+当前毫秒值+“-”+文件序号+“.”+extension;

rolltime规则:prefix+yyyyMMddHHmmss+“-”+文件序号+“.”+extension;

注:prefix 和 extension 如果没有配置则不会附带

sink.pathManager.extension

如果上面的 pathManager 使用默认的话,可以用这个属性配置存储文件的扩展名

sink.pathManager.prefix

如果上面的 pathManager 使用默认的话,可以用这个属性配置存储文件的文件名的固定前缀

sink.rollInterval

30

表示每隔30秒创建一个新文件进行存储。如果设置为0,表示所有 Event 都会写到一个文件中。

sink.serializer

TEXT

配置 Event 序列化器,可选值有:text 、 header_and_text 、 avro_event 或者自定义实现了 EventSerializer.Builder 接口的序列化器的全限定类名.。 text 只会把 Event 的 body 的文本内容序列化; header_and_text 会把 header 和 body 内容都序列化。

batchSize

100

每次请求批处理的 Event 数

配置范例:

a1.channels = c1
a1.sinks = k1
a1.sinks.k1.type = file_roll
a1.sinks.k1.channel = c1
a1.sinks.k1.sink.directory = /var/log/flume

 

二次开发

 

因项目要求:

1、根据时间动态生成日志目录:/logs/yyyyMM/yyyyMMdd/HH

2、文件名随时间动态生成:a_yyyyMMddHH_LOG-11001-UserStatusChange_00_001.dat        ——yyyyMMddHH为年月日小时

 

现有配置无法满足要求,所以对RollingFileSink进行二次开发,代码如下:

package com.demo.flume.sink;

import com.google.common.base.Preconditions;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import org.apache.flume.*;
import org.apache.flume.conf.Configurable;
import org.apache.flume.formatter.output.PathManager;
import org.apache.flume.formatter.output.PathManagerFactory;
import org.apache.flume.instrumentation.SinkC
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值