在端口 8083 上,我正在运行 Influxdb,我什至可以在 http://localhost:8083
上获取 GUI现在来到kafka,这里我指的是按照https://kafka.apache.org/quickstart
进行的设置通过以下命令启动文件夹 /opt/zookeeper-3.4.10 中的 Zookeeeper:
bin/zkServer.sh start
所以zookeeper现在启动,在/opt/kafka_2.11-1.1.0文件夹下启动kafka:
bin/kafka-server-start.sh config/server.properties
创建一个名为“test”的主题,其中只有一个分区和一个副本:
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
主题已创建,可以使用命令签入:
bin/kafka-topics.sh --list --zookeeper localhost:2181
到目前为止,一切都很好并且经过调整。
现在我需要使用“Kafka connect”组件来导入/导出数据。 所以我创建的种子数据为:
echo -e "foo\nbar" > test.txt
现在使用连接器配置“kafka connect”来工作:
bin/connect-standalone.sh config/connect-standalone.properties config/connect-file-source.properties config/connect-file-sink.properties
运行上述命令后,我得到:
Address already in use
Kafka connect has stopped
我什至更改了 /opt/kafka_2.11-1.1.0/config/connect-distributed.properties 中的
rest.port=8084
,这样它就不会与 8083 上已有的 influxdb 发生冲突。我仍然得到相同的 Address already in use
,
Kafka connect has stopped
如截图所示。
由于您在独立模式下使用 Kafka Connect,因此需要更改
config/connect-standalone.properties
中的 REST 端口:
rest.port=18083
要了解有关独立与分布式的更多信息,您可以阅读此处的文档。
卡夫卡3.0.0
由于 Kafka Connect 旨在作为服务运行,因此它还提供了用于管理连接器的 REST API。可以使用 listeners 配置选项来配置 REST API 服务器。该字段应包含以下格式的侦听器列表:protocol://host:port,protocol2://host2:port2。目前支持的协议有 http 和 https。 例如:listeners= http://localhost:8080,https://localhost:8443 默认情况下,如果未指定侦听器,REST 服务器使用 HTTP 协议在端口 8083 上运行。
更新
如果将“侦听器”放入 connect-standalone.properties 后仍然没有运气,这对我有用。不要在侦听器值中提及两种协议(http 和 https),而是尝试只在那里放置一个协议(例如“http”),并且不要将“localhost”写为主机名,而写“127.0.0.1”。所以听众的价值是:-
listeners=http://127.0.0.1:8084
Kafka Connect 独立模式,默认使用
Port 8084
作为 Rest API 帖子。由于这个原因,如果其他人已经在使用该端口,则该过程会抛出 BindException
。
要更改上面使用的端口,请导航到 Kafka 根目录中的
config/connect-standalone.properties
文件。
添加以下键值属性以更改用于Rest API开放的端口。 (默认情况下,Kafka 应该将其包含在属性文件中,否则许多开发人员会疯狂地尝试查找独立模式中使用的端口映射)。根据需要设置不同的端口。
rest.port=11133
更改 config/server.properties 中的
port
定义:
# The port the socket server listens on
port=9092