美文网首页
Flume-1.8.0(八)Process

Flume-1.8.0(八)Process

作者: _大叔_ | 来源:发表于2021-07-30 13:23 被阅读0次

    概述

    Sink Group 允许用户将多个Sink组合成一个实体。Flume Sink Process 可以通过切换组内Sink用来实现负载均衡的效果,或在一个Sink故障时切换到另一个Sink。

    Failover Sink Processor 故障恢复

    Failover Sink Processor 维护一个sink们的优先表。确保只要一个可用的,事件就可以被处理。失败处理原则是,为失效的sink指定一个冷却时间,在冷却时间达到后再重新使用,这里会有个问题就是重新启动的flume和备用的flume都会接收到信息。当node104宕机不在工作,node113就会被执行工作。

    sink们可以被配置一个优先级,数字越大优先级越高。

    如果sink们发送时间失败,则下一个最高优先级的sink奖会尝试接着发送事件。

    如果没有指定优先级,则优先级顺序取决于sink们的配置顺序,先配置的默认优先级高于后配置的。

    在配置过程中,设置一个 group processor,并且为每个sink指定一个优先级,优先级必须是唯一的。

    配置

    # a1 代表一个flume 给每个组件匿名
    a1.sources=r1
    a1.channels=c1 c2
    a1.sinks=s1 s2
    
    # 配置故障恢复
    a1.sinkgroups=g1
    a1.sinkgroups.g1.sinks=s1 s2
    a1.sinkgroups.g1.processor.type=failover
    a1.sinkgroups.g1.processor.priority.s1=5
    a1.sinkgroups.g1.processor.priority.s2=10
    
    
    # 指定source 的数据来源以及堆外开放的端口
    a1.sources.r1.type=netcat
    a1.sources.r1.bind=node113
    a1.sources.r1.port=8888
    
    # 指定a1的channels基于内存
    a1.channels.c1.type=memory
    a1.channels.c2.type=memory
    
    # 指定a1的sinks 输出到控制台
    a1.sinks.s1.type=avro
    a1.sinks.s1.hostname=node103
    a1.sinks.s1.port=8888
    
    a1.sinks.s2.type=avro
    a1.sinks.s2.hostname=node104
    a1.sinks.s2.port=8888
    
    # 绑定a1 sources和channle 的关系
    a1.sources.r1.channels=c1 c2
    # 绑定a1 sinks 和 channel 的关系
    a1.sinks.s1.channel=c1
    a1.sinks.s2.channel=c2
    

    Load balancing Sink Processor 负载均衡

    Load balancing Sink Processor 提供了再多个sink之间实现负载均衡的能力。他维护了一个活动sink的索引列表。它支持轮询或所及方式的负载均衡,默认值是轮询方式,可以通过篇日志指定,也可以通过实现 AbstractSinkSelector 接口实现自定义的选择机制。

    负载均衡的机制是通过 单个channel 轮询或随机发送给某个sink。

    配置

    # a1 代表一个flume 给每个组件匿名
    a1.sources=r1
    a1.channels=c1
    a1.sinks=s1 s2
    
    # 配置负载
    a1.sinkgroups=g1
    a1.sinkgroups.g1.sinks=s1 s2
    a1.sinkgroups.g1.processor.type=load_balance
    a1.sinkgroups.g1.processor.selector=round_robin
    
    
    # 指定source 的数据来源以及堆外开放的端口
    a1.sources.r1.type=netcat
    a1.sources.r1.bind=node113
    a1.sources.r1.port=8888
    
    # 指定a1的channels基于内存
    a1.channels.c1.type=memory
    
    # 指定a1的sinks 输出到控制台
    a1.sinks.s1.type=avro
    a1.sinks.s1.hostname=node103
    a1.sinks.s1.port=8888
    
    a1.sinks.s2.type=avro
    a1.sinks.s2.hostname=node104
    a1.sinks.s2.port=8888
    
    # 绑定a1 sources和channle 的关系
    a1.sources.r1.channels=c1
    # 绑定a1 sinks 和 channel 的关系
    a1.sinks.s1.channel=c1
    a1.sinks.s2.channel=c1
    

    相关文章

      网友评论

          本文标题:Flume-1.8.0(八)Process

          本文链接:https://www.haomeiwen.com/subject/anwejltx.html