Flume拦截器、Process、多路复用的使用

我是研究僧i 提交于 2020-01-23 16:19:05
#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   采用轮循随机形式

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!