簡體   English   中英

連接到現有 kafka 代理時,ksqlDB 服務器無法啟動

[英]ksqlDB server fails to start when connecting to existing kafka broker

我在 <myurl>:9092 有一個現有的 kafka 經紀人。 該代理正在運行 Apache Kafka 版本 2.2.0。 我想使用 ksqlDB 對來自該 kafka 代理的主題的數據進行一些 stream 處理。 因此,根據https://docs.confluent.io/platform/current/installation/versions-interoperability.html 上的兼容性表,我正在使用來自 Confluent Platform 5.2 版的 ksqlDB

我在ksql/ksql-server.properties中設置了bootstrap.servers=<myurl>:9092

但是,當我嘗試通過運行ksql-server-start etc/ksql/ksql-server.properties來啟動 ksql-server 時,出現以下錯誤:

ERROR Failed to start KSQL (io.confluent.ksql.rest.server.KsqlServerMain:53)
org.apache.kafka.common.errors.SerializationException: Error deserializing key/value for partition _confluent-ksql-default__command_topic-0 at offset 0. If needed, please seek past the record to continue consumption.
Caused by: org.apache.kafka.common.errors.SerializationException: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `io.confluent.ksql.rest.server.computation.Command`, problem: `java.lang.NullPointerException`
 at [Source: (byte[])"("statement":"CREATE STREAM KSQL_PROCESSING_LOG (logger VARCHAR, level VARCHAR, time BIGINT, message STRUCT<type INT, deserializationError STRUCT<errorMessage VARCHAR, recordB64 VARCHAR, cause ARRAY<VARCHAR>, `topic` VARCHAR>, recordProcessingError STRUCT<errorMessage VARCHAR, record VARCHAR, cause ARRAY<VARCHAR>>, productionError STRUCT<errorMessage VARCHAR>>) WITH(KAFKA_TOPIC='default_ksql_processing_log', VALUE_FORMAT='JSON');","originalProperties":{"ksql.extension.dir":"ext","ksql.streams.ca"[truncated 3011 bytes]; line: 1, column: 3511]
Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `io.confluent.ksql.rest.server.computation.Command`, problem: `java.lang.NullPointerException`
 at [Source: (byte[])"("statement":"CREATE STREAM KSQL_PROCESSING_LOG (logger VARCHAR, level VARCHAR, time BIGINT, message STRUCT<type INT, deserializationError STRUCT<errorMessage VARCHAR, recordB64 VARCHAR, cause ARRAY<VARCHAR>, `topic` VARCHAR>, recordProcessingError STRUCT<errorMessage VARCHAR, record VARCHAR, cause ARRAY<VARCHAR>>, productionError STRUCT<errorMessage VARCHAR>>) WITH(KAFKA_TOPIC='default_ksql_processing_log', VALUE_FORMAT='JSON');","originalProperties":{"ksql.extension.dir":"ext","ksql.streams.ca"[truncated 3011 bytes]; line: 1, column: 3511]
...

如果我使用本地代理並設置bootstrap.servers=localhost:9092 ,則 ksql-server 啟動沒有任何問題。

如何解決此 null 記錄/反序列化問題,以便將 ksqldb 服務器連接到我現有的 kafka 代理?

正如@OneCricketeer 指出的那樣,問題是由集群上現有的命令主題引起的。 您可以通過更改ksql.service.id服務器屬性中的 ksql.service.id 來使用新的命令主題。 請參閱配置 ksqlDB 服務器

暫無
暫無

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

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