Flume个人心得笔记之Interceptor安装

           Flume个人心得笔记之Interceptor安装

目录

           Flume个人心得笔记之Interceptor安装

一.概述

二.Timestamp Interceptor

一、概述

二、可配置项说明

三、配置示例

1.创建文件

2.配置第一个节点,2,3默认扇出

3.启动

4.传输数据

5.接收数据 -时间检测

7.启动

8.传输数据

9.查看HDFS接收数据

三.Host Interceptor

一、概述

二、可配置项说明

三、配置示例

四.Static Interceptor

一、概述

二、可配置项说明

三、配置示例

五.UUID Interceptor

一、概述

二、可配置项说明

三、配置示例

六.Search And Replace Interceptor

一、概述

二、可配置项说明

三、配置示例

1.编辑文本

2.添加配置

3.启动

4.传输数据

5.接收数据

七.Regex Filtering Interceptor

一、概述

二、可配置项说明

 三、配置示例

1.编辑文本

2.配置文件

3.启动

4.传输数据

5.接收数据

八.Regex Extractor Interceptor

一、概述

二、可配置项说明

三、配置示例


一.概述

  1. Flume有能力在运行阶段修改/删除Event,这是通过拦截器(Interceptors)来实现的
  2. 拦截器需要实现org.apache.flume.interceptor.Interceptor接口
  3. 拦截器可以修改或删除事件基于开发者在选择器中选择的任何条件
  4. 拦截器采用了责任链模式,多个拦截器可以按指定顺序拦截
  5. 一个拦截器返回的事件列表被传递给链中的下一个拦截器
  6. 如果一个拦截器需要删除事件,它只需要在返回的事件集中不包含要删除的事件即可
  7. 如果要删除所有事件,只需返回一个空列表

二.Timestamp Interceptor

一、概述

  1. 这个拦截器在事件头中插入以毫秒为单位的当前处理时间
  2. 头的名字为timestamp,值为当前处理的时间戳
  3. 如果在之前已经有这个时间戳,则保留原有的时间戳

二、可配置项说明

配置项

说明

type

timestamp

preserveExisting

false        如果时间戳已经存在是否保留

三、配置示例

1.创建文件

vim timein.conf

2.配置第一个节点,2,3默认扇出

i1.type = timestamp  

3.启动

4.传输数据

5.接收数据 -时间检测

6.把数据放到HDFS上,按天存放

7.启动

前提HDFS是启动的,可以直接启动Headoop集群

8.传输数据

9.查看HDFS接收数据

按天存放   %Y-%m-%D

三.Host Interceptor

一、概述

  1. 这个拦截器插入当前处理Agent的主机名或ip
  2. 头的名字为host或配置的名称
  3. 值是主机名或ip地址,基于配置

二、可配置项说明

配置参数

说明

type

host

preserveExisting

false        如果主机名已经存在是否保留

useIP

true        如果配置为true则用IP,配置为false则用主机名

hostHeader

host        加入头时使用的名称

三、配置示例

#配置Agent a1 的组件

a1.sources=r1

a1.sinks=s1 s2

a1.channels=c1 c2

#描述/配置a1的source1

a1.sources.r1.type=http

a1.sources.r1.port=8888

a1.sources.r1.interceptors=i1

a1.sources.r1.interceptors.i1.type=host

#描述sink

a1.sinks.s1.type=avro

a1.sinks.s1.hostname=192.168.234.212

a1.sinks.s1.port=8090

a1.sinks.s2.type=avro

a1.sinks.s2.hostname=192.168.234.213

a1.sinks.s2.port=8090

#描述内存channel

a1.channels.c1.type=memory

a1.channels.c1.capacity=1000

a1.channels.c1.transactionCapacity=100

a1.channels.c2.type=memory

a1.channels.c2.capacity=1000

a1.channels.c2.transactionCapacity=100

#为channel 绑定 source和sink

a1.sources.r1.channels=c1 c2

a1.sinks.s1.channel=c1

a1.sinks.s2.channel=c2

不常用,不演示了

四.Static Interceptor

一、概述

  1. 此拦截器允许用户增加静态头信息使用静态的值到所有事件
  2. 目前的实现中不允许一次指定多个头
  3. 如果需要增加多个静态头可以指定多个Static interceptors

二、可配置项说明

配置项

说明

type

static

preserveExisting

true

key

key        要增加的头名

value

value        要增加的头值

三、配置示例

#配置Agent a1 的组件

a1.sources=r1

a1.sinks=s1 s2

a1.channels=c1 c2

#描述/配置a1的source1

a1.sources.r1.type=http

a1.sources.r1.port=8888

a1.sources.r1.interceptors=i1

a1.sources.r1.interceptors.i1.type=static

a1.sources.r1.interceptors.i1.key=addr

a1.sources.r1.interceptors.i1.value=beijing

#描述sink

a1.sinks.s1.type=avro

a1.sinks.s1.hostname=192.168.234.212

a1.sinks.s1.port=9999

a1.sinks.s2.type=avro

a1.sinks.s2.hostname=192.168.234.213

a1.sinks.s2.port=9999

#描述内存channel

a1.channels.c1.type=memory

a1.channels.c1.capacity=1000

a1.channels.c1.transactionCapacity=100

a1.channels.c2.type=memory

a1.channels.c2.capacity=1000

a1.channels.c2.transactionCapacity=100

#为channel 绑定 source和sink

a1.sources.r1.channels=c1 c2

a1.sinks.s1.channel=c1

a1.sinks.s2.channel=c2

五.UUID Interceptor

一、概述

  1. 这个拦截器在所有事件头中增加一个全局一致性标志,其实就是UUID

二、可配置项说明

配置项

说明

type

org.apache.flume.sink.solr.morphline.UUIDInterceptor$Builder

headerName

id        头名称

preserveExisting

true        如果头已经存在,是否保留

prefix

“”        在UUID前拼接的字符串前缀

三、配置示例

六.Search And Replace Interceptor

一、概述

  1. 这个拦截器提供了简单的基于字符串的正则搜索和替换功能

二、可配置项说明

配置项

说明

type

search_replace

searchPattern

要搜索和替换的正则表达式

replaceString

要替换为的字符串

charset        

UTF-8        字符集编码,默认utf-8

三、配置示例

1.编辑文本

2.添加配置

3.启动

4.传输数据

5.接收数据

七.Regex Filtering Interceptor

一、概述

  1. 此拦截器通过解析事件体去匹配给定正则表达式来筛选事件
  2. 所提供的正则表达式即可以用来包含或刨除事件

二、可配置项说明

配置项

说明

type

regex_filter

regex

”.*” 所要匹配的正则表达式

excludeEvents

false        如果是true则刨除匹配的事件,false则包含匹配的事件。

 三、配置示例

1.编辑文本

vim regexin.conf

2.配置文件

3.启动

4.传输数据

5.接收数据

有数字,刨除,不接收

八.Regex Extractor Interceptor

一、概述

  1. 使用指定正则表达式匹配事件,并将匹配到的组作为头加入到事件中
  2. 它也支持插件化的序列化器用来格式化匹配到的组在加入他们作为头之前

二、可配置项说明

配置项

说明

type

regex_extractor

regex

要匹配的正则表达式

serializers

匹配对象列表

三、配置示例

# 01 define agent name, source/sink/channel
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# 02 source,http,jsonhandler
a1.sources.r1.type = http
a1.sources.r1.bind = master
a1.sources.r1.port = 6666
a1.sources.r1.handler = org.apache.flume.source.http.JSONHandler
# 03 regex extractor interceptor,match event body to extract character and digital
a1.sources.r1.interceptors = i1 
a1.sources.r1.interceptors.i1.type = regex_extractor
a1.sources.r1.interceptors.i1.regex = (^[a-zA-Z]*)\\s([0-9]*$)  # regex匹配并进行分组,匹配结果将有两个部分, 注意\s空白字符要进行转义
# specify key for 2 matched part
a1.sources.r1.interceptors.i1.serializers = s1 s2
# key name
a1.sources.r1.interceptors.i1.serializers.s1.name = word
a1.sources.r1.interceptors.i1.serializers.s2.name = digital
# 04 logger sink
a1.sinks.k1.type = logger
# 05 channel,memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
# 06 bind source,sink to channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值