#flume扇出的时候的多路复用形式
a1.sources=r1
a1.channels=c1 c2
a1.sinks=s1 s2
a1.sources.r1.type=HTTP
a1.sources.r1.port=4444
a1.sources.r1.selector.type=multiplexing
a1.sources.r1.selector.header=a
# 是a1的话就发送到c1上
a1.sources.r1.selector.mapping.a1=c1
#不是a1而是其他情况的话,就发送到c2
a1.sources.r1.selector.default=c2
a1.channels.c1.type=memory
a1.channels.c1.capacity=100
a1.channels.c1.transactionCapacity=100
a1.channels.c2.type=memory
a1.channels.c2.capacity=100
a1.channels.c2.transactionCapacity=100
a1.sinks.s1.type=avro
a1.sinks.s1.hostname=192.168.224.132
a1.sinks.s1.port=3333
a1.sinks.s2.type=avro
a1.sinks.s2.hostname=192.168.224.133
a1.sinks.s2.port=5555
a1.sources.r1.channels=c1 c2
a1.sinks.s1.channel=c1
a1.sinks.s2.channel=c2
#HTTP json字符串
curl -X POST -d '[{"headers":{"a":"a1"},"body":"hello http-flume"}]' http://192.168.224.132:4444 (最后面是ip地址和端口号)
Flume拦截器(interceptors)
格式
1、timestamp 最后输出会有timestamp时间戳
2、host 会有ip地址
host 所包含的相关指令
preserveExisting=false 你输入的请求里面如果有主机名的话,不会保存主机名 useIP =false 展示主机名(true的话就是展示ip地址)
hostHeader=host host=node52 当hostHeader改成node 则就成了node=node52
3、static 往头信息里面添加一些静态信息
static 所包含的相关指令
key 键
value 值
4、uuid type=org.apache.flume.sink.solr.morphline.UUIDInterceptor$Builder 产生一个uuid
5、type=search_replace 查找替换拦截器
所包含
searchPattern = [0-9] 匹配原则(正则表达式)
replaceString = * 要替换成的内容
例:将数字0-9都转换成*号
6、type=regex_filter 解析过滤器 (包含某某内容的话就不给通过或者给通过)
所包含
regex =^ 正则 $
excludeEvents =true/false true的话就根据正则进行拦截,不满足正则的发送 false的话就满足正则的发送,不满足正则的不发送
正则中加一个 .* 就会变成无敌的(例如:^*aaa*.*$)
Process 将sink拼成一个组来使用(主要分为failover和load_balance)
failover 优先级 有两个channel
load_balance 轮流随机发送
注意 只有一个channel
s1,s2都是从一个channel中拿的
backoff ture 开启 false 不开启(关闭)
selector =round_robin 采用轮循随机形式
来源:CSDN
作者:徐磊的博客
链接:https://blog.csdn.net/qq_44472134/article/details/104075517