#apache-kafka #kafka-consumer-api #apache-kafka-streams #confluent-platform #ksqldb
#apache-kafka #kafka-consumer-api #apache-kafka-streams #confluent-platform #ksqldb
Вопрос:
Я попытался создать stream, установив сервер и клиент ksql с использованием объединенного zip / tar-файла, и это сработало. Например, оператор create stream в журнале ниже хорошо работал с использованием ksql-cli.
Но когда я запустил сервер ksql, используя docker-compose up
следующую ссылку https://ksqldb.io/quickstart.html (закрыв предыдущий ksql-сервер), он выдает ошибку ниже, и, вероятно, из-за этого ksql-cli не подключается к ksql-серверу, используя docker exec -it ksqldb-cli ksql http://0.0.0.0:8088
и выдавая ошибку Couldn't connect to the KSQL server: KSQL is not yet ready to serve requests.
ksqldb-server | [2021-01-12 17:16:05,182] ERROR Failed to handle: Command{statement='CREATE STREAM persons (version int, id int, type string, data string) WITH (kafka_topic='prod.trail', value_format='json');', overwriteProperties={}, version=Optional.empty} (io.confluent.ksql.rest.server.computation.InteractiveStatementExecutor:214)
ksqldb-server | io.confluent.ksql.util.KsqlException: This version of ksqlDB does not support executing statements submitted prior to ksqlDB 0.8.0 or Confluent Platform ksqlDB 5.0. Please see the upgrading guide to upgrade.
ksqldb-server | at io.confluent.ksql.rest.server.computation.InteractiveStatementExecutor.throwUnsupportedStatementError(InteractiveStatementExecutor.java:309)
ksqldb-server | at io.confluent.ksql.rest.server.computation.InteractiveStatementExecutor.executeStatement(InteractiveStatementExecutor.java:279)
ksqldb-server | at io.confluent.ksql.rest.server.computation.InteractiveStatementExecutor.handleStatementWithTerminatedQueries(InteractiveStatementExecutor.java:212)
ksqldb-server | at io.confluent.ksql.rest.server.computation.InteractiveStatementExecutor.handleRestore(InteractiveStatementExecutor.java:135)
ksqldb-server | at io.confluent.ksql.rest.server.computation.CommandRunner.lambda$null$3(CommandRunner.java:276)
ksqldb-server | at io.confluent.ksql.util.RetryUtil.retryWithBackoff(RetryUtil.java:89)
ksqldb-server | at io.confluent.ksql.util.RetryUtil.retryWithBackoff(RetryUtil.java:60)
ksqldb-server | at io.confluent.ksql.util.RetryUtil.retryWithBackoff(RetryUtil.java:41)
ksqldb-server | at io.confluent.ksql.rest.server.computation.CommandRunner.lambda$processPriorCommands$4(CommandRunner.java:272)
ksqldb-server | at java.base/java.lang.Iterable.forEach(Iterable.java:75)
ksqldb-server | at io.confluent.ksql.rest.server.computation.CommandRunner.processPriorCommands(CommandRunner.java:269)
ksqldb-server | at io.confluent.ksql.rest.server.KsqlRestApplication.initialize(KsqlRestApplication.java:437)
ksqldb-server | at io.confluent.ksql.rest.server.KsqlRestApplication.startKsql(KsqlRestApplication.java:367)
ksqldb-server | at io.confluent.ksql.rest.server.KsqlRestApplication.startAsync(KsqlRestApplication.java:350)
ksqldb-server | at io.confluent.ksql.rest.server.KsqlServerMain.tryStartApp(KsqlServerMain.java:91)
ksqldb-server | at io.confluent.ksql.rest.server.KsqlServerMain.main(KsqlServerMain.java:66)
ksqldb-server | [2021-01-12 17:16:05,183] ERROR Exception encountered running command: This version of ksqlDB does not support executing statements submitted prior to ksqlDB 0.8.0 or Confluent Platform ksqlDB 5.0. Please see the upgrading guide to upgrade.. Retrying in 5000 ms (io.confluent.ksql.util.RetryUtil:106)
ksqldb-server | [2021-01-12 17:16:05,183] ERROR Stack trace: io.confluent.ksql.util.KsqlException: This version of ksqlDB does not support executing statements submitted prior to ksqlDB 0.8.0 or Confluent Platform ksqlDB 5.0. Please see the upgrading guide to upgrade.
ksqldb-server | at io.confluent.ksql.rest.server.computation.InteractiveStatementExecutor.throwUnsupportedStatementError(InteractiveStatementExecutor.java:309)
ksqldb-server | at io.confluent.ksql.rest.server.computation.InteractiveStatementExecutor.executeStatement(InteractiveStatementExecutor.java:279)
ksqldb-server | at io.confluent.ksql.rest.server.computation.InteractiveStatementExecutor.handleStatementWithTerminatedQueries(InteractiveStatementExecutor.java:212)
ksqldb-server | at io.confluent.ksql.rest.server.computation.InteractiveStatementExecutor.handleRestore(InteractiveStatementExecutor.java:135)
ksqldb-server | at io.confluent.ksql.rest.server.computation.CommandRunner.lambda$null$3(CommandRunner.java:276)
ksqldb-server | at io.confluent.ksql.util.RetryUtil.retryWithBackoff(RetryUtil.java:89)
ksqldb-server | at io.confluent.ksql.util.RetryUtil.retryWithBackoff(RetryUtil.java:60)
ksqldb-server | at io.confluent.ksql.util.RetryUtil.retryWithBackoff(RetryUtil.java:41)
ksqldb-server | at io.confluent.ksql.rest.server.computation.CommandRunner.lambda$processPriorCommands$4(CommandRunner.java:272)
ksqldb-server | at java.base/java.lang.Iterable.forEach(Iterable.java:75)
ksqldb-server | at io.confluent.ksql.rest.server.computation.CommandRunner.processPriorCommands(CommandRunner.java:269)
ksqldb-server | at io.confluent.ksql.rest.server.KsqlRestApplication.initialize(KsqlRestApplication.java:437)
ksqldb-server | at io.confluent.ksql.rest.server.KsqlRestApplication.startKsql(KsqlRestApplication.java:367)
ksqldb-server | at io.confluent.ksql.rest.server.KsqlRestApplication.startAsync(KsqlRestApplication.java:350)
ksqldb-server | at io.confluent.ksql.rest.server.KsqlServerMain.tryStartApp(KsqlServerMain.java:91)
ksqldb-server | at io.confluent.ksql.rest.server.KsqlServerMain.main(KsqlServerMain.java:66)
ksqldb-server | (io.confluent.ksql.util.RetryUtil:110)
ksqldb-server | [2021-01-12 17:16:10,184] ERROR Failed to handle: Command{statement='CREATE STREAM persons (version int, id int, type string, data string) WITH (kafka_topic='prod.trail', value_format='json');', overwriteProperties={}, version=Optional.empty} (io.confluent.ksql.rest.server.computation.InteractiveStatementExecutor:214)
ksqldb-server | io.confluent.ksql.util.KsqlException: This version of ksqlDB does not support executing statements submitted prior to ksqlDB 0.8.0 or Confluent Platform ksqlDB 5.0. Please see the upgrading guide to upgrade.
ksqldb-server | at io.confluent.ksql.rest.server.computation.InteractiveStatementExecutor.throwUnsupportedStatementError(InteractiveStatementExecutor.java:309)
ksqldb-server | at io.confluent.ksql.rest.server.computation.InteractiveStatementExecutor.executeStatement(InteractiveStatementExecutor.java:279)
ksqldb-server | at io.confluent.ksql.rest.server.computation.InteractiveStatementExecutor.handleStatementWithTerminatedQueries(InteractiveStatementExecutor.java:212)
ksqldb-server |
Я совершенно новичок в kafka / ksql. Не удалось найти много информации об этом в Интернете. Кто-нибудь может помочь с этим?
Ответ №1:
При новой установке, без каких-либо общих данных между версией Docker-Compose и загруженным архивом, я бы не ожидал, что это произойдет. Вы подключаетесь к существующему кластеру Kafka?
Образы Docker используют автономный сервер KSQLdb, который является более новой версией, чем та, которая поставляется в комплекте с Confluent Platform. Возможно, именно поэтому вы видите ошибки, связанные с проблемами версии.
Здесь есть руководство по обновлению, но если вы просто играете с образцами данных, вы захотите очистить используемые разделы.