在docker中将ksql与融合版本3.3.0的kafka连接时出现问题

在docker中将ksql与融合版本3.3.0的kafka连接时出现问题,docker,apache-kafka,ksqldb,Docker,Apache Kafka,Ksqldb,我以以下方式使用confluent版本3.3.0设置ksql cli #zookeper docker run -d -it \ --net=host \ --name=zookeeper \ -e ZOOKEEPER_CLIENT_PORT=32181 \ confluentinc/cp-zookeeper:3.3.0 #kafka docker run -d \ --net=host \ --name=kafka \ -e KAFKA

我以以下方式使用confluent版本3.3.0设置ksql cli

#zookeper
docker run -d -it \
    --net=host \
    --name=zookeeper \
    -e ZOOKEEPER_CLIENT_PORT=32181 \
    confluentinc/cp-zookeeper:3.3.0

#kafka
docker run -d \
    --net=host \
    --name=kafka \
    -e KAFKA_ZOOKEEPER_CONNECT=localhost:32181 \
    -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:29092 \
    -e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \
    confluentinc/cp-kafka:3.3.0

#schema-registry
docker run -d \
  --net=host \
  --name=schema-registry \
  -e SCHEMA_REGISTRY_KAFKASTORE_CONNECTION_URL=localhost:32181 \
  -e SCHEMA_REGISTRY_HOST_NAME=localhost \
  -e SCHEMA_REGISTRY_LISTENERS=http://localhost:8081 \
  confluentinc/cp-schema-registry:3.3.0
docker exec -it ksql-cli bash
我以以下方式运行ksql cli docker映像

  docker run -it \
  --net=host \
  --name=ksql-cli \
  -e KSQL_CONFIG_DIR="/etc/ksql" \
  -e KSQL_LOG4J_OPTS="-Dlog4j.configuration=file:/etc/ksql/log4j-rolling.properties" \
  -e STREAMS_BOOTSTRAP_SERVERS=localhost:29092 \
  -e STREAMS_SCHEMA_REGISTRY_HOST=localhost \
  -e STREAMS_SCHEMA_REGISTRY_PORT=8081 \
  confluentinc/ksql-cli:0.5
当我运行
ksqlcli
时,通过以下方式进入容器的bash

#zookeper
docker run -d -it \
    --net=host \
    --name=zookeeper \
    -e ZOOKEEPER_CLIENT_PORT=32181 \
    confluentinc/cp-zookeeper:3.3.0

#kafka
docker run -d \
    --net=host \
    --name=kafka \
    -e KAFKA_ZOOKEEPER_CONNECT=localhost:32181 \
    -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://localhost:29092 \
    -e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \
    confluentinc/cp-kafka:3.3.0

#schema-registry
docker run -d \
  --net=host \
  --name=schema-registry \
  -e SCHEMA_REGISTRY_KAFKASTORE_CONNECTION_URL=localhost:32181 \
  -e SCHEMA_REGISTRY_HOST_NAME=localhost \
  -e SCHEMA_REGISTRY_LISTENERS=http://localhost:8081 \
  confluentinc/cp-schema-registry:3.3.0
docker exec -it ksql-cli bash
并以以下方式运行
ksql cli

./usr/bin/ksql-cli local
它给了我以下错误:

正在初始化KSQL

无法获取代理信息。KSQL无法初始化AdminCLient


默认情况下,ksql cli尝试连接到localhost:9092上的Kafka代理。看起来您的安装程序正在使用不同的端口,因此您需要在命令行中提供此端口,例如


./usr/bin/ksql cli local--引导服务器localhost:32181

您可能还需要指定架构注册表端口,因此可能需要使用属性文件,例如:


./usr/bin/ksql cli本地--属性文件。/ksql.properties

其中ksql.properties具有:


bootstrap.servers=localhost:29092
schema.registry.url=localhost:8081

或者在命令行上提供这两个选项:


./usr/bin/ksql cli本地\
--引导服务器本地主机:29092\
--schema.registry.urlhttp://localhost:8081


注意,从KSQL版本4.1开始,命令和属性将更改名称
ksqlcli
变成只
ksql
local
模式消失-您需要显式运行一两个ksql服务器节点
--属性文件
变成
--配置文件
schema.registry.url
变成
ksql.schema.registry.url

我面临同样的问题。问题不在ksql客户机上,而是在拒绝启动的ksql服务器上。不清楚在ksql服务器本身未启动时,向客户端提供参数有何帮助。