kafka-console-producer: 命令未找到。

4

连接到EC2实例并下载Kafka和Java后,我运行了以下命令:

export KAFKA_HEAP_OPTS="-Xmx256M -Xms128M"
bin/zookeeper-server-start.sh -daemon config/zookeeper-properties
bin/kafka-server-start.sh config/server-properties

然后我尝试运行命令:

kafka-console-producer --broker-list IP:9092 --topic mytopic

它显示:

找不到命令


有没有特别的原因不使用MSK或其他托管的Kafka实例? - OneCricketeer
3个回答

5
这与Kafka本身无关。您的Kafka bin 目录(其中包含所有脚本,例如 kafka-console-producer )未包含在PATH变量中,这意味着没有办法让您的操作系统在没有指定其确切位置的情况下找到这些脚本。
您可以修改PATH变量,使其包括Kafka bin 文件夹。运行此命令:
export PATH="${PATH}:/path-to-bin-dir/bin"

这不会在重新启动后保留,因此您应该将此语句放入其中一个启动文件中,例如~/.bashrc

另一种选择是通过指定绝对路径来运行该命令,从您的文件系统根目录开始。

/path-to-bin-dir/bin/kafka-console-producer --broker-list IP:9092 --topic mytopic

或者,您可以简单的cd进入bin文件夹并从那里运行它。

./kafka-console-producer --broker-list IP:9092 --topic mytopic

我尝试使用上述方法...首先,先生,那里没有.bashrc文件可以添加路径...我还尝试了其他方法...答案是没有这样的文件或目录。 - Sachin
1
~/.bashrc 在某些安装中不需要存在。进入你的家目录并运行 ls -lA 命令来查看它是否存在。如果不存在,那么你可以创建它,但是你应该查阅你特定操作系统的手册以了解正在使用哪些启动文件。如果你进入 kafka 的 bin 文件夹并且我提到的最后一项选项给你带来了这个错误,那么这意味着该文件不存在,你的安装可能已经损坏。列出该目录中的文件以确保所提到的 kafka-console-producer 文件存在。 - Matus Dubrava
要在Docker容器中执行,请尝试运行以下命令: docker exec --interactive --tty broker
kafka-console-producer --broker-list IP:9092 --topic mytopic这对我起作用了。
- Balaji Venkatachalam

1
使用这个命令:

bin/kafka-server-start.sh config/server.properties

kafka-server-start.sh在bin文件夹中,需要config文件夹中的server.properties作为参数。因此需要加上前缀bin/和config/。


0

尝试从Kafka安装目录中使用这个替代方法

bin/kafka-console-producer --broker-list IP:9092 --topic mytopic

请注意命令开头的bin/

1
我尝试过了,但仍然不起作用...它显示没有这样的文件或目录。 - Sachin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接