有大量关于在 CDH3 中以故障转移模式配置 Flume (0,9x) 节点的信息。
但是 CDH4 中 Flume (1.x) 配置的配置格式是完全不同的。如何在故障转移模式下配置 Flume 1.x (flume-ng)?
有大量关于在 CDH3 中以故障转移模式配置 Flume (0,9x) 节点的信息。
但是 CDH4 中 Flume (1.x) 配置的配置格式是完全不同的。如何在故障转移模式下配置 Flume 1.x (flume-ng)?
在 flume-ng 中,您可以定义一组所谓的“接收器”(事件消费者),它们都连接到一个通道,并为该组指定“故障转移”策略,因此如果其中一个接收器发生故障,事件将被重定向到其他。
假设我们有两个接收器 - main_sink和backup_sink,它们都配置为使用来自一个通道的事件并将事件传递到某个目的地。我们将main_sink的优先级设置为大于backup_sink的优先级,这样 Flume 就会将事件从通道转发到main_sink,只要它工作正常。但是,如果main_sink失败,Flume 会将其降级到失败的 sinks 池中,在那里它将被分配一个冷却时间。同时来自频道的事件将被转发到backup_sink。
完整示例可能如下所示:
# channels
agent.channels = mem_channel
agent.channels.mem_channel.type = memory
# sources
agent.sources = event_source
agent.sources.event_source.type = avro
agent.sources.event_source.bind = 127.0.0.1
agent.sources.event_source.port = 10000
agent.sources.event_source.channels = mem_channel
# sinks
agent.sinks = main_sink backup_sink
agent.sinks.main_sink.type = avro
agent.sinks.main_sink.hostname = 127.0.0.1
agent.sinks.main_sink.port = 10001
agent.sinks.main_sink.channel = mem_channel
agent.sinks.backup_sink.type = avro
agent.sinks.backup_sink.hostname = 127.0.0.1
agent.sinks.backup_sink.port = 10002
agent.sinks.backup_sink.channel = mem_channel
# sink groups
agent.sinkgroups = failover_group
agent.sinkgroups.failover_group.sinks = main_sink backup_sink
agent.sinkgroups.failover_group.processor.type = failover
agent.sinkgroups.failover_group.processor.priority.main_sink = 10
agent.sinkgroups.failover_group.processor.priority.backup_sink = 5
您可以在Flume 用户指南中找到有关该主题的更多详细信息。