我正在使用storm-kafka-0.9.3从kafka读取数据,并在storm中处理这些数据。下面是我正在使用的卡夫卡喷口。但问题是,当我杀死风暴集群时,它不会读取在其死亡期间发送的旧数据,而是从最新偏移量开始读取
BrokerHosts hosts=newzkhosts(Constants.ZOOKEEPER\u HOST);
喷动配置喷动配置=新喷动配置(主机、CommonConstants.KAFKA\u事务\u主题\u名称
,“/”+CommonConstants.KAFKA_事务_主
卡夫卡把我弄糊涂了。我用标准值在本地运行它。
仅启用“自动创建主题”。1个分区,1个节点,所有东西都是本地的和简单的。
如果它写
consumer.subscribe("test_topic");
consumer.poll(10);
它根本不起作用,永远也找不到任何数据。
如果我改为分配一个分区,比如
consumer.assign(new TopicPartition("test_topic",0));
检查我坐在995的位置。现在可以投票并接收制作人输入的所有数据
关于订阅,我不了解的
我正在为我们公司正在构建的一个新的事件和流处理系统设计一套模式,以便将几个当前断开连接的系统连接起来。我们已经明确定义了12个域模型,现在正试图将一组事件模式组合在一起,所有应用程序都将通过事件到外部合流(kafka)平台。然后,samza将提取并处理这些数据,以执行各种作业,然后为我们的特定领域服务填充数据库
这一切都很好,我们从每个域一个事件(例如地址)开始,但是,我们很快遇到了需要不同类型事件的不同数据的问题。例如,创建地址的事件需要域中的所有(或大部分)字段。而更新只需要id和正在更新的
如何将补丁应用于zookeeper?我有这个错误
此修补程序https://issues.apache.org/jira/browse/ZOOKEEPER-1936
谢谢
我有一个卡夫卡的主题(如果重要的话是0.10)。几位制作人正在就这一主题撰写文章。现在我想以某种方式更改此主题:
增加复制因子
在可用代理之间重新分配分区
这些操作是并行的吗?这意味着制作人可以在制作过程中继续向卡夫卡写入数据吗?答案是肯定的,制作人可以继续向卡夫卡写入数据
以下是场景:
只要我在同一远程服务器上启动进程,我的kafka服务器和zookeeper就可以在远程服务器上正常运行
我的本地计算机和服务器之间没有任何连接问题。我可以使用ssh从本地计算机访问远程服务器上的所有其他应用程序
当试图直接从本地机器将客户端连接到远程zookeeper时,我会收到一个连接超时。调试显示正在引发NoRouteToHost异常
客户端日志文件包含以下行:
org.apache.zookeeper.zookeeper:启动客户端连接,connectString=remo
我已经尝试过通过命令行从生产者向消费者发布随机消息的基本示例。
现在我想发布本地机器中的所有1GB数据。为此,我正在努力将1GB的数据加载到producer
请帮帮我。您只需将文件重定向到卡夫卡主题即可转储文件。假设1.xml是1GB文件,则可以使用以下命令
bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test123 < ./1.xml
bin/kafka-console-producer.sh—
我正在使用Kafka处理日志事件。我有卡夫卡连接和卡夫卡流的基本知识,用于简单的连接器和流转换
现在,我有一个具有以下结构的日志文件:
timestamp event_id event
日志事件有多个日志行,这些日志行由事件id连接(例如邮件日志)
例如:
1234 1 START
1235 1 INFO1
1236 1 INFO2
1237 1 END
1234 1 START
1234 2 START
1235 1 INFO1
1236 1 INFO2
1236 2 INFO3
1237
对于运行kafka的同一个计算机集群,我有不同的主题来处理不同类型的消息,比如一个主题用于Protobuf,一个主题用于Avro,还有一个主题用于字符串消息
此设置是否有任何问题?这是一个完全有效的用例,只要您为每个主题使用具有不同序列化器/反序列化器的多个生产者/消费者
我刚开始学习卡夫卡。我做了很多谷歌搜索,但仍然没有任何线索:我如何能够自动拾取作为制作人输入的文件夹中的文件,从而被消费者拾取?非常感谢。
作为起点,我尝试了以下代码,但它不起作用(简单地退出,没有错误):
/kafka-console-producer.sh——代理列表沙盒。hortonworks.com:6667——主题kafka-topic1
我在Cloudera中运行了一个3代理kerberised Kafka 0.10安装,我正在尝试使用SASL/PLAIN进行身份验证
我将kafka_server_jaas.conf传递到每个代理上的JVM中
卡夫卡服务器{
需要org.apache.kafka.common.security.plain.PlainLoginModule
用户名=管理员
密码=密码1
user\u admin=password1
用户_remote=password1;
};
我的server.proper
我已经在raspberry pi 3上安装了节点red,以从传感器收集数据,然后将它们存储在kafka中,但现在我对kafka生产者节点有一些问题。
我在笔记本电脑上安装了一个卡夫卡服务器,它可以在控制台中正常工作:如果我在卡夫卡制作者控制台上发送消息,我就可以在消费者控制台上正确接收它。
不幸的是,当我尝试在raspberry上节点红色的kafka producer中注入时间戳时,服务器并没有给出响应
节点红色的调试页面显示:BrokerNotAvailableError:Broker不可用
然后进行一些转换并创建类型为的twp数据流数据_1和数据_2
JavaRDD<String> history_ = sc.emptyRDD();
java.util.Queue<JavaRDD<String> > queue = new LinkedList<JavaRDD<String>>();
queue.add(history_);
JavaDStream<String> history_dstream = ssc.
目前正在评估ApacheKafka的一个用例,在这个用例中,我们有(多达)数千个设备产生事务,每个设备都在后端生成响应。必须返回到原始设备的响应
那么,对于订阅,我们似乎可以选择每个设备都有一个主题(从管理的角度来看很难),或者为事务响应设置一个单独的主题,然后让每个设备都下拉该主题的所有数据,包括对其他人意味着的所有数据(从性能的角度来看是次优的)
有没有办法让经纪人在投票过程中以某种方式过滤数据(卡夫卡方面)?在我看来,这是一个常见的要求,但到目前为止,我还没有看到任何与此相关的内容。一个响
我有一个KafkaConsumer并使用手动分区分配。为了分发分区,我定期使用consumer.partitions for(topicId)来检测添加的分区,因为作业将永远运行,我希望支持这种情况。但是,除非我重新启动使用者,否则它总是返回分区的初始列表
是否有一种方法可以检测消费者添加的分区?轮询或侦听什么?当您通过assignment()方法进行查询时,这可能是在重新分配分区的过程中。你可以睡5秒钟,然后检查这个来测试它
获取当前分配给此使用者的分区集。如果订阅是通过使用assign(Co
我试图手动将分区分配给消费者组中的每个消费者。但是,当您在组中添加使用者时,Kafka(或者至少是Kafka python)假设您希望组协调员完成所有分配。在能够手动管理分配分区的同时,是否有一种方法可以保留使用使用者组(特别是自动提交)的所有好处?我可以写一个自定义分区赋值器吗
我正在使用kafka python 1.3.3库 是的,Kafka consumer有一个属性“partition.assignment.strategy”,您可以在其中指定自己的自定义赋值器,默认值为RangeSig
考虑以下场景。我有一个Kafka经纪人负责减震,还有很多客户,他们给我发送user1.rar文件,分为user1.r01、user1.r02。。。(每个128KB)。一个主题的消费效果与预期相当好。问题是,我需要将拓扑下游的文件解包,并将解包结果流式传输到最终存储器
糟糕的是,我没有一个可操作的存储来存储一个用户的所有RAR。卡夫卡有没有办法在一个主题中简化文件,这样我就可以进行流解包。
我很担心如果
我使用一个消费者,一旦1000个用户开始流媒体,我将压倒它的RAM,rXX文件将在主题中混淆
我正在尝试使用查询在批量模式下使用io.confluent.connect.jdbc.JdbcSourceConnector
query = select name, cast(ID as NUMBER(20,2)),status from table_name
这可能吗?
如果可能的话,我是否遗漏了什么?
我越来越
exception (org.apache.kafka.connect.runtime.WorkerTask:148)
org.apache.avro.SchemaParseEx
我的问题是:
如果我将配额设置为1 MB/秒,那么多代理集群可以得到多少?(例如,以2名经纪人为例)
每个代理的速度是否为1MB/秒(或每个代理的速度是否为0.5MB/秒)
文件说:
例如,如果(user=“test user”,client id=“test client”)具有
生产配额为10MB/秒,在所有生产商之间共享
客户端id为“test client”的用户“test user”的实例
是的,配额是按每个代理计算的。因此,在您的示例中,每个代理将获得1MB/秒
卡夫卡文献中的章节说
我正在将卡夫卡整合到我们的系统中,我们有一个中心组件,它将同一类型的事件发布到特定的主题。在消费者方面,我们有多个“项目”,它们对该主题中的事件感兴趣,而这些事件只与他们相关。是否有一种方法可以只向那些用户交付相关事件,而不是以下用户
为每个项目创建使用者组,而忽略应用程序级别上其他项目的事件
为每个项目创建单独的主题
这可能是一个新手问题:/
提前感谢您列出的两个选项可以工作,但这会使您改变输入和输出客户端的工作方式
另一种方法是使用从输入主题读取所有消息,并将每个消息发送到所需的输出主题。这
我现在使用3个节点关闭Kafkacluster中的一个节点,当我使用其他节点时,是否遇到此消息
[2018-04-20 22:03:47,053] WARN [Consumer clientId=consumer-1, groupId=console-consumer-36123] Connection to node -1 could not be established. Broker may not be available. (org.apache.kafka.clients.Netwo
标签: Apache Kafka
kafka-consumer-apikafka-producer-apiconfluent-platform
是否有任何Python kafka管理客户端可用于从Python程序中创建主题/删除主题?我找到了一些python api,但没有一个有可用的管理api
confluent是否有python管理api?确实有管理支持
查看此文件以了解如何使用它。我发现:
from kafka.admin import KafkaAdminClient, NewTopic
admin_client = KafkaAdminClient(bootstrap_servers="localhost:9092", cli
我的卡夫卡群集有问题。
我有3个代理,因此当我停止代理1(例如)时,每个具有leader 1的主题分区都会在副本配置中使用seconde代理更改其leader。
因此,这是一种良好的行为,而且效果良好
但当我重新启动broker 1时,我需要执行:
/kafka-preferred-replica-election.sh——动物园管理员myHost
因为当前引线是另一个复制副本
所以我的问题是:
有没有一种方法可以将卡夫卡配置为自动执行
thx我假设您的默认(当所有代理运行时)分配是平衡的,并且
在camel中,我们使用URL提供。。类似于uri(卡夫卡:本地主机:9092…)
camel kafka中是否有任何配置可用于增加kafka主题分区数?否。分区数不应在kafka之外增加。您只能在主题创建步骤中分配一些分区。然后您可以使用kafka的管理工具手动增加分区数。camel kafka组件不适用p随着分区数的增加而增加。但您可以尝试使用此解决方案:
并在此基础上创建camelbean或camel处理器
我正在尝试安装Zookeeper和Kafka进行基本测试
并且必须将Zookeeper中的客户端端口更改为可用/打开的端口,如下所示
dataDir=/tmp/zookeeper
# the port at which the clients will connect
clientPort=56xxx
但是,即使在zookeeper属性文件中对其进行更改后,当我启动Kafka服务器时,它仍会尝试连接到默认的2181端口,如下所示,Kafka服务器不会启动
Opening socket conn
我有一个主题,它有很大的保留空间和存储的数据量。我只想阅读特定时间点的信息
我知道使用java API是可能的,但我想使用kafka控制台消费者,因为我只想快速检查一些东西
我可以从一开始就使用--标记,但为了避免加载需要过滤掉的数据,我不会这样做。我找到的最快方法是创建一个消费者组,将其重置为我感兴趣的时间,然后使用控制台消费者使用新组,以下是命令:
# create a new group and reset the topic offset for the group to a speci
启动卡夫卡消费者zookeeper时显示以下内容:
[2019-01-02 16:34:15,893] INFO Accepted socket connection from /127.0.0.1:51155 (org.apache.zookeeper.server.NIOServerCnxnFactory)
[2019-01-02 16:34:15,893] WARN Exception causing close of session 0x0: null (org.apache.zooke
对不起!
我的队友也问了我同样的问题,他们问我卡夫卡主题、春云流频道和春云流目的地有什么不同。我们试图在互联网上搜索,但找不到任何线索
卡夫卡主题正如它所说——卡夫卡主题
消息通道实际上是由Spring Cloud Stream实现并使用的
Spring Cloud stream destination-我假设您指的是destination绑定属性(例如Spring.Cloud.stream.bindings.input.destination=myDestination)。如果是这样,它只是
在自定义转换器中,我们尝试在init中创建和转发一些记录。。方法根据该报告,这应该是可能的。但是,这不起作用,我们得到以下例外情况:
Exception in thread "my-app-0.0.16-3be1aa47-d51d-4b0c-821a-a0b850359490-StreamThread-1" org.apache.kafka.streams.errors.StreamsException: failed to initialize processor KSTREAM-TRANSF
NET/Java应用程序每秒生成15.00-90.000个json对象,其中包括有关金融交易的各种信息。这些消息被发送到ApacheKafka上的特定主题,DruidOLAP数据库将使用该主题
请在下面找到生产者和消费者之间的数据流
Produce -- Persist/Distribute -- Consume
Application (.Net/Java) --> Apache Kafka Topic <--- Apache Dru
我们有一个3节点的卡夫卡集群。对于数据存储,我们在3个节点中的每个节点上安装了2个磁盘-/data/disk1和/data/disk2。kafka.properties中的log.dirs设置为:
碰巧在一个节点Node1中,磁盘分区/data/disk2/kafka日志已满100%
发生这种情况的原因是——我们正在将filebeat中的数据重放到卡夫卡主题中,许多数据在很短的时间内被推送。我暂时将该主题的保留期从7天改为1天,因此主题大小已变得正常
问题是-在节点1中,其/data/disk2
首次尝试使用现有Kafka部署运行Kafka Connect。使用SASL_明文和kerberos身份验证
第一次尝试启动连接分布式,我看到:
ERROR Uncaught exception in herder work thread, exiting: (org.apache.kafka.connect.runtime.distributed.DistributedHerder:227)
org.apache.kafka.common.errors.TimeoutException: Ti
我在Kafka connect中有一个主题,我想将数据写入两个不同的位置。为此,我有两个自定义连接器
我不是在Confluent平台上工作。我只是在kafka集群上工作,我计划使用kafka的connect distributed.sh
但是,我不知道如何部署这些不同的作业。我应该创建两个distributed.properties文件,并将它们部署在不同的端口上吗
另外,我是否应该将每个属性和连接器jar文件放在kafka集群的每个节点上
谢谢。在分布式模式下运行Kafka Connect时,
我的用户可以在一天的任何时间上传任意数量的文件,每个文件中有10000条记录。将各个记录发布到5个分区P1、P2、P3、P4、P5进行处理。我在组中有5个消费者,他们将从这5个分区中消费并处理记录
因此,当用户上载文件F1时,2500条记录将在P1中排队,2500条在P2中排队,以此类推
在进行此处理时,另一个用户上载文件F2。但F2中的记录只有在F1的记录被处理(FIFO)后才会被消费者处理
我如何确保卡夫卡处理的公平性。也就是说,F2中的记录也应该被处理,而不是等待F1中的记录从队列中完成?
我收到ksql警告警告:ksql-server.stdout中的窗口结束时间被截断为Long.MAX
我想知道在哪种情况下会触发此警告以及其重要性程度,因为生成此警告的查询也从功能角度提供了预期结果
回顾了ksql源代码-试图理解已处理警告的预期含义及其重要性
查询工作正常-只需发出以下警告:在ksql server.stdout中,窗口结束时间被截断为Long.MAX。如果窗口的计算结束时间超出范围,则此警告日志行将反序列化翻滚或跳跃窗口键
只有在使用打印主题命令时,您才会看到此警告。有关详细
我们是卡夫卡制作人,他为一个主题生成消息,而这个主题只被一组消费者使用。消费者的速度大不相同。我们总是有一定数量的消费者滞后作为缓冲
生产者是否可能知道消费者组的每个分区的延迟,并首先向延迟最低的分区生成消息?如果我使用C/C++客户机或Java客户机,有可能吗
谢谢。这是不可能的
您必须确保使用的策略将工作平均分配到所有分区。
您可以提供一个符合您需要的自定义分区器
例如,请看:
默认的分区策略是循环这是不可能的
您必须确保使用的策略将工作平均分配到所有分区。
您可以提供一个符合您需要的自定义
建议仅当enable.auto.commit设置为false时才使用commitSync()。但是我们使用了commitSync(),忘记了将enable.auto.commit设置为false。所以我想知道在这种情况下会发生什么?如果设置为True,则消费者的偏移量会在后台定期提交。另一方面,是一个允许手动提交偏移量的阻塞调用
在您的情况下,将在两种情况下提交偏移:
每次调用commitSync()
每个Nms,其中N是一个可配置参数(auto.commit.interval.ms)
使用s
我有一个老项目(它不是我的),我正在尝试将它从卡夫卡2.1更新到2.4
我有下面的代码
public synchronized void increasePartitions(字符串主题,int分区)引发InvalidPartitionsException、IllegalArgumentException{
StringBuilder commandString=新建StringBuilder();
追加(“--alter”);
commandString.append(“--topic”).a
我刚才提到了研究卡夫卡并试图了解卡夫卡集群中节点的方向
考虑到我有一个具有5个节点的kafka集群,为了更好地理解,让我们假设3个主题,每个主题的分区为2,复制因子为2
这在集群中会是什么样子(当被视为节点时)?当您指的是5个节点时,我假设每个节点上运行5个代理
如果有3个主题,每个主题有2个分区。然后总共有6个分区
如果复制因子为2,那么这6个分区将变为12个
这些分区分布在代理之间
每个代理可以获得一个或多个分区
由于您有5个代理,出于负载平衡的目的,同一主题的两个分区可能不会落在同一个代理
我已经测试了默认的现有jdbc源连接器。对于DB来说,它工作得很好。我想为不同的数据库创建另一个oracle jdbc源连接器。为此,我创建了具有不同DB详细信息的新属性文件。然后,我运行下面的命令
bin/connect-standalone etc/schema-registry/connect-avro-standalone.properties source-quickstart-sqlite1.properties
错误:
[2020-06-20 09:43:46,751] ERRO
我正在使用spring提供的@kafkaListener注释来创建kafka容器
@KafkaListener(topics = "#", group = "#", containerFactory = "myContainerFactory")
public void listen(final ConsumerRecord<?, ?> message, Acknowledgment ack) {
@Kaf
在某些情况下,我使用Kafka流对主题的小内存(hashmap)投影进行建模。K,V缓存确实需要一些操作,因此对于GlobalKTable来说不是一个好的例子。在这种“缓存”场景中,我希望所有同级实例都具有相同的缓存,因此我需要绕过使用者组机制
为了实现这一点,我通常只需使用随机生成的应用程序Id启动我的应用程序,因此每次重新启动时,每个应用程序都会重新加载主题。唯一需要注意的是,我最终发现一些消费者群体在kafka brokers上孤立无援,一直到offset.retention.minute
我使用Kafka作为消息代理,为一个简单的数据管道实现了一次语义。通过设置setenable.idemponence=true,我可以强制卡夫卡制作人只写一次生成的每条记录
然而,在消费方面,我需要保证消费者只读取每条记录一次(我对将消费的记录存储到外部系统或另一个卡夫卡主题不感兴趣)。为了实现这一点,我必须确保对轮询记录进行处理,并将其偏移量以原子/事务方式提交给\uu consumer\u offset主题(两者同时成功/失败)
在这种情况下,我需要借助Kafka事务API在消费者轮询循环中
我有一份卡夫卡连接源代码的工作,并注意到一个非常奇怪的行为。使用更新的配置重新启动源作业后。该任务仍在使用旧配置运行一次拉取,该任务获得配置更新并使用新配置重新启动。有关示例,请参见下面的日志。有没有人有过类似的经历或知道如何解决这个问题
[2020-11-11 06:58:29,174] INFO [baw_demo-cmdb_ci_database-source|worker] RestSourceConnectorConfig values:
batch.enable = tru
请有人解释一下卡夫卡在以下场景中的同步复制因子维护:
情景:
考虑一下,最初我们将复制因子设为3
在卡夫卡,如果领导者倒下,其中一个同步副本将成为新的领导者
因此,对于新的领导者(同步复制副本之一),卡夫卡是否再次保持3的复制因子。希望对卡夫卡符号进行更清晰的说明:没有“同步复制因子”。每个主题都有一个“复制因子”和一个单独的“同步副本”(也称为ISR)列表。在一个正常的集群中,复制因子和同步副本的数量是匹配的,但一旦一个代理崩溃,这些数字可能会出现偏差,因为您将拥有不同步的副本
“因此,对于新
我正在使用Avro和schema注册表。我想知道如何让消费者通过在Java项目中指定模式id来读取数据,而不必为Avro模式使用Java类。根据我的理解,我们无法使用通用记录指定模式版本,我想知道通用记录如何处理模式演变。对于特定的记录,我们必须在Java项目中为Avro模式生成Java类,这在云应用程序中可能不方便。有没有办法选择模式Id作为Java项目中的配置,而不从模式注册表下载模式文件?非常感谢 您可以查看从消息中获取架构ID的,该消息表示无法绕过/覆盖ID查找
这并不是说您可以编写自己
标签: Apache Kafka
apache-kafka-streamsapache-kafka-connectconfluent-platform
我们的基础设施中有汇流平台。在核心部分,我们使用kafka代理分发事件。数十台设备产生卡夫卡主题事件(每种类型的事件都有一个卡夫卡主题),事件在谷歌的protobuf中序列化。我们有confluent的模式注册表来跟踪protobuf模式
我们需要的是,对于一些事件,我们需要应用一些转换,然后将转换输出发布到其他一些卡夫卡主题。当然,卡夫卡流是实现这一点的一种方法。但是,我们不希望每次转换都有一个java应用程序(这会增加项目和开发/部署工作的复杂性),而且将所有流放在一个应用程序中感觉不正确(
我们在一个项目中使用Kafka Connect已有一段时间了,目前只使用了。我正在努力理解“任务”在卡夫卡连接中的作用,特别是在这个连接中。我理解“连接器”;它们包含一系列关于特定源/接收器的配置以及它们从/连接到的主题。我知道连接器和任务之间有一种1:Many关系,以及任务用于并行工作的一般原则。但是,我们如何理解连接器何时会/可能会创建多个任务
在源连接器的例子中,我们使用JDBC连接器通过时间戳和/或主键来提取源数据,因此这看起来是按顺序的。事实上,我们所有的源连接器似乎只有一个任务。什
之前我已经向报告过,但问题已经解决,因为与cyrus sasl/krb5有关
podman run--rm-it--name kafkacat DEV\
-v$(pwd)/conf/integration:/conf-v$(pwd)/conf/integration/krb5.conf:/etc/krb5.conf\
localhost/kafkacat_gssapi:1\
卡夫卡塔特\
-b kafka-int.epm-eco.projects.epam.com:9095\
-Xssl.ca.
为什么最小的跟随者决定领先者的硬件,而不是最小的跟随者硬件决定领先者的硬件
上一页 1 2 3 4 5 6 7 8 9 ...
下一页 最后一页 共 215 页