flume文件名interceptor

2024-06-16 20:08
文章标签 文件名 interceptor flume

本文主要是介绍flume文件名interceptor,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

从文件名提取日期、小时信息,决定数据发送到hdfs哪天哪小时的分区目录。

需要自定义一个拦截器

package interceptor;import java.util.List;  
import java.util.Map;  
import java.util.regex.Matcher;  
import java.util.regex.Pattern;  import org.apache.commons.lang.StringUtils;  
import org.apache.flume.Context;  
import org.apache.flume.Event;
import org.apache.flume.interceptor.Interceptor;
import org.apache.flume.interceptor.RegexExtractorInterceptorPassThroughSerializer;  
import org.apache.flume.interceptor.RegexExtractorInterceptorSerializer;  
import org.slf4j.Logger;  
import org.slf4j.LoggerFactory;  import com.google.common.base.Charsets;  
import com.google.common.base.Preconditions;  
import com.google.common.base.Throwables;  
import com.google.common.collect.Lists; /*** Interceptor that extracts matches using a specified regular expression and* appends the matches to the event headers using the specified serializers</p>* Note that all regular expression matching occurs through Java's built in* java.util.regex package</p>. Properties:* <p>* regex: The regex to use* <p>* serializers: Specifies the group the serializer will be applied to, and the* name of the header that will be added. If no serializer is specified for a* group the default {@link RegexExtractorInterceptorPassThroughSerializer} will* be used* <p>* Sample config:* <p>* agent.sources.r1.channels = c1* <p>* agent.sources.r1.type = SEQ* <p>* agent.sources.r1.interceptors = i1* <p>* agent.sources.r1.interceptors.i1.type = REGEX_EXTRACTOR* <p>* agent.sources.r1.interceptors.i1.regex = (WARNING)|(ERROR)|(FATAL)* <p>* agent.sources.r1.interceptors.i1.serializers = s1 s2* agent.sources.r1.interceptors.i1.serializers.s1.type = com.blah.SomeSerializer* agent.sources.r1.interceptors.i1.serializers.s1.name = warning* agent.sources.r1.interceptors.i1.serializers.s2.type = org.apache.flume.interceptor.RegexExtractorInterceptorTimestampSerializer* agent.sources.r1.interceptors.i1.serializers.s2.name = error* agent.sources.r1.interceptors.i1.serializers.s2.dateFormat = yyyy-MM-dd* </code>* </p>* <pre>* Example 1:* </p>* EventBody: 1:2:3.4foobar5</p> Configuration:* agent.sources.r1.interceptors.i1.regex = (\\d):(\\d):(\\d)* </p>* agent.sources.r1.interceptors.i1.serializers = s1 s2 s3* agent.sources.r1.interceptors.i1.serializers.s1.name = one* agent.sources.r1.interceptors.i1.serializers.s2.name = two* agent.sources.r1.interceptors.i1.serializers.s3.name = three* </p>* results in an event with the the following** body: 1:2:3.4foobar5 headers: one=>1, two=>2, three=3** Example 2:** EventBody: 1:2:3.4foobar5** Configuration: agent.sources.r1.interceptors.i1.regex = (\\d):(\\d):(\\d)* <p>* agent.sources.r1.interceptors.i1.serializers = s1 s2* agent.sources.r1.interceptors.i1.serializers.s1.name = one* agent.sources.r1.interceptors.i1.se

这篇关于flume文件名interceptor的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1067423

相关文章

【windows解压】解压文件名乱码

windows解压,文件名乱码但内容正常。 我也不知道什么时候设置出的问题。。。换了解压工具也没用,后来是这样解决的。 目录 1.环境和工具 2.打开【控制面板】 3.点击【时钟和区域】 4.选择【区域】 5.【管理】中【更改系统区域设置】 6.选择并确定当前的非UNICODE程序的语言为中文简体 7.重启电脑使设置生效 1.环境和工具 环境:Windows 10 工具:7

拦截器Interceptor

概念:是一种动态拦截方法调用的机制,类似于过滤器。Spring框架中提供的,用来动态拦截方法的执行。 作用:拦截请求,在指定的方法调用前后,根据业务需要执行预先设定的代码。

wget 下载 保存文件名

wget –content-disposition 保存文件名

filter,interceptor, 他们之间有什么区别

1、拦截器是基于java反射机制的,而过滤器是基于函数回调的。 2、过滤器依赖与servlet容器,而拦截器不依赖与servlet容器。 3、拦截器只能对Action请求起作用,而过滤器则可以对几乎所有请求起作用。 4、拦截器可以访问Action上下文、值栈里的对象,而过滤器不能。 5、在Action的生命周期中,拦截器可以多次调用,而过滤器只能在容器初始化时被调用一次。 过滤器是在java we

【Linux】使用Linux find 命令根据时间过滤文件并输出文件名

那年夏天我和你躲在 这一大片宁静的海 直到后来我们都还在 对这个世界充满期待 今年冬天你已经不在 我的心空出了一块 很高兴遇见你 让我终究明白 回忆比真实精彩                      🎵 王心凌《那年夏天宁静的海》 在Linux系统中,find 命令是一个强大的工具,用于搜索目录树中的文件和目录。它具有许多选项和参数,允许用户根据不同的条件来查找文件。其中一个常用的功

Safari浏览器下载文件时,文件名会URL encoded

问题:相同链接下载文件,safari文件名编码异常 解决:response.setHeader("Content-Disposition", "attachment;filename*=utf-8''" + URLEncoder.encode(filename, "UTF-8")); 问题描述 谷歌下载(正常) Safari下载(异常) 问题代码示例 @RestCo

文件重命名攻略:自定义不同类型文件名,一键去除编号,高效整理文件新秩序!

在信息爆炸的时代,我们的电脑里总是充斥着各式各样的文件,从工作文档到生活照片,从学习资料到娱乐视频,这些文件如同我们生活中的点滴记忆,承载着我们的喜怒哀乐。然而,随着文件的不断增多,如何高效、有序地管理它们,却成了许多人的难题。 首先,你需要进入文件批量改名高手的主页面,并在板块栏里选择“文件批量重命名”板块。在这里,你可以轻松实现文件的批量重命名操作,大大提高工作效率。 接下来,只需

swagger下载文件名中文乱码、swagger导出文件名乱码、swagger文件导出名称乱码、解决swagger中文下载乱码bug

文章目录 一、场景描述:swagger导出文件名称乱码二、乱码原因三、解决方法3.1、方法一、在浏览器中输入地址下载3.2、方法二、swagger升级为2.10.0及以上 四、可能遇到的问题4.1、DocumentationPluginsManager.java:152 一、场景描述:swagger导出文件名称乱码 场景描述:springboot项目集成swagger2.9.2

文件下载(下载文件名乱码解决方法)

1. 下载就是向客户端响应字节数据! 原来我们响应的都是html的字符数据! 把一个文件变成字节数组,使用response.getOutputStream()来各应给浏览器!!!2. 下载的要求 * 两个头一个流! > Content-Type:你传递给客户端的文件是什么MIME类型,例如:image/pjpeg * 通过文件名称调用ServletContext的getMim

Git是如何保存文件名和目录关系的---树对象

本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点 树对象(tree)—— 保存文件名和目录关系 树对象主要解决2个问题,:文件名的保存和文件目录关系的保存 就像下面这样 下面我们就来模拟一下构建上面这颗树,也就是模拟保存这3个文件,其中的"bak"是一个目录,下面有一个文件 首先可以看到,我们一共需要保存的是