【flume】自定义source

本文介绍了如何创建并配置自定义的Flume source来监听和收集Nginx的日志信息。首先,通过编写Java代码实现自定义source,然后将其打包成jar文件上传到Flume的lib目录。接着,在Flume的conf目录下创建特定的配置文件`nginx-logger.conf`,启动Nginx和Flume服务,最后验证Flume是否能正确捕获并处理Nginx的日志。
摘要由CSDN通过智能技术生成

1.java代码

package cn.eud360.flume.source;

import org.apache.commons.io.FileUtils;
import org.apache.flume.Context;
import org.apache.flume.Event;
import org.apache.flume.EventDrivenSource;
import org.apache.flume.channel.ChannelProcessor;
import org.apache.flume.conf.Configurable;
import org.apache.flume.event.EventBuilder;
import org.apache.flume.source.AbstractSource;
import org.apache.flume.source.ExecSource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.charset.Charset;
import java.util.concurrent.Executor;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;

/**
 * 用来监听一个文件的source
 * 特点:实时监听一个文件,只要有有新的内容产生,则收集起来
 * 可以记录偏移量信息(读到哪一行),如果flume出现问题,那么重启以后,需要接着上一次的偏移量继续读取
 */
public class TailFileSource extends AbstractSource implements EventDrivenSource, Configurable {
    private static final Logger logger = LoggerFactory.getLogger(ExecSource.class);
    //数据从哪里来
    private String filePath;

    //偏移量存到那里去
    private String posiPath;

    //采集数据间隔时间
    private Long interval;

    //数据字符集
    private String charset;

    private FileRunner fileRunner;

    private ExecutorService executor;

    /**
     * a1.sources.r1.type = cn.edu360.flume.source.TailFileSource
     * a1.sources.r1.filePath = /root/modules/nginx-1.14.2/logs/access.log
     * a1.sources.r1.posiFile = /root/modules/apache-flume-1.8.0-bin/posi.txt
     * a1.sources.r1.interval = 2000
     * a1.sources.r1.charset 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值