簡體   English   中英

KStream窗口聚合-分區問題

[英]KStream windowed aggregation - partition problems

我在AWS上有一個簡單的集群設置,其中有一個kafka實例和一個zookeeper。 我正在為此編寫<String, String>並嘗試在10秒的窗口中聚合這些值。

錯誤消息我正在得到:

DEBUG  o.a.kafka.clients.NetworkClient - Sending metadata request {topics=[kafka_test1-write_aggregate-changelog]} to node 100
DEBUG  org.apache.kafka.clients.Metadata - Updated cluster metadata version 6 to Cluster(nodes = [12.34.56.78:9092 (id: 100 rack: null)], partitions = [Partition(topic = kafka_test1-write_aggregate-changelog, partition = 1, leader = 100, replicas = [100,], isr = [100,], Partition(topic = kafka_test1-write_aggregate-changelog, partition = 0, leader = 100, replicas = [100,], isr = [100,]])
DEBUG  o.a.k.c.consumer.internals.Fetcher - Attempt to fetch offsets for partition kafka_test1-write_aggregate-changelog-0 failed due to obsolete leadership information, retrying.

cluster metadata #無限期前進。

碼:

KStreamBuilder kStreamBuilder = new KStreamBuilder();
KStream<String, String> lines = kStreamBuilder.stream(TOPIC);

KTable<Windowed<String>, String>  dbwriteTable = lines.aggregateByKey(
            new DBAggregateInit(),
            new DBAggregate(),
            TimeWindows.of("write_aggregate", 10000));

dbwriteTable.toStream().print();

KafkaStreams kafkaStreams = new KafkaStreams(kStreamBuilder, streamsConfig);

kafkaStreams.start();

DBAggregateInit任何問題時,將其中的DBAggregateInitDBAggregate存根到日志以進行調試。 沒有其他功能。

這些存根函數都不會被命中。

不知道我在這里錯過了哪些步驟。 如果我.foreach()或對該主題進行簡單的閱讀,似乎工作正常。

FWIW:

當我讓kafka創建主題而不是使用kafka-topic --create --topic ...時,我也遇到了類似的分區問題。

我認為這種錯誤是由於我以不同的用戶身份運行zookeeper和kafka,並且各個數據文件夾中可能存在權限問題。

一旦兩個服務都以root身份運行並且所有相關數據文件被刪除/重新創建,這些錯誤就消失了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM