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

Flume下读取kafka数据后再打把数据输出到kafka,利用拦截器解决topic覆盖问题的更多相关文章

  1. 在用easyui中做CRUD功能时,当删除一行或多行数据后再点击修改会提示你选中了多行,如何解决这个bug了?

    在用easyui中做CRUD功能时,当删除一行或多行数据后再点击修改会提示你选中了多行,如何解决这个bug了? 在删除成功后,加上这句话就可以了:$("#dg").datagrid ...

  2. js实现非模态窗口增加数据后刷新父窗口数据

    父窗口是由两个部分组成,一个html的table,一部分是extjs的gird. 点击grid面板[增加]按钮将会弹出非模态窗口进行新数据的编辑页面 下面是按钮的触发函数代码: var a = win ...

  3. RestTemplate接收HashMap变为LinkedHashMap,RestTemplate接收数据后转成json数据出现反斜杠

    使用postForObject方法远程调用接口,正常会返回List<HashMap>,然而实际上却返回List<LinkedHashMap>,同时将此数据进行json转换,变成 ...

  4. Ajax前台返回JSON数据后再Controller中直接转换成类型使用,后台接收json转成实体的方法

    之前写过一篇记录文章,写的是将一个比较复杂的数据结构在前台组合起来后传递到后台. 当时并不太了解@RequestBody,也并没有使用js提供的JSON.stringify()方法 所有都是自己写的, ...

  5. easyui combobox下拉框复制后再禁用,点击不会出现下拉框

    easyui combobox下拉框禁用,点击不会出现下拉框 需要做到,在给easyui combobox赋值后,再禁用easyui combobox 解决办法: $("#time-sele ...

  6. 使用Hibernate框架,新增数据后如何返回新增数据的全部信息

    一.需求描述:一个修改事物(TRANSACTION)先后包括子事物修改和子事物新增,修改事物完成后返回其子事物新增的全部数据  二.实现:若实现修改对象后还需要新增一个新对象,并返回新对象的需求,保存 ...

  7. 【laravel】同一代码段内,先更新数据,后查询修改的数据,查询结果错误的问题

    如标题所言,是什么意思呢?举个栗子,需求如下: 你是一个电话销售人员,手头有一些待call电话单,每个电话单上有N个不同的电话号码,需要你每打一个电话就标记为”已打“.当一个电话单上的号码都标记为”已 ...

  8. 与安卓联调,调用安卓那边的方法,获取到安卓传过来的数据,再携带这些数据发送axios请求,获取到用户的信息

    第一步:js调用Android方法:接收Android传递过来的数据,并做处理 //参数一:调用java中的方法   submitFromWeb是方法名,必须和Android中注册时候的方法名称保持一 ...

  9. 转化秒数为正规的时间格式{NSString格式的秒数转成NSDate格式后再以NSString形式输出)

    -(NSString*)changeNumToTime:(NSString*)str { NSDate *date = [NSDate dateWithTimeIntervalSince1970:[s ...

随机推荐

  1. 使用Pull解析器生成XML文件

    有些时候,我们需要生成一个XML文件,生成XML文件的方法有很多,如:可以只使用一个StringBuilder组拼XML内容,然后把内容写入到文件中:或者使用DOM API生成XML文件,或者也可以使 ...

  2. Node.js express模块 http服务

    var express = require('express'); var app = express(); app.get('/', function(req, res){ res.send('he ...

  3. selenium 等待时间

    三种时间模式:1.隐性等待:①等待页面所有元素都加载完才执行下一步,如果在设定的时间内没有加载完成所有元素,则抛出异常②隐式等待对整个driver周期都起作用,即设置一次后,所有执行都会有效from ...

  4. 鸟哥私房菜基础篇:Linux 账号管理与 ACL 权限配置习题

    猫宁!!! 参考:http://cn.linux.vbird.org/linux_basic/0410accountmanager.php 1-root 的 UID 与 GID 是多少?而基于这个理由 ...

  5. ReDOS攻击

    正则表达式拒绝服务攻击(Regular Expression Denial of Service)当开发人员编写的正则表达式存在缺陷时,攻击者可以构造特殊的字符串来大量消耗服务器资源,最终造成拒绝服务 ...

  6. pig-csm 7.9修改记录

    PigCms\Lib\Action\System\UsersAction.class.php 存在页面广告跳转 bbs.go _pe.cn的问题 tpl\Home\weimob\public_head ...

  7. Linux安装git (git-2.11.0)

      本文旨在讲述如何在linux上安装最新版的git.   1.查看当前git版本:git --version 查看最新版git:访问https://www.kernel.org/pub/softwa ...

  8. vsphere6.7-虚拟机与ESXI时间同步

    环境介绍 esxi 6.7+vsphere6.7 需求配置 设置虚拟机时间与esxi时间同步.esxi时间与NTP服务器同步 配置方式 在esxi上开启NTP服务器时间同步,如下图: 修改虚拟服务器的 ...

  9. 详解mysql复制机制--异步复制,半同步复制和并行复制

    图4 那么如何并行化,并行IO线程,还是并行SQL线程?其实两方面都可以并行,但是并行SQL线程的收益更大,因为SQL线程做的事情更多(解析,执行).并行IO线程,可以将从Master拉取和写Rela ...

  10. 【Java学习】类、对象、实例—类是对象的抽象,对象是类的实例

    类.对象.实例的关系是什么,如果不能很好的理解什么是类什么是对象就无法讲清楚, 类:某种事物与另一种事物具有相似性,比如哈士奇和泰迪,我们发现他们有一些相似的特性和行为,在生物学上,他们都属于“狗”, ...