大数据课程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并不好用。