大数据课程E6——Flume的Processor
文章作者邮箱:yugongshiye@sina.cn 地址:广东惠州
▲ 本章节目的
⚪ 了解Processor的概念和配置参数;
⚪ 掌握Processor的使用方法;
⚪ 掌握Processor的Default Processo;
⚪ 掌握Processor的Load Balance Processo;
一、Failover Sink Processor
1. 概述
1. Failover Sink Processor将多个Sink绑定到一个组中,同一个组中的Sink需要指定优先级。
2. 只要高优先级的Sink存活,那么数据就不会发送给低优先级的Sink。
2. 配置属性
属性 |
解释 |
sinks |
要绑定到一个组中的sink |
processor.type |
必须是failover |
processor.priority.<sinkName> |
指定Sink的优先级 |
processor.maxpenalty |
等待存活的时间 |
3. 案例
1. 编写格式文件,添加如下内容:
a1.sources = s1
a1.channels = c1 c2
a1.sinks = k1 k2
# 给Sinkgroup起名
a1.sinkgroups = g1
# 给Sinkgroup绑定Sink
a1.sinkgroups.g1.sinks = k1 k2
# 指定Sinkgroup的类型
a1.sinkgroups.g1.processor.type = failover
# 给每一个Sink指定优先级
a1.sinkgroups.g1.processor.priority.k1 = 7
a1.sinkgroups.g1.processor.priority.k2 = 2
# 指定存活等待时间
a1.singroups.g1.processor.maxpenalty = 10000
a1.sources.s1.type = netcat
a1.sources.s1.bind = 0.0.0.0
a1.sources.s1.port = 8090
a1.channels.c1.type = memory
a1.channels.c2.type = memory
a1.sinks.k1.type = avro
a1.sinks.k1.hostname = hadoop02
a1.sinks.k1.port = 8090
a1.sinks.k2.type = avro
a1.sinks.k2.hostname = hadoop03
a1.sinks.k2.port = 8090
a1.sources.s1.channels = c1 c2
a1.sinks.k1.channel = c1
a1.sinks.k2.channel = c2
2. 启动Flume:
../bin/flume-ng agent -n a1 -c ../conf -f failover.conf -
Dflume.root.logger=INFO,console
二、其他Processor
1. Default Processor
1. 在Flume中,如果不指定,那么默认使用的就是Default Processor。
2. 在Default Processor的模式下,每一个Sink都对应了一个单独的Sinkgroup,即有几个Sink就有几个Sinkgroup。
3. 这个Default Processor不需要进行任何的配置。
2. Load Balance Processor
1. Load Balancing Processor进行负载均衡的Processor,在数据量较大的时候,可以考虑使用。
2. Flume中提供了两种负载均衡的模式:round_robin(轮询),random(随机)。
3. Flume原生提供的负载均衡的Processor并不好用。