zoukankan      html  css  js  c++  java
  • Flume下读取kafka数据后再打把数据输出到kafka,利用拦截器解决topic覆盖问题

    1:如果在一个Flume Agent中同时使用Kafka Source和Kafka Sink来处理events,便会遇到Kafka Topic覆盖问题,具体表现为,Kafka Source可以正常从指定的Topic中读取数据,但在Kafka Sink中配置的目标Topic不起作用,数据仍然会被写入到Source中指定的Topic中。

    2:Kafka Topic覆盖问题解决方案,利用flume的拦截器

    #拦截器处理,topic覆盖问题
    agent_log.sources.kafka0.interceptors = i1
    agent_log.sources.kafka0.interceptors.i1.type = static
    agent_log.sources.kafka0.interceptors.i1.key = topic
    agent_log.sources.kafka0.interceptors.i1.preserveExisting = false
    agent_log.sources.kafka0.interceptors.i1.value = testsongout

    3:flume config完整配置

    agent_log.sources = kafka0 
    agent_log.channels = ch0 
    agent_log.sinks = sink0
    
    agent_log.sources.kafka0.channels = ch0
    agent_log.sinks.sink0.channel = ch0
    
    #sources定义
    agent_log.sources.kafka0.type = org.apache.flume.source.kafka.KafkaSource
    agent_log.sources.kafka0.kafka.bootstrap.servers = localhost:9092
    #agent.sources.kafka-source.zookeeper.connect =127.0.0.1:2181
    agent_log.sources.kafka0.kafka.topics = testsong,songtest
    agent_log.sources.kafka0.kafka.group.id= test 
    
    #拦截器处理,topic覆盖问题
    agent_log.sources.kafka0.interceptors = i1
    agent_log.sources.kafka0.interceptors.i1.type = static
    agent_log.sources.kafka0.interceptors.i1.key = topic
    agent_log.sources.kafka0.interceptors.i1.preserveExisting = false
    agent_log.sources.kafka0.interceptors.i1.value = testsongout
    
    #channels定义
    agent_log.channels.ch0.type = memory
    agent_log.channels.ch0.capacity = 2048
    agent_log.channels.ch0.transactionCapacity = 1000
    
    #sink定义
    agent_log.sinks.sink0.channel = ch0
    agent_log.sinks.sink0.type = org.apache.flume.sink.kafka.KafkaSink  
    agent_log.sinks.sink0.brokerList = localhost:9092  
    agent_log.sinks.sink0.topic = testsongout  
  • 相关阅读:
    NoSQL学习之路[索引贴]
    MongoDB学习 (五):查询操作符(Query Operators).1st
    ASP.NET 设计模式 ( 组织业务逻辑层) 读书摘记4
    好慌好慌 举个栗子^
    读 VIM:七个高效编辑的习惯
    The Oauth2.0 Authorization Framework翻译part1
    关于twemproxy和redis分布式
    The Oauth2.0 Authorization Framework翻译part2
    Coin Slider jQuery插件使用方法
    Oracle数据库的三种标准的备份方法
  • 原文地址:https://www.cnblogs.com/songpingyi/p/7366087.html
Copyright © 2011-2022 走看看