这边有问题,环境变量里面没有找到kafka目录,我们现在开始排错
oot@bf37a685c7e7:/# ./bin/kafka-topics.sh –zookeeper 119.29.17.67:2181 –describe –topic test bash: ./bin/kafka-topics.sh: No such file or directory ChatGPT
错误消息 “bash: ./bin/kafka-topics.sh: No such file or directory” 表明系统无法找到 kafka-topics.sh 文件。这通常是因为 Kafka 的 bin 目录没有添加到系统的 PATH 环境变量中,或者当前工作目录不是 Kafka 的安装目录。
要解决这个问题,您可以采取以下步骤:
- 确认 Kafka 安装目录: 确保您位于 Kafka 的正确安装目录下。您可以使用
ls
命令查看当前目录的内容,看是否包含 Kafka 相关文件和目录。 - 添加到 PATH: 如果当前目录不是 Kafka 的安装目录,您可以使用绝对路径运行 kafka-topics.sh,或者将 Kafka 的 bin 目录添加到系统的 PATH 环境变量中。假设 Kafka 安装目录是
/path/to/kafka
,您可以执行以下命令将 bin 目录添加到 PATH:bashCopy codeexport PATH=$PATH:/path/to/kafka/bin
这样,您就可以在任何目录下运行 Kafka 命令。 - 检查文件是否存在: 最后,请确保 kafka-topics.sh 文件位于 Kafka 安装目录的 bin 子目录中。如果文件确实不存在,您可能需要重新下载或安装 Kafka。
完成这些步骤后,您应该能够成功运行 kafka-topics.sh 命令来查看 Kafka 主题的描述信息。
root@bf37a685c7e7:/# $KAFKA_HOME/bin/kafka-consloe-producer.sh –broker-list 119.29.17.67:9092 –topic test bash: /opt/kafka/bin/kafka-consloe-producer.sh: No such file or directory ChatGPT
错误消息 “bash: /opt/kafka/bin/kafka-consloe-producer.sh: No such file or directory” 表明系统找不到 kafka-console-producer.sh 脚本。可能是由于拼写错误或者文件不存在所导致的。
请检查文件名的拼写,正确的文件名应该是 kafka-console-producer.sh
,而不是 kafka-consloe-producer.sh
。
如果文件名拼写正确但仍然找不到文件,您可以采取以下步骤:
- 确认 Kafka 安装目录: 确保
$KAFKA_HOME
环境变量设置正确,指向 Kafka 的安装目录。您可以使用echo $KAFKA_HOME
来验证。 - 检查文件位置: 确保
kafka-console-producer.sh
文件位于 Kafka 安装目录的bin
子目录下。您可以使用ls $KAFKA_HOME/bin
命令来列出该目录的内容,检查文件是否存在。 - 绝对路径: 如果确认文件存在,您可以使用绝对路径来运行 Kafka 控制台生产者。例如:bashCopy code
/opt/kafka/bin/kafka-console-producer.sh --broker-list 119.29.17.67:9092 --topic test
确保以上步骤都正确执行后,您应该能够成功运行 Kafka 控制台生产者。
[root@VM-0-16-centos /]# docker exec -ti kafka1 /bin/bash
root@bf37a685c7e7:/# /opt/kafka/bin/kafka-console-producer.sh –broker-list 119.29.17.67:9092 –topic test
>
[root@VM-0-16-centos /]# find / -type f -name kafka-console-consumer.sh 2>/dev/null
/var/lib/docker/overlay2/e39117695e3686165e81edc99950f2e57812e96bd69d49d00399d83529593b2d/diff/opt/kafka_2.13-2.8.1/bin/kafka-console-consumer.sh
/var/lib/docker/overlay2/b74f2764d9f1b0d72ddd78e3f0297cc4c3b4c7b4e19491630a20f133d07c0ded/merged/opt/kafka_2.13-2.8.1/bin/kafka-console-consumer.sh
[root@VM-0-16-centos /]# docker exec -ti kafka1 /bin/bash
root@bf37a685c7e7:/# ls
bin boot dev etc home kafka lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
root@bf37a685c7e7:/# cd opt
root@bf37a685c7e7:/opt# ls
kafka kafka_2.13-2.8.1 overrides
root@bf37a685c7e7:/opt# cd kafka_2.13-2.8.1/
root@bf37a685c7e7:/opt/kafka_2.13-2.8.1# ls
LICENSE NOTICE bin config libs licenses logs site-docs
root@bf37a685c7e7:/opt/kafka_2.13-2.8.1# /opt/kafka/bin/kafka-console-producer.sh –broker-list 119.29.17.67:9092 –topic test
^C
root@bf37a685c7e7:/opt/kafka_2.13-2.8.1# /opt/kafka/bin/kafka-console-producer.sh –broker-list 119.29.17.67:9092 –topic test
^C
root@bf37a685c7e7:/opt/kafka_2.13-2.8.1# /opt/kafka/bin/kafka-console-consumer.sh –broker-list 119.29.17.67:9092 –topic test –from-beginning
broker-list is not a recognized option
您使用的 Kafka 版本较新,--broker-list
参数在最新版本的 Kafka 中已经被 --bootstrap-server
参数替代。因此,您需要将命令中的 --broker-list
替换为 --bootstrap-server
,如下所示:
/opt/kafka/bin/kafka-console-consumer.sh –bootstrap-server 119.29.17.67:9092 –topic test –from-beginning